День добрый!
После продолжительного времени работы netxms agent на ubuntu linux, агент перестаёт работать. Он не собирает статистику. Все значения замирают, при этом timestamp всех dci обновляется. Графики превращаются в линии, соединение не рвётся, агент никак не сообщает в Management console что он мёртв. В логе агента сыпятся ошибки
*E* [ ] Unable to accept incoming connection (24 Too many open files)
Временное лечение это перезагрузить сервис агента. Хватит примерно на неделю в моём случае
Я использую logparser , мониторю всего-то 4 лог файла, на них настроен logrotate по умолчанию.
при запуске сервиса nxagentd по умолчанию стоит ограничение ulimit soft limit 1024. При повышении данного параметра до 2048 проблема повторится не через неделю, а через 2 недели.
При запуске агента, его процесс открывает 16 дескрипторов файлов в моём случае. Вывод делал командой:
ls /proc/<nxagentd_pid>/fd/ | wc -l
На следующее утро цифра увеличивается уже до 82
Когда замечаю что агент не работает, и валятся ошибки Too many open files вывод команды показывает число soft limit
Очень похоже на open files descriptor leak. На всех серверах где стоит ubuntu и netxms agent последней версии есть проблема. К сожаление точно не могу сказать с какой версии это началось, но точно в 2020 году. То ли в версии 3.1 то ли в 3.2 этого ещё не было. Сейчас стоит 3.8.193-1