Exceções no agent de monitoramento gesac (permissão negada e hostname desconhecido)
Gesac ficou sem monitoramento novamente por tempo suficiente pra deixar tudo amarelo no site. Necessário corrigir os problemas no agente imediatamente e implementar algum método que avise quando problemas acontecem.
Os dois erros abaixo foram identificados no log da aplicação. Aparentemente em algum momento a máquina c3sldatabase sumiu do DNS, o que causou a morte de ao menos um dos processos. O outro problema é relacionado com falta de permissão no diretório de backup, que foi montado como root dentro do container.
2018-05-17 13:36:46,150 - GesacDB - WARNING - Connection broken (DB), backing up data.
Exception in thread Thread-1:
Traceback (most recent call last):
File "./gesacmonit.py", line 550, in insert_into_db
conn = self._db_pool.getconn()
File "/usr/local/lib/python3.6/site-packages/psycopg2/pool.py", line 220, in getconn
return self._getconn(key)
File "/usr/local/lib/python3.6/site-packages/psycopg2/pool.py", line 92, in _getconn
return self._connect(key)
File "/usr/local/lib/python3.6/site-packages/psycopg2/pool.py", line 62, in _connect
conn = psycopg2.connect(*self._args, **self._kwargs)
File "/usr/local/lib/python3.6/site-packages/psycopg2/__init__.py", line 130, in connect
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError: could not translate host name "c3sldatabase.c3sl.ufpr.br" to address: Name or service not known
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.6/threading.py", line 916, in _bootstrap_inner
self.run()
File "/usr/local/lib/python3.6/threading.py", line 864, in run
self._target(*self._args, **self._kwargs)
File "./gesacmonit.py", line 584, in _consumer
self.insert_into_db(item)
File "./gesacmonit.py", line 558, in insert_into_db
self._backup(data, 'db')
File "./gesacmonit.py", line 518, in _backup
self._gesac_pickler.dump(data, self._db_backup_file)
File "./gesacmonit.py", line 94, in dump
pickle.dump(obj, open(path, 'ab'))
PermissionError: [Errno 13] Permission denied: '/home/gesac/restore/db.user.1'