User Tools

Site Tools


doc:appunti:linux:sa:cacti

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
doc:appunti:linux:sa:cacti [2012/11/12 11:55] – [Cache di valori errati] niccolodoc:appunti:linux:sa:cacti [2020/12/15 12:48] – ["Get Mounted Partitions" vs "Get Monitored Partitions"] niccolo
Line 169: Line 169:
 **NOTA 2:** Nel caso in cui si vuole monitorare lo stesso host Linux su cui gira Cacti, la Data Query **Unix - Get Mounted Partitions** probabilmente è **più adatta** perché riporta solo le partizioni fisiche montate, con il punto di montaggio e il nome del device. Ovviamente **non funziona in remoto** via SNMP. **NOTA 2:** Nel caso in cui si vuole monitorare lo stesso host Linux su cui gira Cacti, la Data Query **Unix - Get Mounted Partitions** probabilmente è **più adatta** perché riporta solo le partizioni fisiche montate, con il punto di montaggio e il nome del device. Ovviamente **non funziona in remoto** via SNMP.
  
 +===== "Get Mounted Partitions" vs "Get Monitored Partitions" =====
 +
 +Cacti fornisce due diverse Data Query per monitorare lo spazio occupato sul disco:
 +
 +  * **SNMP - Get Mounted Partitions**
 +  * **Net-SNMP - Get Monitored Partitions**
 +
 +Le due query si basano su altrettanti script che vanno a interrogare OID diversi:
 +
 +^ Script Cacti                                   ^ MIB OID (numeric)        ^ Radice MIB (textual)           |
 +| cacti/resource/snmp_queries/host_disk.xml      | .1.3.6.1.2.1.25.2.3.1.1  | HOST-RESOURCES-MIB::hrStorage  |
 +| cacti/resource/snmp_queries/net-snmp_disk.xml  | .1.3.6.1.4.1.2021.9.1.1  | UCD-SNMP-MIB::dskTable         |
 +
 +Risulta che la prima forma sia supportata sia su Debian 10 che CentOS 7, mentre la seconda forma non lo è su CentOS. In Cacti, aprendo la schermata del **Device Management**, è possibile verificare nella sezione **Associated Data Queries** quali delle due query sono state attivate per l'host ed eventualmente se hanno dato esito negativo (viene indicato **%%[0 Items, 0 Rows]%%** come risultato della query).
 ===== Cache di valori errati ===== ===== Cache di valori errati =====
  
