Ad Widget

Collapse

Получение дополнительных сведений при с&

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Andrey_
    Junior Member
    • May 2012
    • 5

    #1

    Получение дополнительных сведений при с&

    Приветствую! В процессе настройки возник интересный вопрос: можно ли в оповещения, рассылаемые при срабатывании триггера включать дополнительную информацию, например, при срабатывании "Высокая загрузка процессора" в письме получать top10 процессов, грузящих процессор?

    На данный момент могу получать информацию о процессах через zabbix_get на сервере с Zabbix, делается это через UserParameter с командой на PowerShell. С другой стороны предполагаю, что нужно создать пользовательский макрос и включить его в шаблон оповещения, но как это сделать правильно не пойму (уже перепробовал несколько вариантов - не работает).

    Вопросы: можно ли это вообще реализовать на Zabbix? если можно, то как правильно это сделать (может я вообще движусь не в том направлении)? ели и с направлением все ок, то как правильно настроить пользовательский макрос, чтобы присваивать ему результат выполнения запроса с пользовательским ключом, а затем включать этот макрос в оповещения?

    P.S. Хранить в базе запрашиваемую текстовую информацию по загрузке процессора не требуется.
    Last edited by Andrey_; 25-05-2012, 04:36.
  • dotneft
    Senior Member
    • Nov 2008
    • 699

    #2
    Используйте макрос {host:key.func(param)}.

    http://www.zabbix.com/documentation/...ed_by_location

    Comment

    • Andrey_
      Junior Member
      • May 2012
      • 5

      #3
      Так не работает

      Спасибо за ответ, это на самом деле очень полезная фича, близкая по смыслу к моей задаче. Тем не менее, насколько я понимаю, макрос {host:key.func(param)} должен брать данные хранящиеся в базе данных, которые были уже предварительно собраны.

      Вот что я сделал:
      1. Добавил данный макрос в текущее "действие" - в конец "сообщения по умолчанию":
      Code:
      Trigger: {TRIGGER.NAME}
      Trigger status: {TRIGGER.STATUS}
      Trigger severity: {TRIGGER.SEVERITY}
      
      {ITEM.NAME} ({HOSTNAME}:{TRIGGER.KEY}): {ITEM.VALUE}
      
      {ИМЯ_СЕРВЕРА:get_process.last(0)}
      где ИМЯ_СЕРВЕРА явно задано для проверки.

      2. В письме вместо списка процессов я получаю
      Code:
      *UNKNOWN*
      3. В логе:
      Code:
      Function [ИМЯ_СЕРВЕРА:get_process.last(0)] not found. Query returned empty result
      где повторю - ИМЯ_СЕРВЕРА явно задано в тестовых целях.

      Собственно результат то понятен: функция last(0) - это получение последних сохраненных данных из базы. Мне же не нужно хранить данные в базе, только запрашивать их и выводить в оповещении. К тому же данные нужно получать именно в момент возникновения проблемы, т.е. мне бы больше подошла некая функция get(), но таковая отсутствует. Что-нибудь можете еще посоветовать или поправить меня?

      Comment

      Working...