У меня zabbix отслеживает несколько серверов (Linux и Windows). Возможно ли, чтобы zabbix автоматически перезапускал службы, которые не работают?
Это возможно. Первое, что вам нужно сделать, это включить удаленные действия на агентах zabbix, установив следующее в zabbix_agentd.conf:
EnableRemoteCommands=1
Вам также необходимо предоставить привилегии sudo вашему пользователю zabbix, поэтому создайте файл /etc/sudoers.d/zabbix_nopasswd со следующим содержимым:
zabbix ALL=NOPASSWD: ALL
Для большей безопасности лучше разрешить zabbix запускать только определенные команды оболочки, например:
# allows 'zabbix' user to restart apache without password.
zabbix ALL=NOPASSWD: /etc/init.d/apache restart
После этого перезапустите агент (ы) zabbix.
Теперь на сервере Zabbix войдите как пользователь с правами администратора в веб-интерфейс Zabbix и создайте новое действие: Конфигурация -> Действия -> Новое действие. Назовите новое действие примерно как «Перезапустить Apache».
Установите Тип действия на «Удаленное управление». Установите Remote Command на:
{HOSTNAME}:/usr/bin/sudo service apache2 restart
После этого создайте триггер для элемента, который подсчитывает количество запущенных процессов apache таким образом, чтобы, если число равно 0, запускалось действие «Перезапустить Apache», и все.
мы должны создать триггер для элемента, который подсчитывает количество запущенных процессов apache таким образом, чтобы, если число равно 0, запускалось действие «Перезапустить Apache», и все.