3 Replies Latest reply on Sep 24, 2014 12:54 AM by genman

    How to monitor SNMP from RHQ server or agent?

    lhays

      Help please,

      I am trying to set up RHQ (server or agent) to retreive SNMP data, and then generate alerts.  I found reference to an "experimental" plugin with broken source code links.  This seems like a common task to a standard interface, and I feel I am missing something.  I could use some direction on where to look for plugins or source code or references.  I can search the baseline but this seems like a sledgehammer approach.  I am currently using RHQ 4.9 but I may have to upgrade to 4.10+ because of a  4.9 issue.  Any help or direction is greatly appreciated.

       

      Thanks,

      lhays

        • 1. Re: How to monitor SNMP from RHQ server or agent?
          genman

          I have a whole plugin library for monitoring SNMP.

           

          It can handle things like NetScalers or whatever you can throw at it. Basically if you have a MIB you can create a plugin. I have current plans to open source it but may be a few weeks (month) until that happens.

          1 of 1 people found this helpful
          • 2. Re: How to monitor SNMP from RHQ server or agent?
            pilhuhn

            Elias,

            so you have a translator MIB -> rhq-plugin.xml? And then some base plugin (like the JMX one) that does the lifting of SNMP connections?

            That sounds excellent. Looking forward to seeing that in RHQ.

             

              Heiko

            • 3. Re: Re: How to monitor SNMP from RHQ server or agent?
              genman

              Yeah.

               

              For example, with taking the file 'fioIoDimm.mib' (Fusion/IO system) it generates XML like this... You do have to do a bit of editing, like put in the name of the service, plugins, etc but the rest works. It also helps to put in 'measurement' or 'trait' depending on the field. But from this you pretty much have something that can monitor your $15,000 solid state storage device.

               

              <?xml version="1.0" encoding="UTF-8"?>
              <plugin xmlns:rhq="urn:xmlns:rhq-plugin" xmlns:c="urn:xmlns:rhq-configuration" name="short name" displayName="Longer name" description="What this does" package="com.apple.iad.rhq.snmp">
                  <depends plugin="snmp" useClasses="true" />
                  <service name="XXX TODO XXX" discovery="MibDiscovery" class="MibComponent" singleton="true" classLoader="instance">
                      <runs-inside>
                          <parent-resource-type name="SNMP Component" plugin="snmp" />
                      </runs-inside>
                      <plugin-configuration>
                          <c:simple-property name="mibs" default="fioIoDimm.mib" />
                      </plugin-configuration>
                      <metric property="fusionIoDimmMibRevMajor" description="Major MIB revision. This will increment when incompatible structural changes occur." displayType="detail" dataType="measurement" />
                      <metric property="fusionIoDimmMibRevMinor" description="Minor MIB revision. This will increment when minor additions occur." displayType="detail" dataType="measurement" />
                      <!--fusionIoDimmMIBCondition values: {1=other, 2=ok, 3=degraded, 4=failed}-->
                      <metric property="fusionIoDimmMIBCondition" description="The overall MIB condition." displayType="detail" dataType="trait" />
                      <service name="fusionIoDimmInfoTable" discovery="MibTableDiscovery" class="MibTableComponent" singleton="false">
                          <metric property="fusionIoDimmInfoIndex" description="Unique index for ioDrive entries." displayType="detail" dataType="measurement" />
                          <!--fusionIoDimmInfoStatus values: {1=other, 2=ok, 3=degraded, 4=failed}-->
                          <metric property="fusionIoDimmInfoStatus" description="The overall status of the ioDrive device." displayType="detail" dataType="trait" />
                          <metric property="fusionIoDimmInfoName" description="System control device name for this device." displayType="detail" dataType="trait" />
              

               

              One neat thing is the trait values, although numbers in SNMP land, appear as strings in the RHQ UI.

               

              There's also support in my fork of snmptrapd to decode trap OIDs. I tried to get fancy with filtering, but the main benefit is seeing the decoded values.