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