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 запустить скрипт.

Другие вопросы по тегам