Ad Widget

Collapse

Мониторинг через кастомный скрипт

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • snaf
    Junior Member
    • Mar 2015
    • 10

    #1

    Мониторинг через кастомный скрипт

    Добрый день. Нужно настроить мониторинг через кастомный скрипт.

    Мои действия :
    1. написал скрипт
    2. добавил его в /etc/zabbix_agentd.conf
      Code:
      UserParameter=test_something[звёздочка],/etc/zabbix_server/scripts/test_something.py


    Скрипт должен вывести на экран 1 (в случае если проверка удачная) или 0.

    В чем собсно проблема. Если запустить скрипт из консоли то он выдаст 1. Но при добавлении его в zabbix творятся непонятки.

    В логах я вижу нечто подобное
    Code:
    ... Result [1] [0]...
    ... Sending back [0]
    Почему при запуске скрипт выдаёт 1, а сам забикс видит 0?

    Немного о скрипте: Скрипт написан на питоне и во время работы запускает openssl программу чтобы проверить работает ли ocsp демон. Не думаю что есть смысл выкладывать сам скрипт. Вывод он отдаёт через stdout.

    zabbix-server-2.2.1-1.x86_64
  • snaf
    Junior Member
    • Mar 2015
    • 10

    #2
    Проблема решена. Я тупанул со скриптом, я прописал локальный путь до одного файла, например certificates/top_secret/cert.pem и когда запускал из консоли то всё работало должным образом, но забикс при запуска скрипта имел другой путь. Всё решилось заменой локального пути на полный путь //usr/share/zabbix/scripts/top_secret/cert.pem


    Как тут пометить сообщение решенным? Кнопка Edit не совсем работает.

    И простите за тупняк.

    Comment

    • Kos
      Senior Member
      Zabbix Certified SpecialistZabbix Certified Professional
      • Aug 2015
      • 3404

      #3
      При запуске из консоли и при запуске из-под агента отличается среда выполнения, это может влиять на работоспособность скрипта.

      Наиболее типичные отличия:

      1) Из-под агента скрипт запускается от имени того пользователя, от которого работает агент (обычно "zabbix"). Проверить, насколько успешно работает скрипт от этого пользователя, можно или зайдя этим пользователем явно, или через su (что-то вроде "su - zabbix -c /etc/zabbix_server/scripts/test_something.py").

      2) Могут отличаться переменные среды (наиболее очевидная из них - PATH). В случае сомнений лучше в скрипте указывать полные пути либо явно выставлять нужные переменные среды.

      3) При работе из консоли с запускаемыми программами связан управляющий терминал, а при старте из агента - нет. Как правило, это не важно, но могут быть исключения. Сам недавно на это натыкался, когда писал скрипт для парсинга файла ошибок DB2 (db2diag.log) с помощью вызова утилиты db2diag и не понимал, почему всё работает отлично при ручном запуске, но совершенно непонятный результат при вызове из агента (оказалось - забыл параметр "-readfile").

      Comment

      Working...