doc:appunti:linux:sa:cacti
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
doc:appunti:linux:sa:cacti [2010/08/27 11:37] – niccolo | doc:appunti:linux:sa:cacti [2021/02/26 12:44] (current) – [Grafici dello spazio disco occupato] niccolo | ||
---|---|---|---|
Line 4: | Line 4: | ||
Per eccedere come utente guest basta puntare il browser su **%%http:// | Per eccedere come utente guest basta puntare il browser su **%%http:// | ||
+ | |||
+ | Per resettare la password di admin bisogna collegarsi al database //cacti// ed eseguire: | ||
+ | |||
+ | <code sql> | ||
+ | UPDATE user_auth SET password=md5(' | ||
+ | </ | ||
**ATTENZIONE: | **ATTENZIONE: | ||
Line 21: | Line 27: | ||
Per fortuna è sufficiente impostare la versione 1.2.x in // | Per fortuna è sufficiente impostare la versione 1.2.x in // | ||
+ | ===== PHP memory_limit in Debian Squeeze ===== | ||
+ | |||
+ | Pare che con le impostazioni predefinite del PHP, il poller di Cacti generi continuamente i seguenti errori in syslog (pare non fatali, perché comunque i dati vengono acquisiti): | ||
+ | |||
+ | < | ||
+ | suhosin[11124]: | ||
+ | which is not allowed (attacker ' | ||
+ | </ | ||
+ | |||
+ | Il codice di Cacti cerca di allocare 512 Mb, l' | ||
+ | |||
+ | Bisogna impostare un **'' | ||
+ | |||
+ | < | ||
+ | suhosin[11679]: | ||
+ | the allowed value (attacker ' | ||
+ | suhosin[11682]: | ||
+ | the allowed value (attacker ' | ||
+ | </ | ||
====== Grafico personalizzato per ping ====== | ====== Grafico personalizzato per ping ====== | ||
Line 127: | Line 152: | ||
- Si potrebbe definire un **Data Input Method**, cioè uno script che riceve come parametro (**Input Field**) il nome della partizione da monitorare e restituisce il valore. Lo script potrebbe utilizzare SNMP o altri metodi a piacimento. | - Si potrebbe definire un **Data Input Method**, cioè uno script che riceve come parametro (**Input Field**) il nome della partizione da monitorare e restituisce il valore. Lo script potrebbe utilizzare SNMP o altri metodi a piacimento. | ||
- | La **soluzione migliore** prevista da Cacti è tuttavia diversa, consente di scegliere la partizione da un elenco e sa automaticamente quele Data Template e Graph Template utilizzare. Il tutto si realizza tramite una **Data Query**. Una Data Query è uno di script oppure una interrogazione SNMP che restituisce un elenco di chiavi univoche e le associa ai rispettivi OID automaticamente. | + | La **soluzione migliore** prevista da Cacti è tuttavia diversa, consente di scegliere la partizione da un elenco e automaticamente |
Ad esempio la Data Query **SNMP - Get Mounted Partitions** esegue uno script che determina tutte le partizioni montate su un server SNMP. Internamente utilizza qualcosa di simile a snmpwalk: | Ad esempio la Data Query **SNMP - Get Mounted Partitions** esegue uno script che determina tutte le partizioni montate su un server SNMP. Internamente utilizza qualcosa di simile a snmpwalk: | ||
Line 144: | 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" | ||
+ | |||
+ | 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) | ||
+ | | cacti/ | ||
+ | | cacti/ | ||
+ | |||
+ | 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**, | ||
===== Cache di valori errati ===== | ===== Cache di valori errati ===== | ||
Line 152: | Line 191: | ||
Per calcolare correttamente alcuni valori (ad esempio per convertire lo spazio disco da blocchi a byte) Cacti richiede via SNMP altri parametri, ad esempio lo **'' | Per calcolare correttamente alcuni valori (ad esempio per convertire lo spazio disco da blocchi a byte) Cacti richiede via SNMP altri parametri, ad esempio lo **'' | ||
+ | A partire dalla **versione 0.8.7g** c'è anche lo script rebuild_poller_cache.php che dovrebbe sistemare le cose: | ||
+ | |||
+ | < | ||
+ | cd / | ||
+ | php ./ | ||
+ | </ | ||
===== Modifica parametri archivio RRD ===== | ===== Modifica parametri archivio RRD ===== | ||
Line 173: | Line 218: | ||
Attenzione a ripristinare i permessi originali dell' | Attenzione a ripristinare i permessi originali dell' | ||
+ | |||
+ | ====== Grafico attività disco ====== | ||
+ | |||
+ | Si può utilizzare il template [[http:// | ||
+ | |||
+ | - Dall' | ||
+ | - Estrarre il file **'' | ||
+ | - Aprire il device (host) interessato e cliccare su //Add Data Query// => //SNMP - Get Disk IO//. | ||
+ | - Aggiungere un grafico per quell' | ||
+ | |||
+ | ====== Migrazione di Cacti su altro host ====== | ||
+ | |||
+ | Si vuole migrare l' | ||
+ | |||
+ | * Installare il pacchetto **cacti** sul nuovo host, seguire la procedura di installazione Debian in modo che venga creato il database ed eseguire la procedura di setup via web (questo secondo passaggio non è strettamente necessario, in quanto il restore del database sovrascrive tutte le impostazioni). | ||
+ | * Fermare il cronjob **''/ | ||
+ | * Effettuare il dump del database **cacti** (le credenziali si trovano in ''/ | ||
+ | * Copiare tutti i file in **''/ | ||
+ | * Effettuare il restore del database sul nuovo server (per le credenziali vedi sopra): < | ||
+ | * Ripristinare il cronjob sul nuovo host. | ||
+ | |||
+ | ====== Problema con nsExtendOutput1Line ====== | ||
+ | |||
+ | Le estensioni SNMP ottenute con il parametro **extend** di **''/ | ||
+ | |||
+ | Quando viene creata il **Data Template** si deve indicare il parametro **OID** che deve essere qualcosa del tipo: | ||
+ | |||
+ | < | ||
+ | NET-SNMP-EXTEND-MIB:: | ||
+ | </ | ||
+ | |||
+ | 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 ' | ||
+ | SELECT local_data_id, | ||
+ | </ | ||
+ | |||
+ | Questo un esempio di come correggere (modificare ovviamente il valore e gli ID): | ||
+ | |||
+ | <code sql> | ||
+ | UPDATE data_input_data SET value = ' | ||
+ | WHERE data_input_field_id = 6 AND data_template_data_id = 178; | ||
+ | UPDATE poller_item SET arg1 = ' | ||
+ | WHERE local_data_id = 103; | ||
+ | </ | ||
+ | |||
+ | ====== Problema con UTF-8 ====== | ||
+ | |||
+ | Alcuni caratteri speciali (ad esmempio il simbolo di grado Celsius) non vengono mostrati nei grafici RRD. Secondo questo [[http:// | ||
+ | |||
+ | ====== Percentuale CPU e multi-core ====== | ||
+ | |||
+ | L' | ||
+ | |||
+ | * 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, | ||
+ | |||
+ | Una soluzione è quella proposta dall' | ||
+ | |||
+ | * 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:// | ||
+ | |||
+ | Il template include le seguenti **due funzioni CDEF**: | ||
+ | |||
+ | < | ||
+ | Full ucd/net CPU Usage - Get percentage | ||
+ | cdef=CURRENT_DATA_SOURCE, | ||
+ | |||
+ | Full ucd/net CPU Usage - Total CPU Usage | ||
+ | cdef=ALL_DATA_SOURCES_NODUPS, | ||
+ | </ | ||
+ | |||
+ | 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' |
doc/appunti/linux/sa/cacti.1282901826.txt.gz · Last modified: 2010/08/27 11:37 by niccolo