Я сделал внешний скрипт (snmp_max_io, написанный на Perl). При запуске с IP-адресом он записывает входные данные в системный журнал, печатает одно 64-битное числовое значение и устанавливает значение выхода равным 0.
Пример вывода:
916418801
Я добавил его в / usr / lib / zabbix / externalscripts, где у меня есть другой скрипт, который работает.
Я настроил элемент:
Через некоторое время Zabbix меняет статус на: «Не поддерживается» и «Полученное значение [] не является числовым».
Команда отлично работает при запуске в командной строке от имени пользователя root или zabbix.
Но команда никогда не запускается сервером zabbix (ничего не регистрируется).
Как мне узнать, почему Zabbix считает, что команда возвращает [], хотя явно никогда не запускает ее?
Решение находится в комментариях: сценарий ДОЛЖЕН быть сценарием bash. Таким образом, perl-скрипт должен иметь оболочку bash.
На вашем сервере включен SELinux? Я укусил его несколько раз в подобных ситуациях при использовании Zabbix.
Если getenforce
возвращается enabled
для тебя, то пора увидеть /var/log/audit
журналы каталога и посмотрите, что конкретно мешает Zabbix запускать скрипт.