Questo articolo è stato trato dal sito precedente
MRTG per generare grafici per il monitoraggio del sistema
Questo HOW-TO spiega brevemente come configurare MRTG per ottenere grafici sia usando script che utilizzando SNMP
Per configurare MRTG è necessario aver installato SNMP & MRTG
Per l’installazione di SNMP i passi sono i seguenti:
#./configure && make && make install
Modificare il file snmpd.conf copiando il file di esempio
#mv /usr/src/pathSNMP/EXAMPLE.conf /usr/local/share/snmp/snmpd.conf
OPZIONALE
#vi /usr/local/share/snmp/snmpd.conf
Modificare le righe attinenti alla community locale
com2sec local localhost public <--modificate con altro nome ad esempio texilee
com2sec local localhost texilee
Verifichiamo il funzionamento lanciando SNMP
#snmpd -c /usr/local/share/snmp/snmpd.conf
#netstat -naup
....
udp 0 0 0.0.0.0:161 0.0.0.0:* 32337/snmpd
....
Possiamo notare che il demone SNMP utilizza la porta 161 UDP
Ora possiamo interrogare SNMP per conoscere tutti i parametri attinenti lo stato del sistema
Il comando è snmpwalk
USAGE: snmpwalk [OPTIONS] AGENT [OID]
#snmpwalk -v 1 -c texilee localhost mem
UCD-SNMP-MIB::memIndex.0 = INTEGER: 0
UCD-SNMP-MIB::memErrorName.0 = STRING: swap
UCD-SNMP-MIB::memTotalSwap.0 = INTEGER: 248968
UCD-SNMP-MIB::memAvailSwap.0 = INTEGER: 159664
UCD-SNMP-MIB::memTotalReal.0 = INTEGER: 126124
UCD-SNMP-MIB::memAvailReal.0 = INTEGER: 3140
UCD-SNMP-MIB::memTotalFree.0 = INTEGER: 162804
UCD-SNMP-MIB::memMinimumSwap.0 = INTEGER: 16000
UCD-SNMP-MIB::memShared.0 = INTEGER: 0
UCD-SNMP-MIB::memBuffer.0 = INTEGER: 2728
UCD-SNMP-MIB::memCached.0 = INTEGER: 61176
UCD-SNMP-MIB::memSwapError.0 = INTEGER: 0
UCD-SNMP-MIB::memSwapErrorMsg.0 = STRING:
Ora proviamo a lanciare free e a fare un paragone
#free
total used free shared buffers cached
Mem: 126124 122684 3440 0 2728 56520
-/+ buffers/cache: 63436 62688
Swap: 248968 89304 159664
Per l’installazione di MRTG vi rimando nuovamente qui.
Brevemente i passi sono questi (requisiti GCC Perl Gd libpng & zlib)
./configure –prefix=/usr/local/mrtg && make && make install
I comandi che useremo sono
cfgmaker mrtg indexmaker
e si trovano in /usr/local/mrtg/bin
Per cominciare dovremo creare il file di configurazione (che genera automaticamente la parte riguardante il traffico di rete)
cfgmaker –global WorkDir: /www/htdocs/mrtg’ <- una dir leggibile dal vostro webserver --global Options[_]: bits,growright' --output /usr/local/mrtg/bin/mrtg.cfg [email protected] <- dovete specificare la community modificheremo il file di configurazione per permettere a MRTG di essere eseguito come demone #vi /usr/local/mrtg/bin/mrtg.cfg Aggiugeremo la riga RunAsDaemon: yes lo eseguiamo #cd /usr/local/mrtg/bin/ #mrtg mrtg.cfg --logging=/var/log/mrtg --logging=/var/log/mrtg salva gli avvisi, warning e errori di mrtg in un file e non sullo standard output 😉 diamo uno sguardo ai file creati dal demone #ls -la /www/htdocs/mrtg/*.html apriamo il file creato e ogni 5 minuti vedremo il grafico aggiornarsi Ora monitorizzeremo più aspetti dello stato del nostro PC MTRG permette di monitorare qualsiasi valore purchè intero (per i reali dovremmo utilizzare le RRD-tool) ed è abbastanza facile da utilizzare I parametri monitorati(o monitorizzati ?? w l'italiano!) principalmente sono lo stato della memoria, della cpu, dei processi attivi , delle connessioni stabilite, della % di spazio su disco utilizzato, con il numero di porte aperte.. le implementazioni sono infinite.. ho visto monitorare l'attività della tastiera e del mouse.. #vi /usr/local/mrtg/bin/mrtg.cfg .... Target[texilee.tcpopen]:.1.3.6.1.2.1.6.9.0&.1.3.6.1.2.1.6.9.0:[email protected] RouterUptime[texilee.tcpopen]: [email protected] Options[texilee.tcpopen]: nopercent,gauge,noinfo Title[texilee.tcpopen]: Connessioni TCP stabilite PageTop[texilee.tcpopen]: Connessioni TCP stabilite MaxBytes[texilee.tcpopen]: 1000000 YLegend[texilee.tcpopen]: # conns ShortLegend[texilee.tcpopen]: LegendI[texilee.tcpopen]: Connessioni: LegendO[texilee.tcpopen]: Legend1[texilee.tcpopen]: Connessioni TCP stabilite Il Target ovviamente indica cosa verrà monitorizzato seguito dalla community Target[texilee.tcpopen]:.1.3.6.1.2.1.6.9.0&.1.3.6.1.2.1.6.9.0:[email protected] OID = .1.3.6.1.2.1.6.9.0 indica l'object id che monitorizza le connessioni stabilite naturalmente questo valore intero può essere ricavato anche utilizzando snmpwalk snmpwalk -v 1 -c texilee localhost tcp|grep CurrEst TCP-MIB::tcpCurrEstab.0 = Gauge32: 2 <-- numero connessioni Possiamo trovare numerosi esempi qui
Ogni OID ha il suo corrispettivo nome “variabile” e ricordando che mrtg ha bisogno solamente di un intero per genereare grafici abbiamo 3 strade per passare un valore
nome = tcpCurrEstab
oid = .1.3.6.1.2.1.6.9.0
oppure, senza l’ausilio di snmp, con degli script.
ad esempio possiamo conoscere il numero delle connessioni stabilite tramite un semplice
#netstat -nat|grep ESTA|wc -l
creiamo uno script adatto al nostro scopo
#!/bin/sh
netstat=”/bin/netstat”
grep=”/bin/grep”
wc=”/usr/bin/wc”
conns=echo -nat| ESTA| -l
echo
salviamolo e diamogli i permessi di exe
#chmod +x script_conns
ora basterà semplicemente modificare la riga del target
Target[texilee.tcpopen]: `/pathscript/script_conns`
Potete trovare file di configurazione e qualche script qui
Ultima cosa la creazione della pagina index
#cd /usr/local/mrtg/bin
#./indexmaker mrtg.cfg > /www/htdocs/mrtg/index.html
Ogni volta che inseriremo nuovi target dovremmo ripetere l’operazione. La creazione della index può essere effettuata anche durante l’esecuzione del demone.
E’ possibile monitorare l’attività di Squid. Il MIB file lo potete trovare nel pacchetto Squid (mib.txt).
Per consentire la comunicazione snmp dovete aggiungere nel file squid.conf
acl snmppublic snmp_community public
snmp_port 3401
snmp_access allow snmppublic all
dove snmp_community è quella che avete settato (di default public) e ogni nome acl può andare bene
Nel file di configurazione di MRTG aggiungere
LoadMIBS: /usr/local/mrtg-2/mibs/squid.mib