Zabbix – Мониторинг логов
Задача
Требуется мониторить логи Centos 7 /var/log/messages на предмет записи “Out of memory: Kill process”
Подготовка сервера, который мы будем мониторить
Добавляем файл /var/log/messages в группу zabbix и назначить на него права доступа 640
[root@localhost]# chown root:zabbix /var/log/messages
[root@localhost]# chmod 0640 /var/log/messages
Проверяем настройки zabbix agent.
Server = ip-адрес Zabbix Server
ServerActive = ip-адрес Zabbix Server
Hostname = Такое же имя, как прописано в вэб интерфейсе Zabbix Server (Настройки - Узлы сети)
Настройка мониторинга в Zabbix
Настройки – Узлы сети – выбираем наш сервер, на котором мы будем мониторить логи.
Selectel — ведущий провайдер облачной инфраструктуры и услуг дата-центров
Компания занимает лидирующие позиции на рынке на рынке выделенных серверов и приватных облаков, и входит в топ-3 крупнейших операторов дата-центров в России.
Добавляем новую группу элементов данных:
Переходим во вкладку “Группы элементов данных”, нажимаем “Создать группу элементов данных”, я назвал ее log.
Добавляем новый элемент данных:
Переходим во вкладку “Элементов данных”, нажимаем “Создать элемент данных”
Имя: log_messages
Тип: Zabbix агент (активные)
Ключ: log[/var/log/messages,"Out of memory: Kill process","UTF-8",100]
Тип информации: Журнал (лог)
Группы элементов данных: log
Добавляем новый триггер:
Переходим во вкладку “Триггеры”, нажимаем “Создать триггер”
Имя: cl-gc-geoserver-01:log_messages:Kill_process
Важность: Высокая
Выражение: {cl-gc-geoserver-01:log[/var/log/messages,"Out of memory: Kill process","UTF-8",100].str(Kill,30)}=1 and {cl-gc-geoserver-01:log[/var/log/messages,"Out of memory: Kill process","UTF-8",100].nodata(30)}=0
Триггер срабатывает при наличии строки Kill в пересылаемых данных и отключается через 30 секунд отсутствия новых данных.
UPD 03.04.2019
Бывают случаи, когда в элементах данный узла сети висит сообщение
zabbix cannot open file /var/log/messages 13 permission denied
И из-за этого элемент данных не активен, следовательно логи не приходят на почту
Это случается из-за следующих моментов:
- SeLinux блокирует zabbix-agent
- права доступа на файл /var/log/messages принадлежат пользователю root
Что бы добавить zabbix-agent в исключение для SeLinux, устанавливаем утилиту policycoreutils
[root@localhost]# yum install policycoreutils-python
И выполняем команду
[root@localhost]# semanage permissive -a zabbix_agent_t
После этого надо перезапустить zabbix-agent
[root@localhost]# systemctl restart zabbix-agent
Что бы открыть доступ для zabbix-agent на чтение файла /var/log/messages, изменим права доступа
[root@localhost]# chown root:zabbix /var/log/messages