Мы контролируем производственные среды, используя Zabbix 2.4. Новые экземпляры снабжаются Ansible, который устанавливает агент Zabbix. Нам нужно, чтобы хосты были удалены с сервера, если они были завершены, так что мы получаем только сообщения о запуске экземпляров, которые становятся недоступными.Выполнить скрипт, расположенный на сервере Zabbix при запуске
Для этого я написал скрипт Python, который может принимать имя хоста zabbix в качестве аргумента, проверьте, находится ли этот узел в списке запущенных экземпляров, вызывая awscli и удаляя хост, если он не находится на «не завершенном» список.
Я поместил скрипт в /usr/bin/delete_host.py и настроил действие, чтобы вызвать его, когда активирован триггер «Агент недоступен». Вот как вкладка Операции выглядит link
А вот действие журнал link
Я попробовал несколько способов, чтобы написать команду, а также разместил скрипт в каталоге ExternalScripts. Включили журналы отладки для сервера, но в нем ничего не упоминалось об ошибке или что-то еще. Фактически это только показывало сообщения, что команда выполняется, и все в порядке, но хост все еще там. Когда я копирую команду из журнала действий и выполняю ее вручную, все работает нормально.
На данный момент у меня действительно нет вариантов, как устранить эту проблему дальше. Я отключил selinux и добавил пользователя zabbix в файл sudoers с nopasswd. Я не могу найти ничего в журналах. Возможно ли выполнение сценариев без обмена сообщениями с zabbix?