Я настраиваю метод, позволяющий службам Zabbix Agentd автоматически обновлять свои собственные двоичные файлы при срабатывании триггера (используя Git как сосуд). Имеются два триггера:
{Template App Zabbix Agent:vfs.file.exists[/opt/zabbix/.git/config].last()}=0
{Template App Zabbix Agent:vfs.file.cksum[/opt/zabbix/sbin/zabbix_agentd].last()}<>{$LATESTAGENT}
$LATESTAGENT
это cksum()
значение скомпилированного двоичного файла zabbix_agentd.Триггер 1 просто гарантирует, что в случае срабатывания триггера 2 агент сможет запустить удаленную команду для выполнения git pull и получения последних двоичных файлов.
Триггеры работают нормально и показывают мои системы, в которых версии агентов не совпадают. С тех пор я настроил пару действий, чтобы они выполняли грязную работу.
git init
в пути установки Zabbix Agentd.git pull origin master
чтобы получить последние бункеры.Это просто глобальные сценарии, которые я создал, поэтому я смог вручную проверить их работу, щелкнув любой узел и выбрав соответствующий сценарий для узла.
Поскольку я сначала создал триггеры, они уже «сработали»; однако теперь, когда у меня есть действия, связанные с этими триггерами, я бы хотел, чтобы эти триггеры «повторно запускались» (или повторно инициализировались, или повторно запускались, или что-то еще), чтобы действия выполняли свои функции. К сожалению, я не могу найти способ сделать это. Сосредоточившись на триггере 1 (существует репозиторий git), я попытался очистить историю этого vfs.file.cksum[/opt/zabbix/sbin/zabbix_agentd]
key, но это не повлияло на состояние триггера. Я видел, как некоторые люди упоминали некоторую работу с SQL или API по ручному изменению состояния триггера, но мне кажется, что должно быть что-то намного проще!
Кто-нибудь знает, как я могу заставить свои триггеры «срабатывать снова», чтобы действия делали свое дело? Спасибо за любую помощь!
В качестве обходного пути вы можете временно изменить триггер на «Генерация нескольких ПРОБЛЕМНЫХ событий», дождаться выполнения всех необходимых вам действий, а затем переключиться обратно.