Пост

Zabbix. Мониторинг логов

Zabbix — свободная система мониторинга и отслеживания статусов разнообразных сервисов компьютерной сети, серверов и сетевого оборудования, написанная Алексеем Владышевым. Для хранения данных используется MySQL, PostgreSQL, SQLite или Oracle Database, веб-интерфейс написан на PHP.

Требуется мониторить логи Centos 7 /var/log/messages на предмет записи Out of memory: Kill process

Подготовка сервера, который мы будем мониторить

Добавляем файл /var/log/messages в группу zabbix и назначить на него права доступа 640

1
2
$ sudo chown root:zabbix /var/log/messages
$ sudo chmod 0640 /var/log/messages

Проверяем настройки zabbix agent.

1
2
3
Server = ip-адрес Zabbix Server
ServerActive = ip-адрес Zabbix Server
Hostname = Такое же имя, как прописано в вэб интерфейсе Zabbix Server (Настройки - Узлы сети)

Настройка мониторинга в Zabbix

1
Настройки - Узлы сети - выбираем наш сервер, на котором мы будем мониторить логи

Добавляем новую группу элементов данных:
Переходим во вкладку Группы элементов данных, нажимаем Создать группу элементов данных, я назвал ее log.

Добавляем новый элемент данных:
Переходим во вкладку Элементов данных, нажимаем Создать элемент данных

  • Имя: log_messages
  • Тип: Zabbix агент (активные)
  • Ключ: log[/var/log/messages,"Out of memory: Kill process","UTF-8",100]
  • Тип информации: Журнал (лог)
  • Группы элементов данных: log

Добавляем новый триггер:
Переходим во вкладку Триггеры, нажимаем Создать триггер

  • Имя: 00sr-server-01
  • Важность: Высокая
  • Выражение: {00sr-server-01:log[/var/log/messages,"Out of memory: Kill process","UTF-8",100].str(Kill,30)}=1 and {00sr-server-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

1
$ sudo yum install policycoreutils-python

И выполняем команду

1
$ sudo semanage permissive -a zabbix_agent_t

После этого надо перезапустить zabbix-agent

1
$ sudo systemctl restart zabbix-agent

Что бы открыть доступ для zabbix-agent на чтение файла /var/log/messages, изменим права доступа

1
$ sudo chown root:zabbix /var/log/messages
Авторский пост защищен лицензией CC BY 4.0 .

© IT Draft. Некоторые права защищены.