Templates ZFS pour cacti
Posted by NiTRo | Filed under Performance, ZFS
Nous avons enfin terminé le fignolage des tous les graphs cacti dont nous nous servons pour la supervision de nos appliances Nexenta, il était donc temps d’en faire profiter la communauté !
Tout comme pour notre post sur le monitoring smart, le tout se fait uniquement dans le fichier snmpd.conf sans script annexe. Pour rappel, l’édition de la config snmp sous nexenta se fait via la nmc avec la commande suivante :
setup network service snmp-agent edit-settings snmpd.conf
Pour chaque graphique, il faudra ajouter une ou plusieurs lignes à la config snmp et importer le template dans cacti.
extend .1.3.6.1.4.1.2021.85 arc_meta_max /bin/bash -c "echo ::arc | mdb -k| grep arc_meta_max|tr -cd '[:digit:]'" extend .1.3.6.1.4.1.2021.85 arc_meta_used /bin/bash -c "echo ::arc | mdb -k| grep arc_meta_used|tr -cd '[:digit:]'" extend .1.3.6.1.4.1.2021.85 arc_size /bin/bash -c "echo ::arc | mdb -k| grep -w size|tr -cd '[:digit:]'" extend .1.3.6.1.4.1.2021.85 arc_meta_limit /bin/bash -c "echo ::arc | mdb -k| grep arc_meta_limit|tr -cd '[:digit:]'" extend .1.3.6.1.4.1.2021.85 arc_meta_c_max /bin/bash -c "echo ::arc | mdb -k| grep c_max|tr -cd '[:digit:]'"
Graph template à importer dans cacti : ZFS – ARC Usage
extend .1.3.6.1.4.1.2021.89 arc_hits /bin/bash -c "kstat -p ::arcstats:hits| cut -s -f 2" extend .1.3.6.1.4.1.2021.89 arc_misses /bin/bash -c "kstat -p ::arcstats:misses| cut -s -f 2"
Graph template à importer dans cacti : ZFS – ARC Stats
extend .1.3.6.1.4.1.2021.89 arc_l2_hits /bin/bash -c "kstat -p ::arcstats:l2_hits| cut -s -f 2" extend .1.3.6.1.4.1.2021.89 arc_l2_misses /bin/bash -c "kstat -p ::arcstats:l2_misses| cut -s -f 2"
Graph template à importer dans cacti : ZFS – L2ARC Stats
extend .1.3.6.1.4.1.2021.90 vopstats_zfs_nread /bin/bash -c "kstat -p ::vopstats_zfs:nread | cut -s -f 2" extend .1.3.6.1.4.1.2021.90 vopstats_zfs_nwrite /bin/bash -c "kstat -p ::vopstats_zfs:nwrite | cut -s -f 2
Graph template à importer dans cacti : ZFS – VFS IOPS
extend .1.3.6.1.4.1.2021.90 vopstats_zfs_read_bytes /bin/bash -c "kstat -p ::vopstats_zfs:read_bytes | cut -s -f 2" extend .1.3.6.1.4.1.2021.90 vopstats_zfs_write_bytes /bin/bash -c "kstat -p ::vopstats_zfs:write_bytes | cut -s -f 2"
Graph template à importer dans cacti : ZFS – VFS Throughput
extend .1.3.6.1.4.1.2021.88 zpool_name /bin/bash -c "zpool list -H -o name" extend .1.3.6.1.4.1.2021.88 zpool_snap /bin/bash -c "zpool list -Ho name|for zpool in `xargs`;do zfs get -rHp -o value usedbysnapshots $zpool|awk -F: '{sum+=$1} END{print sum}';done" extend .1.3.6.1.4.1.2021.88 zpool_used /bin/bash -c "zpool list -Ho name|xargs zfs get -Hp -o value used" extend .1.3.6.1.4.1.2021.88 zpool_data_used /bin/bash -c "zpool list -Ho name|for zpool in `xargs`;do snap=`zfs get -rHp -o value usedbysnapshots $zpool|awk -F: '{sum+=$1} END{print sum}'`;pool=`zfs get -Hp -o value used $zpool`; echo $pool $snap|awk '{print (\$1-\$2);}';done" extend .1.3.6.1.4.1.2021.88 zpool_available /bin/bash -c "zpool list -Ho name|xargs zfs get -Hp -o value available" extend .1.3.6.1.4.1.2021.88 zpool_capacity /bin/bash -c "zpool list -H -o capacity|cut -d % -f 1"
Script à copier dans le répertoire ”/resource/snmp_queries/” : ZFS – zpool usage
Graph template à importer dans cacti : ZFS – zpool usage
Ce dernier graph est similaire à celui que nous avions posté il y a quelques temps mais permet de distinguer la consommation des data de celle des snapshot.
extend .1.3.6.1.4.1.2021.84 busy /bin/bash -c "iostat -xrn 1 3|grep -E 'c2t'|grep -vE c2t15d0|tail -\$((\$(paste -d= <(iostat -x | tail -n +3 | awk '{print \$1}') <(iostat -nx | tail -n +3 | awk '{print \"/dev/dsk/\"\$11}')|grep -E 'c2t'|grep -vE c2t15d0|wc -l)*2))| awk -F',' 'BEGIN { n=0; sum=0; } { n++; sum += \$(NF-1); } END { printf (\"%.2f\",sum / n); }'|awk '{ printf (\"%d\", (\$1 > 100) ? 0 : \$1); }'"
Graph template à importer dans cacti : ZFS – disk busy
Ce graph est expérimentale et spécifique dans la mesure où il représente la charge estimée des disk filtrés par les differents grep de la commande, à ajuster en fonction de la cible. Le scénario cible idéal est un système avec un seul zpool (mis à part celui du système). Dans notre exemple, nous avons limité à tous les disques dont les noms commencent par “c2t” et exclu “c2t15d0″ (hot spare dans ce cas).
Tags: cacti
August 12th, 2012 at 19:19
Il manque maintenant juste un joli tutorial sur comment monter un filer ZFS de A à Z avec les tips & tricks qui vont bien pour son homelab !
August 12th, 2012 at 21:06
on va faire ça à la sortie de nexenta 4.0 ou freenas 8.3
October 2nd, 2012 at 16:09
Super !
J’ai juste du changer le CF TYPE du template “ZFS – VFS IOPS” de LAST à AVERAGE pour ne plus avoir d’erreurs, et ça roule !
A coté de ça je note toutes les modifs que je fais à mon nexenta (en VM pour le moment en attendant un HP N40L qui devrait arriver très prochainement:) ):
- ajout iozone
- ajout lcdproc (pour mettre un LCD dans l’emplacement 5″1/4, juste devant un disque pour l’OS)
- monitoring cacti (zfs + SMART)
Autre chose à rajouter que j’aurais oublié ?
October 2nd, 2012 at 16:21
J’oubliais.
Dans le template “ZFS – Disk Busy” il y a un problème dans le XML: la 6ème ligne en partant du bas (Invalid round robin archive.) empêche l’import du template.
Voili.
October 4th, 2012 at 10:24
L’xml est corrigé, merci pour le feedback.
c’est une bonne idée le lcdproc, je vais peut etre resortir mon vieux crystalfontz
October 8th, 2012 at 9:46
LCDProc done (curses et CfontzPacket) :
+——————–+
¦## SYSTEM UPTIME ##+¦
¦ nexenta01 ¦
¦ 2 days 02:05:24 ¦
¦ SunOS 5.11 ¦
+——————–+
Reste à porter les commandes utilisées dans l’agent SNMP pour cacti vers un joli client perl pour LCDProc
May 27th, 2013 at 11:45
Hi,
Can’t get the disk busy script to work.
Can you post a snippet of the sample output? So i can try to recreate?
Thanks!
May 28th, 2013 at 7:53
Hi peter, the output is an integer between 0 and 100 that would represent the zpool load so you have to filter the vdevs zpool members only.
July 6th, 2014 at 11:22
getting partial results (cacti 0.88), what am i missing?
07/06/2014 06:04:44 PM – CMDPHP: Poller[0] Host[20] DS[181] WARNING: Result from SNMP not valid. Partial Result: U
07/06/2014 06:04:44 PM – CMDPHP: Poller[0] Host[20] DS[181] SNMP: v2: 192.168.1.199, dsname: zfs_arc_misses, oid: UCD-SNMP-MIB::ucdavis.89.3.1.1.10.97.114.99.95.109.105.115.115.101.115, output: U
July 6th, 2014 at 13:01
what do you get with snmpwalk?
October 30th, 2014 at 5:23
OS: Solaris 11.2
zpool_sanp and zpool_data_used return nothing, I have to put them in bash scripts. but zpool_data_used reports:
awk: syntax error near line 1
awk: illegal statement near line 1
awk: syntax error near line 1
awk: illegal statement near line 1
any suggestion?
sorry for typing in English.
October 30th, 2014 at 5:24
Hi,
I try using gawk and remove backslash before $1, and it works.
October 30th, 2014 at 15:43
Thanks for the feed back peter
May 18th, 2015 at 16:47
[...] [...]
February 24th, 2017 at 11:11
Hi,
I tried your scripts, they are good, now only one problem, I can’t see IOPS graph.
the error message is :
ERROR: the RRD does not contain an RRA matching the chosen CF
after googling, I change the IOPS template, change “(zfs_vfs_io_reads): Reads:” and “(zfs_vfs_io_writes): Writes:” from LAST to AVERAGE, and I get the graph.
February 18th, 2019 at 9:56
thanks for sharing