Ad Widget

Collapse

Discussion thread for official Zabbix Template RabbitMQ

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • AlexL
    Zabbix Certified Specialist
    Zabbix Certified Specialist
    • Aug 2019
    • 55

    #1

    Discussion thread for official Zabbix Template RabbitMQ

    This thread is designed to provide grounds for discussion of the official Zabbix Template for RabbitMQ.
    The template and details of the template are available in GIT repository.
    Agent Monitoring:
    https://git.zabbix.com/projects/ZBX/...rabbitmq_agent
    HTTP Checks: https://git.zabbix.com/projects/ZBX/.../rabbitmq_http

    Zabbix is always looking for ways to improve our services and to make our users happier.
    We pride ourselves on doing our best each and every day, but we know that there is always something more to learn.
    We would like to hear back from you to know what have you liked and what would you improve in the template.
    Last edited by AlexL; 03-10-2019, 11:58.
  • cru5ader
    Member
    • Mar 2012
    • 72

    #2
    Thank you for so needed template, may you convert him to Zabbix 4.2?

    Comment

    • AlexL
      Zabbix Certified Specialist
      Zabbix Certified Specialist
      • Aug 2019
      • 55

      #3
      Originally posted by cru5ader
      Thank you for so needed template, may you convert him to Zabbix 4.2?
      With the release of 4.4 version 4.2 becomes with limited support. But you can find unofficially converted template here: https://github.com/v-zhuravlev/zbx_t...out/4.2/EN/app

      Comment

      • cru5ader
        Member
        • Mar 2012
        • 72

        #4
        Originally posted by AlexL
        With the release of 4.4 version 4.2 becomes with limited support. But you can find unofficially converted template here: https://github.com/v-zhuravlev/zbx_t...out/4.2/EN/app
        Thank you!

        Comment

        • david_lister
          Junior Member
          • Aug 2019
          • 2

          #5
          Thank you for this template, would you mind clarifying a small ting on the cluster install instructions?

          If your cluster consists of several nodes, it is recommended to assign the cluster template to a separate balancing host. In the case of a single-node installation, you can assign the cluster template to one host with a node template.
          In my scenario I have a cluster of 3 nodes, do I assign the node template to each of the nodes and the cluster to one of the nodes?

          Or do I create a separate host for the cluster in zabbix, assign the cluster template to that host and the node template to each of the hosts?

          Also, does this require the 4.4 version of the agent or is it enough that the server and proxy is 4.4?
          Last edited by david_lister; 29-10-2019, 14:20.

          Comment

          • divera
            Junior Member
            • Jan 2020
            • 2

            #6
            Hi,
            i did a test on your Template today with docker and Zabbix-Server 4.4 latest.
            rabbitmq-3.7 with managment
            zabbix-agent4.4-latest
            generate zabbixmonitor user as described
            setting maccro values password and
            {$RABBITMQ.API.HOST} to hostname of rabbitmq - container

            Resulting in 9 values filled
            RabbitMQ: CPU utilization 0 %
            RabbitMQ: Healthcheck Ok (1)
            RabbitMQ: Management plugin version 3.7.23
            RabbitMQ: Memory usage (rss) 0 B
            RabbitMQ: Memory usage (vsize) 0 B
            RabbitMQ: Number of processes running 0
            RabbitMQ: RabbitMQ version 3.7.23
            RabbitMQ: Service ping Up (1)
            RabbitMQ: Service response time 0.7ms

            But Autodiscover seems to not work;
            Doing a check on:
            Template App RabbitMQ node by Zabbix agent: RabbitMQ: Get queues: Queues discovery
            gives:
            Cannot send request: wrong discovery rule type.
            using zabbix-get on Zabbix-Server with macro-vars filled on the query with "/api/queues" gives a hole lot of json - Data so it seems fine for me.

            So im a little confused what this wrong discovery rule type means.


            Comment

            • cru5ader
              Member
              • Mar 2012
              • 72

              #7
              Originally posted by divera
              Hi,
              i did a test on your Template today with docker and Zabbix-Server 4.4 latest.
              rabbitmq-3.7 with managment
              zabbix-agent4.4-latest
              generate zabbixmonitor user as described
              setting maccro values password and
              {$RABBITMQ.API.HOST} to hostname of rabbitmq - container

              Resulting in 9 values filled
              RabbitMQ: CPU utilization 0 %
              RabbitMQ: Healthcheck Ok (1)
              RabbitMQ: Management plugin version 3.7.23
              RabbitMQ: Memory usage (rss) 0 B
              RabbitMQ: Memory usage (vsize) 0 B
              RabbitMQ: Number of processes running 0
              RabbitMQ: RabbitMQ version 3.7.23
              RabbitMQ: Service ping Up (1)
              RabbitMQ: Service response time 0.7ms

              But Autodiscover seems to not work;
              Doing a check on:
              Template App RabbitMQ node by Zabbix agent: RabbitMQ: Get queues: Queues discovery
              gives:
              Cannot send request: wrong discovery rule type.
              using zabbix-get on Zabbix-Server with macro-vars filled on the query with "/api/queues" gives a hole lot of json - Data so it seems fine for me.

              So im a little confused what this wrong discovery rule type means.

              Setup

              Enable the RabbitMQ management plugin. See RabbitMQ’s documentation to enable it.


              rabbitmq-plugins enable rabbitmq_management

              Comment

              • divera
                Junior Member
                • Jan 2020
                • 2

                #8
                Hi, the Management is obviously enabled. I used the docker container with management and I do see the logins from Zabbix-agent. Also I mentioned a hole lot of json I got when i trigered the zabbix-get from console on the server - this was the management plugin.
                Also a
                rabbitmq-plugins list gives:
                [ ] rabbitmq_amqp1_0 3.7.22
                [ ] rabbitmq_auth_backend_cache 3.7.22
                [ ] rabbitmq_auth_backend_http 3.7.22
                [ ] rabbitmq_auth_backend_ldap 3.7.22
                [ ] rabbitmq_auth_mechanism_ssl 3.7.22
                [ ] rabbitmq_consistent_hash_exchange 3.7.22
                [ ] rabbitmq_event_exchange 3.7.22
                [ ] rabbitmq_federation 3.7.22
                [ ] rabbitmq_federation_management 3.7.22
                [ ] rabbitmq_jms_topic_exchange 3.7.22
                [E*] rabbitmq_management 3.7.22
                [e*] rabbitmq_management_agent 3.7.22
                [E*] rabbitmq_message_deduplication 0.4.2
                [ ] rabbitmq_mqtt 3.7.22
                [ ] rabbitmq_peer_discovery_aws 3.7.22
                [ ] rabbitmq_peer_discovery_common 3.7.22
                [ ] rabbitmq_peer_discovery_consul 3.7.22
                [ ] rabbitmq_peer_discovery_etcd 3.7.22
                [ ] rabbitmq_peer_discovery_k8s 3.7.22
                [ ] rabbitmq_random_exchange 3.7.22
                [ ] rabbitmq_recent_history_exchange 3.7.22
                [ ] rabbitmq_sharding 3.7.22
                [ ] rabbitmq_shovel 3.7.22
                [ ] rabbitmq_shovel_management 3.7.22
                [ ] rabbitmq_stomp 3.7.22
                [ ] rabbitmq_top 3.7.22
                [ ] rabbitmq_tracing 3.7.22
                [ ] rabbitmq_trust_store 3.7.22
                [e*] rabbitmq_web_dispatch 3.7.22
                [ ] rabbitmq_web_mqtt 3.7.22
                [ ] rabbitmq_web_mqtt_examples 3.7.22
                [ ] rabbitmq_web_stomp 3.7.22
                [ ] rabbitmq_web_stomp_examples 3.7.22

                So I dont think its the missing plugin...

                Comment

                • jmrice
                  Member
                  • Aug 2019
                  • 33

                  #9
                  Greetings ...

                  The problem:
                  Preprocessing failed for: HTTP/1.1 404 Object Not Found..Server: MochiWeb/1.1 WebMachine/1.10.0 (never breaks eye contact)....
                  1. Result: {"error":"Object Not Found","reason":""Not Found"\n"}
                  2. Failed: cannot extract value from json by path "$.status": no data matches the specified path

                  This is from the HealthCheck Item with the Key: web.page.get["http://{$RABBITMQ.API.USER}:{$RABBITMQ.API.PASSWORD}@{$RA BBITMQ.API.HOST}:{$RABBITMQ.API.PORT}/api/healthchecks/node"]

                  I suspect that the error means that it cannot find the content under the directory structure api/healthcheck/node.
                  In fact, the only thing in te api/ directory is the index.html file "RabbitMQ Management HTTP API".

                  I installed the template found here: https://git.zabbix.com/projects/ZBX/...itmq_agent.xml
                  I created the zbx_monitor user, set the password and permissions, etc., and enabled the RabbitMQ Management plugin ...

                  # rabbitmq-plugins list
                  [e] amqp_client 3.3.5
                  [ ] cowboy 0.5.0-rmq3.3.5-git4b93c2d
                  [ ] eldap 3.3.5-gite309de4
                  [e] mochiweb 2.7.0-rmq3.3.5-git680dba8
                  [ ] rabbitmq_amqp1_0 3.3.5
                  [ ] rabbitmq_auth_backend_ldap 3.3.5
                  [ ] rabbitmq_auth_mechanism_ssl 3.3.5
                  [ ] rabbitmq_consistent_hash_exchange 3.3.5
                  [ ] rabbitmq_federation 3.3.5
                  [ ] rabbitmq_federation_management 3.3.5
                  [E] rabbitmq_management 3.3.5
                  [e] rabbitmq_management_agent 3.3.5
                  [ ] rabbitmq_management_visualiser 3.3.5
                  [ ] rabbitmq_mqtt 3.3.5
                  [ ] rabbitmq_shovel 3.3.5
                  [ ] rabbitmq_shovel_management 3.3.5
                  [ ] rabbitmq_stomp 3.3.5
                  [ ] rabbitmq_test 3.3.5
                  [ ] rabbitmq_tracing 3.3.5
                  [e] rabbitmq_web_dispatch 3.3.5
                  [ ] rabbitmq_web_stomp 3.3.5
                  [ ] rabbitmq_web_stomp_examples 3.3.5
                  [ ] sockjs 0.3.4-rmq3.3.5-git3132eb9
                  [e] webmachine 1.10.3-rmq3.3.5-gite9359c7


                  Is it something as simple as an older version of RabbitMQ?

                  I thought the management plugin is included with the distribution, and just needed to be enabled.
                  What am I missing?

                  Thanks for any insight.

                  Jim

                  Comment

                  • jmrice
                    Member
                    • Aug 2019
                    • 33

                    #10
                    Let me ask more directly ... Where can I find the content that is supposed to be in api/healthcheck/node ?

                    Comment

                    • twolions
                      Junior Member
                      • Apr 2020
                      • 1

                      #11
                      Originally posted by divera
                      Hi,
                      i did a test on your Template today with docker and Zabbix-Server 4.4 latest.
                      rabbitmq-3.7 with managment
                      zabbix-agent4.4-latest
                      generate zabbixmonitor user as described
                      setting maccro values password and
                      {$RABBITMQ.API.HOST} to hostname of rabbitmq - container

                      Resulting in 9 values filled
                      RabbitMQ: CPU utilization 0 %
                      RabbitMQ: Healthcheck Ok (1)
                      RabbitMQ: Management plugin version 3.7.23
                      RabbitMQ: Memory usage (rss) 0 B
                      RabbitMQ: Memory usage (vsize) 0 B
                      RabbitMQ: Number of processes running 0
                      RabbitMQ: RabbitMQ version 3.7.23
                      RabbitMQ: Service ping Up (1)
                      RabbitMQ: Service response time 0.7ms

                      But Autodiscover seems to not work;
                      Doing a check on:
                      Template App RabbitMQ node by Zabbix agent: RabbitMQ: Get queues: Queues discovery
                      gives:
                      Cannot send request: wrong discovery rule type.
                      using zabbix-get on Zabbix-Server with macro-vars filled on the query with "/api/queues" gives a hole lot of json - Data so it seems fine for me.

                      So im a little confused what this wrong discovery rule type means.

                      Did you find a solution for that? We are also facing this issue, RabbitMQ monitoring ist enabled, all other stats are visible for Zabbix. When I get the "RabbitMQ: Get queues" webrequest I receive a lot of JSON with all the queues and their stats. But when I try to execute the discovery (Queues discovery) I always get the same error as you (Cannot send request: wrong discovery rule type.). Is there any chance to get a more detailed description of the error? We are also running Zabbix-Server 4.4 with Zabbix-Agent 4.4 and RabbitMQ 3.8.2.

                      Comment

                      • memlucky
                        Junior Member
                        • Jun 2020
                        • 1

                        #12
                        Originally posted by divera
                        Hi,
                        i did a test on your Template today with docker and Zabbix-Server 4.4 latest.
                        rabbitmq-3.7 with managment
                        zabbix-agent4.4-latest
                        generate zabbixmonitor user as described
                        setting maccro values password and
                        {$RABBITMQ.API.HOST} to hostname of rabbitmq - container

                        Resulting in 9 values filled
                        RabbitMQ: CPU utilization 0 %
                        RabbitMQ: Healthcheck Ok (1)
                        RabbitMQ: Management plugin version 3.7.23
                        RabbitMQ: Memory usage (rss) 0 B
                        RabbitMQ: Memory usage (vsize) 0 B
                        RabbitMQ: Number of processes running 0
                        RabbitMQ: RabbitMQ version 3.7.23
                        RabbitMQ: Service ping Up (1)
                        RabbitMQ: Service response time 0.7ms

                        But Autodiscover seems to not work;
                        Doing a check on:
                        Template App RabbitMQ node by Zabbix agent: RabbitMQ: Get queues: Queues discovery
                        gives:
                        Cannot send request: wrong discovery rule type.
                        using zabbix-get on Zabbix-Server with macro-vars filled on the query with "/api/queues" gives a hole lot of json - Data so it seems fine for me.

                        So im a little confused what this wrong discovery rule type means.

                        Any update? I am also facing this issue, using Zabbix 5.0.1, queues information are stored, but discovery rule can not be executed, the result would be `Cannot send request: wrong discovery rule type.`

                        Comment

                        • jmrice
                          Member
                          • Aug 2019
                          • 33

                          #13
                          Template App RabbitMQ node by Zabbix agent: RabbitMQ: Get nodes: RabbitMQ: Free disk space rabbitmq.node.disk_free

                          Preprocessing failed for: {"error":"Object Not Found","reason":"Not Found"}
                          1. Failed: cannot extract value from json by path "$.disk_free": no data matches the specified path

                          zabbix_get -s rabbitmq1 -p 10050 -k rabbitmq.node.disk_free
                          ZBX_NOTSUPPORTED: Unsupported item key.

                          According to the docs, Preprocessing:
                          - JSONPATH: $.disk_free

                          is correct. What am I missing?

                          Comment

                          • jmrice
                            Member
                            • Aug 2019
                            • 33

                            #14
                            OK, I've been tinkering and learned a few things ... The Template RabbtMQ: Get nodes provides a lot of dependent check items, but I needed to tweak the Key and add a user macro. (Don't ask.)
                            And I was finally able to get it to run. But now I am getting hit by the trigger RabbitMQ: Failed to fetch nodes data (or no data for 30m) because Get nodes doesn't run according to the 1m interval.
                            Even though the dependecies of RabbitMQ: Process is not running & RabbitMQ: Service is down are both returning positive values. The history data is now several hours old, thus the trigger.
                            I cleared the problem manually, and it fails again immediately.

                            Any ideas on what to look for to make RabbitMQ: Get nodes run again?

                            Comment

                            • Gadg3ts
                              Junior Member
                              • Jan 2020
                              • 11

                              #15
                              I'm also having trouble with the RabbitMQ nodes template.
                              However, the cluster template works fine.
                              Zabbix 5.0.2 (AWS Appliance).
                              RabbitMQ 3.8.9 (also in AWS)

                              The "Get Nodes RAW Data" does work, but the issue seems to be that the values it is looking for don't return any data as given.
                              eg $.sockets_used returns as invalid.
                              However using the same data $..sockets_used gives the expected result of [53,53,100] (which is for all 3 nodes) using the validator here https://jsonpath.curiousconcept.com.
                              So it would appear that the template 'as given' wants a single node to talk to, but especially when using AWS (and externally), you're not going to get that access.
                              And ideally we'd want to know the state of each node anyway.
                              How can we make this work?...

                              Thanks,
                              Sean

                              Comment

                              Working...