Ad Widget

Collapse

Мониторинг nginx

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • stell_hawk
    Junior Member
    • Jan 2013
    • 5

    #1

    Мониторинг nginx

    Недавно наконец переехали с Zabbix первой линейки на 2.0.4
    всё отлично переезжает кроме мониторинга nginx.
    Что было:
    есть скрипт nginx_stats.sh (немного переписанный от оригинального)
    вызывается он из Заббикса как внешняя проверка
    Code:
    nginx_stats.sh[active]
    скрипт ждёт на входе два параметра имя хоста и параметр для сбора.
    в первой линейке заббикса внешняя проверка автоматически первым параметром передавала имя хоста,а вторым и последующими - пользовательские параметры.
    проблема решилась очень просто в второй версии
    я просто стал передавать IP хоста первым параметром:
    Code:
    nginx_stats.sh[{HOST.CONN},active]
    и сбор наладился.
    На этом я успокоился.
    ---------------------------------------
    НО! мне наткнулся на проблемы когда стал строить агрегативные графики по группам , а именно
    Code:
    grpsum["content","nginx_stats.sh[{HOST.CONN},active]","last","0"]
    выдает такую ошибку
    No items for key nginx_stats.sh*UNKNOWN*,active in group(s) content
    получается что параметр {HOST.CONN} имеет в данном случае значения.

    Как варианты решения я вижу следующие варианты
    1. Использовать макрос заместо {HOST.CONN}
    пока ковырял макросы понял как использовать в пользовательских макросах системные переменные:
    Code:
    если переменная {HOSTNAME} то в макросе её нужно использовать как $HOSTNAME
    т.е. {$H3} =$HOSTNAME - мне возвращает имя хоста где работает скрипт (zabbix...)
    но, задав {$H3} =$HOST.CONN - я получил строку ".CONN" , потому что переменная $HOST -пустая, а точку он воспринимает как конкатинацию
    Вопрос №1. Можно ли как то это победить?
  • stell_hawk
    Junior Member
    • Jan 2013
    • 5

    #2
    2. заставить работать grpsum
    Вопрос #2 Может можно заставить работать
    Code:
    grpsum["content","nginx_stats.sh[{HOST.CONN},active]","last","0"]
    но что передавать в него?

    3. Заставить передавать Внешнему скрипту по умолчанию имя сервера.
    но я не нашел в конфигах такого
    Вопрос #3 Есть мысли?

    Есть беспроигрышный варинт: Переложить работу на агентов, Переписать скрипт чтобы он принимал 1 параметр
    UserParameter=nginx_stats[*], /opt/scripts/nginx_stats.sh $1
    но мне этот путь не нравится. для нгинкса идет 8 запросов, слишком много для агента мне кажется.

    Comment

    • stell_hawk
      Junior Member
      • Jan 2013
      • 5

      #3
      удаленно как повтор
      Last edited by stell_hawk; 01-02-2013, 05:12.

      Comment

      • stell_hawk
        Junior Member
        • Jan 2013
        • 5

        #4
        неужели никто не сталкивался с такой проблемой?

        Comment

        Working...