11 KiB
collectd
USE collectd Using database collectd SHOW MEASUREMENTS name: measurements name
cpu_value disk_value load_longterm load_midterm load_shortterm snmp_rx snmp_tx tcpconns_value
SELECT * FROM snmp_rx,snmp_tx WHERE time > now()-1h LIMIT 5 name: snmp_rx time host type type_instance value
1527610980434511472 Switch if_packets machine A 4241766500 1527611039463879536 Switch if_octets machine B 9414616763688 1527611039463903506 Switch if_octets machine C 59780133577 1527611039463953500 Switch if_octets machine D 109232798624 1527611039556165882 Switch if_packets machine B 7925165702
name: snmp_tx time host type type_instance value
1527610980434511472 Switch if_packets machine A 11434830808 1527611039463879536 Switch if_octets machine B 174654547558 1527611039463903506 Switch if_octets machine C 135392659943 1527611039463953500 Switch if_octets machine D 9179809568001 1527611039556165882 Switch if_packets machine B 396998647
### Supprimer des mesures
On peut vouloir supprimer une mesure particulière, par exemple dans le cas où une machine n'est plus sur le switch :
SHOW SERIES FROM snmp_rx,snmp_tx WHERE type_instance='machine A' key
snmp_rx,host=Switch,type=if_octets,type_instance=machine\ A snmp_rx,host=Switch,type=if_packets,type_instance=machine\ A snmp_tx,host=Switch,type=if_octets,type_instance=machine\ A snmp_tx,host=Switch,type=if_packets,type_instance=machine\ A
DROP SERIES FROM snmp_rx,snmp_tx WHERE type_instance='machine A'
### Rétention
Par défaut, les données sont gardées sur une durée illimitée, et l'intervalle de vérification de la rétention est de 30 minutes.
Si on ne souhaite pas utiliser la rétention, on peut la désactiver :
[retention]
Determines whether retention policy enforcement enabled.
enabled = false
Si au contraire, on veut avoir une rétention d'un an, il faut modifier la politique :
influx
use collectd SHOW RETENTION POLICIES name duration shardGroupDuration replicaN default
autogen 0s 168h0m0s 1 true
ALTER RETENTION POLICY "autogen" ON "collectd" DURATION 52w REPLICATION 1 DEFAULT SHOW RETENTION POLICIES name duration shardGroupDuration replicaN default
autogen 8736h0m0s 168h0m0s 1 true
Et on peut augmenter l'intervalle de vérification de la rétention :
[retention]
Determines whether retention policy enforcement enabled.
enabled = true
The interval of time when retention policy enforcement checks run.
check-interval = "24h"
### Monitoring
Le [check NRPE](HowtoIcinga) suivant peut être mis en place :
command[check_influxdb]=/usr/lib/nagios/plugins/check_http -I 127.0.0.1 -u /health -p 8086 -r '"status":"pass"'
### Continuous Query
Les "continuous queries" (ou requêtes continues) sont des requêtes qui sont exécutées automatiquement et périodiquement sur les données en temps réel, pour ensuite en stocker le résultat.
Par exemple, pour créer des mesures "switch_bps_tx" et "switch_bps_rx" avec le champ "bitspersec" où est converti le nombre total d'octets transmis par une interface et récupéré toutes les minutes, en une mesure en bits par secondes, toutes les minutes également :
influx
CREATE CONTINUOUS QUERY "Interface-Traffic-Conversion_TX" ON collectd BEGIN SELECT non_negative_derivative(mean(value), 1s) * 8 AS bitspersec INTO collectd.autogen.switch_bps_tx FROM collectd.autogen.snmp_tx WHERE type = 'if_octets' GROUP BY host, type_instance, time(1m) END CREATE CONTINUOUS QUERY "Interface-Traffic-Conversion_RX" ON collectd BEGIN SELECT non_negative_derivative(mean(value), 1s) * 8 AS bitspersec INTO collectd.autogen.switch_bps_rx FROM collectd.autogen.snmp_rx WHERE type = 'if_octets' GROUP BY host, type_instance, time(1m) END
SHOW CONTINUOUS QUERIES name: collectd name query
Interface-Traffic-Conversion_TX CREATE CONTINUOUS QUERY "Interface-Traffic-Conversion_TX" ON collectd BEGIN SELECT non_negative_derivative(mean(value), 1s) * 8 AS bitspersec INTO collectd.autogen.switch_bps_tx FROM collectd.autogen.snmp_tx WHERE type = 'if_octets' GROUP BY host, type_instance, time(1m) END Interface-Traffic-Conversion_RX CREATE CONTINUOUS QUERY "Interface-Traffic-Conversion_RX" ON collectd BEGIN SELECT non_negative_derivative(mean(value), 1s) * 8 AS bitspersec INTO collectd.autogen.switch_bps_rx FROM collectd.autogen.snmp_rx WHERE type = 'if_octets' GROUP BY host, type_instance, time(1m) END