Red Hat Cluster Suite monitoring with SNMP
I’ll consider your cluster is already up and running.
Install cluster-snmp (available in Red Hat Cluster repository) :
yum install cluster-snmp
Let’s see what we have in there :
# rpm -ql cluster-snmp
/usr/lib/cluster-snmp
/usr/lib/cluster-snmp/libClusterMonitorSnmp.so
/usr/share/doc/cluster-snmp-0.12.1
/usr/share/doc/cluster-snmp-0.12.1/COPYING
/usr/share/doc/cluster-snmp-0.12.1/README
/usr/share/doc/cluster-snmp-0.12.1/README.snmpd
/usr/share/doc/cluster-snmp-0.12.1/REDHAT-CLUSTER-MIB
/usr/share/doc/cluster-snmp-0.12.1/REDHAT-MIB
/usr/share/snmp/mibs/REDHAT-CLUSTER-MIB
/usr/share/snmp/mibs/REDHAT-MIB
Now on every node of the cluster, edit /etc/snmp/snmpd.conf and add this :
At the very beginning of the file :
dlmod RedHatCluster /usr/lib/cluster-snmp/libClusterMonitorSnmp.so
If you run a 64 bits node :
dlmod RedHatCluster /usr/lib64/cluster-snmp/libClusterMonitorSnmp.so
After other view items :
view systemview included REDHAT-CLUSTER-MIB:RedHatCluster
Now reload SNMP and restart modclusterd :
service snmpd reload
service modclusterd restart
You should now be able to query your nodes with any LDAP client.
On a Linux client, copy the MIB’s from the RPM under ~/.snmp/mibs and then run :
$ snmpwalk -v 2c -c public node1.example.com REDHAT-CLUSTER-MIB::RedHatCluster
REDHAT-CLUSTER-MIB::rhcMIBVersion.0 = INTEGER: 1
REDHAT-CLUSTER-MIB::rhcClusterName.0 = STRING: "MailServerExample"
REDHAT-CLUSTER-MIB::rhcClusterStatusCode.0 = INTEGER: 1
REDHAT-CLUSTER-MIB::rhcClusterStatusDesc.0 = STRING: "All services and nodes functional"
REDHAT-CLUSTER-MIB::rhcClusterVotesNeededForQuorum.0 = INTEGER: 1
REDHAT-CLUSTER-MIB::rhcClusterVotes.0 = INTEGER: 2
REDHAT-CLUSTER-MIB::rhcClusterQuorate.0 = INTEGER: 1
REDHAT-CLUSTER-MIB::rhcClusterNodesNum.0 = INTEGER: 2
REDHAT-CLUSTER-MIB::rhcClusterNodesNames.0 = STRING: "node1.example.com, node2.example.com"
REDHAT-CLUSTER-MIB::rhcClusterAvailNodesNum.0 = INTEGER: 2
REDHAT-CLUSTER-MIB::rhcClusterAvailNodesNames.0 = STRING: "node1.example.com, node2.example.com"
REDHAT-CLUSTER-MIB::rhcClusterUnavailNodesNum.0 = INTEGER: 0
REDHAT-CLUSTER-MIB::rhcClusterUnavailNodesNames.0 = ""
REDHAT-CLUSTER-MIB::rhcClusterServicesNum.0 = INTEGER: 1
REDHAT-CLUSTER-MIB::rhcClusterServicesNames.0 = STRING: "MailServer"
REDHAT-CLUSTER-MIB::rhcClusterRunningServicesNum.0 = INTEGER: 1
REDHAT-CLUSTER-MIB::rhcClusterRunningServicesNames.0 = STRING: "MailServer"
REDHAT-CLUSTER-MIB::rhcClusterStoppedServicesNum.0 = INTEGER: 0
REDHAT-CLUSTER-MIB::rhcClusterStoppedServicesNames.0 = ""
REDHAT-CLUSTER-MIB::rhcClusterFailedServicesNum.0 = INTEGER: 0
REDHAT-CLUSTER-MIB::rhcClusterFailedServicesNames.0 = ""
REDHAT-CLUSTER-MIB::rhcNodeName."node1.example.com" = STRING: "node1.example.com"
REDHAT-CLUSTER-MIB::rhcNodeName."node2.example.com" = STRING: "node2.example.com"
REDHAT-CLUSTER-MIB::rhcNodeStatusCode."node1.example.com" = INTEGER: 0
REDHAT-CLUSTER-MIB::rhcNodeStatusCode."node2.example.com" = INTEGER: 0
REDHAT-CLUSTER-MIB::rhcNodeStatusDesc."node1.example.com" = STRING: "Participating in cluster"
REDHAT-CLUSTER-MIB::rhcNodeStatusDesc."node2.example.com" = STRING: "Participating in cluster"
REDHAT-CLUSTER-MIB::rhcNodeRunningServicesNum."node1.example.com" = INTEGER: 1
REDHAT-CLUSTER-MIB::rhcNodeRunningServicesNum."node2.example.com" = INTEGER: 0
REDHAT-CLUSTER-MIB::rhcNodeRunningServicesNames."node1.example.com" = STRING: "MailServer"
REDHAT-CLUSTER-MIB::rhcNodeRunningServicesNames."node2.example.com" = ""
REDHAT-CLUSTER-MIB::rhcServiceName."MailServer" = STRING: "MailServer"
REDHAT-CLUSTER-MIB::rhcServiceStatusCode."MailServer" = INTEGER: 0
REDHAT-CLUSTER-MIB::rhcServiceStatusDesc."MailServer" = STRING: "running"
REDHAT-CLUSTER-MIB::rhcServiceStartMode."MailServer" = STRING: "automatic"
REDHAT-CLUSTER-MIB::rhcServiceRunningOnNode."MailServer" = STRING: "node1.example.com"
You are now provided with very interesting information, like :
REDHAT-CLUSTER-MIB::rhcClusterStatusDesc
REDHAT-CLUSTER-MIB::rhcServiceRunningOnNode






