PDA

View Full Version : Alla faccia del SNMP (v3)


gionnico
10-01-2008, 00:27
Ho da poco acquistato un router che mi permette grazie al suo agent di monitorarlo attraverso un pc destinazione.

Vorrei usare il protocollo v3 dato che il rotuer lo supporta.
Il server funziona anche da server web, quindi vorrei pubblicare le statistiche in un'area del sito con MRTG.


Partiamo dalle basi, ho installato Net-SNMP.

Uso gentoo, ho letto un paio di how-to ma non paiono aggiornati e non riesco nemmeno a collegarmi.
Inoltre i "trap" sono spariti nella v3 che è ciò che a quanto avevo capito permettevano anche grazie al snmptrapd di "querare" il router ad intervalli regolari.
Meno male che non si chiama soltanto NMP. :eek:


Qualcuno sa darmi una mano?
Di documenti se ne trovano ma sono specifici, non si capisce se vogliono farti fare a te da agent (termine nuovo che ho imparato per dire server, anche se il client stesso penso che dovrebbe essere lanciato come demone creando casino :rolleyes: )


Come "passare" ad MRTG le informazioni di SNMP riguardo ad un router. Il server è un PC della LAN, che funziona da server web.

Devil!
10-01-2008, 10:45
prova con il comando:
snmpwalk -v 3 -c public IP_ROUTER
e per sicurezza prova anche con le versioni precedenti di SNMP
snmpwalk -v 1 -c public IP_ROUTER
oppure
snmpwalk -v 2c -c public IP_ROUTER
essendo public la community di solito impostata di default

Per monitorare il router dal server devi inserire nelle configurazioni dei grafici di MRTG un target adeguato (oltre agli altri parametri) necessari per la creazione di un grafico.

Il target non è altro che un output e può essere dato da una richiesta SNMP (tramite OID o espressione regolare) o in generale da un comando (cat, ls, echo etc...) o da uno script che genera un output.

Ad esempio, sul mio server (che monitora se stesso :D) uso questi script di configurazione.

Per monitorare l'utilizzo della CPU:

WorkDir: /var/www/originalp.dnsalias.net/mrtg
LoadMIBs: /usr/share/snmp/mibs/UCD-SNMP-MIB.txt
Target[localhost.cpu]:Target[localhost.cpu]:ssCpuRawUser.0&ssCpuRawUser.0:public@127.0.0.1+ ssCpuRawSystem.0&ssCpuRawSystem.0:public@127.0.0.1+ ssCpuRawNice.0&ssCpuRawNice.0:public@127.0.0.1
RouterUptime[localhost.cpu]: public@127.0.0.1
MaxBytes[localhost.cpu]: 100
Title[localhost.cpu]: CPU Load
PageTop[localhost.cpu]: <H1>Active CPU Load %</H1>
Unscaled[localhost.cpu]: ymwd
ShortLegend[localhost.cpu]: %
YLegend[localhost.cpu]: CPU Utilization
#Legend1[localhost.cpu]: Active CPU in % (Load)
#Legend2[localhost.cpu]:
LegendI[localhost.cpu]: Active
LegendO[localhost.cpu]:
Options[localhost.cpu]: growright,nopercent,nolegend
LogFormat: rrdtool
IconDir: /mrtg
questo è un esempio di target usando le espressioni regolari SNMP

Per monitorare la latenza:
WorkDir: /var/www/originalp.dnsalias.net/mrtg
Title[localhost.ping]: Round Trip Time
PageTop[localhost.ping]: <H1>Ping maya.ngi.it</H1>
Target[localhost.ping]: `/etc/mrtg/ping.sh`
MaxBytes[localhost.ping]: 2000
Options[localhost.ping]: growright,unknaszero,nopercent,gauge
LegendI[localhost.ping]: Pkt loss %
LegendO[localhost.ping]: Avg RTT
Legend1[localhost.ping]: Pkt loss %
Legend2[localhost.ping]: Avg RTT
YLegend[localhost.ping]: RTT (ms)
YTicsFactor[localhost.ping]: 1.0
LogFormat: rrdtool
IconDir: /mrtg

dove ping.sh è
#!/bin/sh
PING="/bin/ping"
ADDR="maya.ngi.it"
DATA=`$PING -f -c10 $ADDR -q `
LOSS=`echo $DATA | awk '{print $18 }' | tr -d %`
echo $LOSS
if [ $LOSS = 100 ];
then
echo 0
else
echo $DATA | awk -F/ '{print $5 }'
fi
questo è un esempio di target usando uno script

Per monitorare la RAM:
LoadMIBs: /usr/share/snmp/mibs/HOST-RESOURCES-MIB.txt
Target[localhost.mem]: .1.3.6.1.4.1.2021.4.6.0&.1.3.6.1.4.1.2021.4.6.0:public@localhost
PageTop[localhost.mem]: <H1>Free Memory</H1>
WorkDir: /var/www/originalp.dnsalias.net/mrtg
Options[localhost.mem]: nopercent,growright,gauge,nolegend
Title[localhost.mem]: Free Memory
MaxBytes[localhost.mem]: 1000000
kMG[localhost.mem]: k,M,G,T,P,X
YLegend[localhost.mem]: bytes
ShortLegend[localhost.mem]: bytes
LegendI[localhost.mem]: Free Memory:
LegendO[localhost.mem]:
#Legend1[localhost.mem]: Free memory, not including swap, in bytes
LogFormat: rrdtool
IconDir: /mrtg
e questo è un esempio di target usando un OID

N.B: il log dei dati avviene tramite RRDtool, generando un file dal quale creare i grafici tramite richiesta cgi, senza crearli ogni volta ogni 5 minuti; per fare ciò uso mrtg-rrd (http://oss.oetiker.ch/mrtg/doc/mrtg-rrd.en.html)

Inoltre i "trap" sono spariti nella v3 che è ciò che a quanto avevo capito permettevano anche grazie al snmptrapd di "querare" il router ad intervalli regolari.

Per querare ad intervalli regolari basta che imposti una regola per i cronjob.

Se ti può essere d'aiuto avevo scritto una guida su MRTG tempo fa, proprio mentre aiutavo un altro utente con SNMP e il suo router.

http://originalp.altervista.org/mrtg (http://originalp.altervista.org/mrtg)

La guida è orientata al monitoraggio di un PC però

Vedi se ti è utile ;)

gionnico
10-01-2008, 13:52
Ora gli dò un'occhiata.

Intanto

# snmpwalk -v 3 -u gionnico -A password 192.168.1.254
Error in packet.
Reason: authorizationError (access denied to that object)
Failed object: SNMPv2-SMI::mib-2