MRTG generare grafici monitoraggio del sistema

30/09/2006 by - Linux

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 texilee@localhost <- 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:texilee@localhost RouterUptime[texilee.tcpopen]: texilee@localhost 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:tex@localhost 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



Lascia un commento

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.