Categories
Linux

OpenNMS: Memcached mit SNMP überwachen

opennmsIn OpenNMS gibt es zwar auch einen “nativen” Memcached-Monitor – aber dieser funktioniert nur wenn der Memcached direkt über das Netz vom Monitorserver aus erreichbar ist.

Mit der bekannten SNMP-extend Methode lässt sich der Memcached Daemon auch gut via SNMP mit OpenNMS überwachen. Hier nur kurz die wichtigsten Scripte und Schritte:

Service überwachen

Das geht am einfachsten über das “HostResourceSwRunPlugin” Plugin welches die laufenden Prozesse via SNMP überwacht. Zunächst muss der Service überhaupt erkannt werden:

/etc/opennms/capsd-configuration.xml

    
	
	
	
    

Dann wird die Überwachung definiert:
/etc/opennms/poller-configuration.xml

   ...

    
    
    
    
    

 ...
    

Statistiken

Um noch ein paar Graphen zu generieren werden per SNMP noch die Statusdetails des Memcached Daemons übertragen…

Zunächst brauchen wir ein Script um die Statusdaten vom Memcached zu bekommen:
/etc/snmp/check_memcached.sh

#!/bin/bash
echo -e "stats\nquit" | nc 127.0.0.1 11211 | while read  -d $'\r' stat name value;
        do
            echo $value
        done

Das Script “check_memcached.sh” verwendet dann der SNMP-Daemon um die Daten auszulesen und zu übertragen:
/etc/snmp/snmpd.conf

extend memcached /etc/snmp/check_memcached

OpenNMS wird jetzt erweitert um diese Daten zu sammeln:
/etc/opennms/datacollection-config.xml


	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	

      
...
        
...
            memcached-status
...
        
      

Jetzt müssen noch die Graphen definiert werden:

/etc/opennms/snmp-graph.properties

report.netsnmp.memcached.hits.name=Memcached hits
report.netsnmp.memcached.hits.columns=mcd-getHits,mcd-getMisses
report.netsnmp.memcached.hits.type=nodeSnmp
report.netsnmp.memcached.hits.command=--title="Memcached hits" \
 DEF:hits={rrd1}:mcd-getHits:AVERAGE \
 DEF:misses={rrd2}:mcd-getMisses:AVERAGE \
 AREA:hits#71A336:"Hits   " \
 GPRINT:hits:AVERAGE:"Avg  \\: %8.2lf " \
 GPRINT:hits:MIN:"Min  \\: %8.2lf " \
 GPRINT:hits:MAX:"Max  \\: %8.2lf \\n" \
 LINE1:misses#F7AA29:"Misses " \
 GPRINT:misses:AVERAGE:"Avg  \\: %8.2lf " \
 GPRINT:misses:MIN:"Min  \\: %8.2lf " \
 GPRINT:misses:MAX:"Max  \\: %8.2lf \\n"

report.netsnmp.memcached.memoryUsage.name=Memcached Memory Usage
report.netsnmp.memcached.memoryUsage.columns=mcd-bytes,mcd-limitMaxbytes
report.netsnmp.memcached.memoryUsage.type=nodeSnmp
report.netsnmp.memcached.memoryUsage.command=--title="Memcached Memory Usage" \
 --vertical-label="Bytes" \
 DEF:used={rrd1}:mcd-bytes:AVERAGE \
 DEF:max={rrd2}:mcd-limitMaxbytes:AVERAGE \
 CDEF:free=max,used,- \
 AREA:used#1A37EC:"Used " \
 GPRINT:used:AVERAGE:"Avg  \\: %8.2lf %s " \
 GPRINT:used:MIN:"Min  \\: %8.2lf %s " \
 GPRINT:used:MAX:"Max  \\: %8.2lf %s \\n" \
 STACK:free#00CF00:"Free " \
 GPRINT:free:AVERAGE:"Avg  \\: %8.2lf %s " \
 GPRINT:free:MIN:"Min  \\: %8.2lf %s " \
 GPRINT:free:MAX:"Max  \\: %8.2lf %s \\n" \
 LINE1:max#000000:"Max  " \
 GPRINT:max:AVERAGE:"Avg  \\: %8.2lf %s " \
 GPRINT:max:MIN:"Min  \\: %8.2lf %s " \
 GPRINT:max:MAX:"Max  \\: %8.2lf %s \\n" 

Derzeit werden noch mehr Daten aufgezeichnet als überhaupt für die Graphen benötigt werden. Mal sehen ob sich noch weitere sinnvolle Graphen aus den Daten generieren lassen…

3 replies on “OpenNMS: Memcached mit SNMP überwachen”

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.