Line 204: Line 218:
  
 Attenzione a ripristinare i permessi originali dell'archivio rrd. Attenzione a ripristinare i permessi originali dell'archivio rrd.
 +
 +====== Grafico attività disco ======
 +
 +Si può utilizzare il template [[http://docs.cacti.net/usertemplate:data:host_mib:diskio|Disk I/O Usage]], testato sulla **versione 0.8.7g**, sebbene sia dichiarato per la 0.8.7d. Qui una copia dell'archivio: {{diskio087d.tar.gz}}.
 +
 +  - Dall'archivio estrarre il file **''disk_io.xml''** e copiarlo in ''/usr/share/cacti/resource/snmp_queries''.
 +  - Estrarre il file **''cacti087d_data_query_snmp_-_get_disk_io.xml''** e importarlo nell'interfaccia web: //Console// => //Import Templates//.
 +  - Aprire il device (host) interessato e cliccare su //Add Data Query// => //SNMP - Get Disk IO//.
 +  - Aggiungere un grafico per quell'host, indicando il disco o la partizione da monitorare.
  
 ====== Migrazione di Cacti su altro host ====== ====== Migrazione di Cacti su altro host ======
Line 215: Line 238:
   * Effettuare il restore del database sul nuovo server (per le credenziali vedi sopra): <code>mysql -u cacti -p cacti < cacti.dump</code>   * Effettuare il restore del database sul nuovo server (per le credenziali vedi sopra): <code>mysql -u cacti -p cacti < cacti.dump</code>
   * Ripristinare il cronjob sul nuovo host.   * Ripristinare il cronjob sul nuovo host.
 +
 +====== Problema con nsExtendOutput1Line ======
 +
 +Le estensioni SNMP ottenute con il parametro **extend** di **''/etc/snmp/snmpd.conf''** creano qualche problema in Cacti, almeno con la versione 0.8.8a di Debian 7 Wheezy.
 +
 +Quando viene creata il **Data Template** si deve indicare il parametro **OID** che deve essere qualcosa del tipo:
 +
 +<code>
 +NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."pm2.5"
 +</code>
 +
 +Purtroppo la pagina web di Cacti aggiunge dei backslash alle doppie virgolette, quindi il parametro viene memorizzato male nel database. Ecco come cercare le chiavi sbagliate nel database:
 +
 +<code sql>
 +SELECT * FROM data_input_data WHERE value LIKE '%nsExtendOutput1Line%';
 +SELECT local_data_id, arg1 FROM poller_item WHERE arg1 LIKE '%nsExtendOutput1Line%';
 +</code>
 +
 +Questo un esempio di come correggere (modificare ovviamente il valore e gli ID):
 +
 +<code sql>
 +UPDATE data_input_data SET value = 'NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."pm2.5"'
 +    WHERE data_input_field_id = 6 AND data_template_data_id = 178;
 +UPDATE poller_item SET arg1 = 'NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."pm2.5"'
 +    WHERE local_data_id = 103;
 +</code>
 +
 +====== Problema con UTF-8 ======
 +
 +Alcuni caratteri speciali (ad esmempio il simbolo di grado Celsius) non vengono mostrati nei grafici RRD. Secondo questo [[http://bugs.cacti.net/view.php?id=2533|bug report]] si tratta della funzione ''escapeshellarg()'' di PHP invocata senza aver prima invocato un opportuno ''setlocale()''. Come workaround si consiglia di aggiungere tale chiamata di funzione nel file ''/usr/share/cacti/site/lib/auth.php'', ma per una installazione Debian ha più senso aggiungerlo nel file **''/etc/cacti/debian.php''**.
 +
 +====== Percentuale CPU e multi-core ======
 +
 +L'installazione predefinita di Cacti mette a disposizione il template di grafico **ucd/net - CPU Usage**, che si basa sui seguenti OIDs:
 +
 +  * 1.3.6.1.4.1.2021.11.50.0 => **ssCpuRawUser**
 +  * 1.3.6.1.4.1.2021.11.51.0 => **ssCpuRawNice**
 +  * 1.3.6.1.4.1.2021.11.52.0 => **ssCpuRawSystem**
 +
 +Il risultato è abbastanza approssimativo, anzitutto perché mancano alcune metriche (ad esempio **ssCpuRawKernel**, **ssCpuRawInterrupt**, ecc.), ma soprattutto **non tiene conto dei sitemi multiprocessore** o dei processori multicore. In effetti il valore complessivo ottenuto andrebbe diviso per il numero totale di CPU del sistema, altrimenti si ottiene un **valore sovrastimato del carico percentuale**. Vedere in proposito il post **[[https://serverfault.com/questions/441897/how-to-calculate-cpu-based-on-raw-cpu-ticks-in-snmp|How to calculate CPU % based on raw CPU ticks in SNMP]]**.
 +
 +Una soluzione è quella proposta dall'utente **Instigater** nel **[[https://forums.cacti.net/viewtopic.php?p=190739|forum di Cacti]]**, si basa sui seguenti OIDs:
 +
 +  * 1.3.6.1.4.1.2021.11.50.0 => **ssCpuRawUser**
 +  * 1.3.6.1.4.1.2021.11.51.0 => **ssCpuRawNice**
 +  * 1.3.6.1.4.1.2021.11.52.0 => **ssCpuRawSystem**
 +  * 1.3.6.1.4.1.2021.11.53.0 => **ssCpuRawIdle**
 +  * 1.3.6.1.4.1.2021.11.54.0 => **ssCpuRawWait**
 +  * 1.3.6.1.4.1.2021.11.55.0 => **ssCpuRawKernel**
 +  * 1.3.6.1.4.1.2021.11.56.0 => **ssCpuRawInterrupt**
 +  * 1.3.6.1.4.1.2021.11.61.0 => **ssCpuRawSoftIRQ**
 +
 +inoltre sono definite due funzioni CDEFs che si occupano di normalizzare il valore rispetto al numero di CPU:
 +
 +  * **Full ucd/net CPU Usage - Get percentage**
 +  * **Full ucd/net CPU Usage - Total CPU Usage**
 +
 +Il file con il template [[https://forums.cacti.net/download/file.php?id=20704|cacti_graph_template_ucdnet_-_full_cpu_usage.zip]] ha però **un bug**, l'**Item #12** usa la funzione CDEF sbagliata: //Total CPU Usage// invece di //Get percentage//.
 +
 +Il template include le seguenti **due funzioni CDEF**:
 +
 +<file>
 +Full ucd/net CPU Usage - Get percentage
 +cdef=CURRENT_DATA_SOURCE,ALL_DATA_SOURCES_NODUPS,/,100,*
 +
 +Full ucd/net CPU Usage - Total CPU Usage
 +cdef=ALL_DATA_SOURCES_NODUPS,h,-,ALL_DATA_SOURCES_NODUPS,/,100,*
 +</file>
 +
 +La prima calcola la **percentuale di ciascuna grandezza** rispetto alla somma di tutte le altre (somma che include anche //Idle//, quindi ottiene effettivamente una percentuale). La seconda funzione esegue la somma di tutte le grandezze, quindi sottrae l'ottava (contrassegnata dalla lettera **h**, si tratta del tempo //Idle//) e calcola la percentuale rispetto alla somma di tutte. Questo produce la **percentuale totale** dell'uso della CPU. Tutti i calcoli producono una **percentuale corretta rispetto al numero di CPU**.
doc/appunti/linux/sa/cacti.txt · Last modified: 2021/02/26 12:44 by niccolo