Назад | Перейти на главную страницу

Как я могу запустить действие на хостах, где заданный триггер уже является истинным?

Установка: Zabbix 2.4 | RHEL 6.4

Я настраиваю метод, позволяющий службам Zabbix Agentd автоматически обновлять свои собственные двоичные файлы при срабатывании триггера (используя Git как сосуд). Имеются два триггера:

  1. Триггер 1: «Репозиторий Git не существует» - убедитесь, что существует репозиторий git на месте, где хранятся двоичные файлы Zabbix Agentd.
    а. {Template App Zabbix Agent:vfs.file.exists[/opt/zabbix/.git/config].last()}=0
  2. Триггер 2: «Версия Zabbix Agent неверна». - Запуск, если агент не является ожидаемой скомпилированной версией. Это устанавливается как пользовательский макрос.
    а. {Template App Zabbix Agent:vfs.file.cksum[/opt/zabbix/sbin/zabbix_agentd].last()}<>{$LATESTAGENT}
    б. $LATESTAGENT это cksum() значение скомпилированного двоичного файла zabbix_agentd.
    c. Зависит от триггера 1

Триггер 1 просто гарантирует, что в случае срабатывания триггера 2 агент сможет запустить удаленную команду для выполнения git pull и получения последних двоичных файлов.


Текущая ситуация

Триггеры работают нормально и показывают мои системы, в которых версии агентов не совпадают. С тех пор я настроил пару действий, чтобы они выполняли грязную работу.

  1. Триггер 1> Выполнить git init в пути установки Zabbix Agentd.
  2. Триггер 2> Выполнить git pull origin master чтобы получить последние бункеры.

Это просто глобальные сценарии, которые я создал, поэтому я смог вручную проверить их работу, щелкнув любой узел и выбрав соответствующий сценарий для узла.


Эта проблема

Поскольку я сначала создал триггеры, они уже «сработали»; однако теперь, когда у меня есть действия, связанные с этими триггерами, я бы хотел, чтобы эти триггеры «повторно запускались» (или повторно инициализировались, или повторно запускались, или что-то еще), чтобы действия выполняли свои функции. К сожалению, я не могу найти способ сделать это. Сосредоточившись на триггере 1 (существует репозиторий git), я попытался очистить историю этого vfs.file.cksum[/opt/zabbix/sbin/zabbix_agentd] key, но это не повлияло на состояние триггера. Я видел, как некоторые люди упоминали некоторую работу с SQL или API по ручному изменению состояния триггера, но мне кажется, что должно быть что-то намного проще!


Резюме

Кто-нибудь знает, как я могу заставить свои триггеры «срабатывать снова», чтобы действия делали свое дело? Спасибо за любую помощь!

Предостережения

В качестве обходного пути вы можете временно изменить триггер на «Генерация нескольких ПРОБЛЕМНЫХ событий», дождаться выполнения всех необходимых вам действий, а затем переключиться обратно.