Ad Widget

Collapse

Мониторинг очередей RabbitMQ

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • SergeyL
    Member
    • Jan 2022
    • 89

    #1

    Мониторинг очередей RabbitMQ

    Приветствую! Возможно кто то сможет помочь:
    Мне нужно настроить мониторинг и оповещение(Тригеры) очередей в RabbitMQ.
    Я использую Zabbix Zabbix 6.0.2.
    RabbitMQ 3.6.5, Erlang 19.1
    Я по средствам темплейта RabbitMQ node by Zabbix agent начал мониторить свой Dev RabbitMQ, который работает на Linux Centos 7. На сколько я уже успел разобраться, функционал, который я использую в RabbitMQ, благополучно передает информацию о своем состоянии в Zabbix.
    К сожалению мне этого функционала не достаточно, мне критично мониторить очереди и настроить тригерры:

    Если сообщений нет 6 часов - предупреждение, 12 часов - оповещение, а максимальное количество сообщений в очереди 1000 - предупреждение, 10000 - оповещение:

    Во всех очередях должен быть хотя бы 1 клиент, иначе предупреждение.

    Поидее мне нужно добавить айтемы(key) на мои очереди, а потом на эти айтемы настроить тригерры. Возможно, кто то может подсказать как писать запросы?
    Спасибо!

    Attached Files
  • bobbylv75
    Junior Member
    • Apr 2022
    • 8

    #2
    Я создавал Item на основе HTTP агента.
    Вызывал API RabbitMQ - http://10.Х.Х.36:15672/api/queues/%2F/queuename
    Заполняешь аутентификацию и в Preprocessing можно парсить нужное тебе значение из ответа. Значения полей смотри в документации. Кога получишь первый response, в принципе, сам поймёшь, что тебе интересно.

    Comment

    • SergeyL
      Member
      • Jan 2022
      • 89

      #3
      Originally posted by bobbylv75
      Я создавал Item на основе HTTP агента.
      Вызывал API RabbitMQ - http://10.Х.Х.36:15672/api/queues/%2F/queuename
      Заполняешь аутентификацию и в Preprocessing можно парсить нужное тебе значение из ответа. Значения полей смотри в документации. Кога получишь первый response, в принципе, сам поймёшь, что тебе интересно.
      Спасибо за ответ, мне бы на основе Zabbix agent.
      p.s. скрины мои нормально видны?

      Comment

      • SergeyL
        Member
        • Jan 2022
        • 89

        #4
        Перезалью на всякий случай. Click image for larger version

Name:	zabRab.png
Views:	690
Size:	189.6 KB
ID:	442638 Click image for larger version

Name:	zab2.png
Views:	700
Size:	82.8 KB
ID:	442637 Click image for larger version

Name:	zab3.png
Views:	693
Size:	50.9 KB
ID:	442636

        Comment

        • bobbylv75
          Junior Member
          • Apr 2022
          • 8

          #5
          К сожалению скрины у меня не открываются.
          А чем плохо использование HTTP item?

          Comment

          • bobbylv75
            Junior Member
            • Apr 2022
            • 8

            #6
            Когда-то, по какой-то причине, я не использовал RabbitMQ шаблон и парсил вручную результат выполнения rabbitmqctl, который отдавал на выход zabbix-agent. Но, если честно, это гораздо более трудоёмкий вариант.
            А шаблон RabbitMQ by Zabbix-agent я не использовал , поэтому не могу посоветовать...

            Вот тут - https://www.zabbix.com/ru/integratio...rabbitmq_agent всё очень хорошо расписано.
            Last edited by bobbylv75; 06-04-2022, 09:15.

            Comment

            • SergeyL
              Member
              • Jan 2022
              • 89

              #7
              Originally posted by bobbylv75
              К сожалению скрины у меня не открываются.
              А чем плохо использование HTTP item?
              Я думаю ни чем, буду пробовать, если не получиться с Zabbix agent. Спасибо за ссылку, у меня получилось подключить стандартный шаблон, но к сожалению он не мониторит каждую очередь по отдельности, а вот с написанием KEY для определенной очереди у меня собственно и проблема...
              Last edited by SergeyL; 06-04-2022, 09:36.

              Comment

              • SergeyL
                Member
                • Jan 2022
                • 89

                #8
                Актуально. Все еще не могу правильно сформировать запрос...

                Comment

                • bobbylv75
                  Junior Member
                  • Apr 2022
                  • 8

                  #9
                  Вот, например, запрос на количество сообщений в очереди. Создаём Item в нужном хосте :

                  Name : Queue_queue.name
                  Type : HTTP agent
                  Key : Queue_queue.name
                  Type of information : Numeric (unsigned)
                  URL : {$RABBITMQ.API.SCHEME}://{$RABBITMQ.API.CLUSTER_HOST}:{$RABBITMQ.API.PORT}/api/queues/%2F/queue.name
                  Request type : GET
                  Request body type : Raw data
                  Required status codes : 200
                  Follow redirects : true
                  Convert to JSON : true
                  User name : {$RABBITMQ.API.USER}
                  Password : {$RABBITMQ.API.PASSWORD}
                  ---------------------
                  Preprocessing -> Preprocessing steps
                  Name Parameters
                  JSONPath $.body.messages
                  Type of information : Numeric (unsigned)

                  Все переменные в фигурных скобках описываем в секции Macro. Как в ссылке выше по теме.

                  Comment

                  Working...