Avec un compte admin, accédez à l’interface web de cacti, puis allez dans Console.
Le script d’exemple
On va simplement créer un petit script qui va pinguer un hôte :
#!/bin/sh
HOST=10.8.0.14
ping -q -W 1 -c 1 $HOST > /dev/null 2>&1
echo $?
Ce script va pinguer 10.8.0.14 avec un seul paquet, avec un timeout de 1s. Les sorties d’erreur et normales sont supprimées (1 vers null, 2 vers 1). Le script renvoie 0, 1 ou 2.
Configurer la source d’information
Data Input Methods
Dans le pavé "Collection Methods", cliquez sur "Data Input Methods". Vous voyez alors listé toutes les methodes d’entrée de données. Ajoutez en une en cliquant sur le "Add" en haut à droite du tableau
Name : checkHost
Input Type : Script/Command
Input String : /home/cacti/scripts/checkHost.sh
"/home/cacti/scripts/checkHost.sh" est le script qui va générer les valeurs à grapher. Il faut alors ajouter un "Output Field" : cliquez sur "Add" dans le tableau vide des "Output Fields" et entrez :
Field [Output] : is_up
Friendly Name : Is the host up ?
Update RRD File : [coché]
Validez cette configuration en cliquant sur "Create" puis "Save".
Data Sources :
Dans "Management", cliquez sur "Data Sources" puis sur "Add".
- Data Template Selection -
Selected Data Template : <None>
Host : <none>
puis,
- Data Source -
Name : check_host_data_source
Data Source Path : (vide)
Data Input Method : checkHost
Associated RRA's : (sélectionner tout)
Step : 300
Data Source Active : (coché)
- Data Source Item -
Internal Data Source Name : check_host_rrd
Minimum Value : 0
Maximum Value : 2
Data Source Type : GAUGE
Heartbeat : 600
Cliquez sur "Create". Pour vérifier, vous pouvez activer "Turn On Data Source Debug Mode" pour voir une éventuelle sortie d’erreur. Cliquez ensuite sur "Save"
Configurer l’affichage des données
Graph Management
Dans le pavé "Management", cliquez sur "Graph Management" et Add. Vous ne sélectionnez rien et appuyez sur Create :
- Graph Template Selection -
Selected Graph Template : <none>
Host : <none>
Vous arrivez sur une deuxième page :
- Graph Template Selection -
Selected Graph Template : <none>
Host : <none>
- Graph Configuration -
Title : check_host_graph_conf
Image Format : PNG
Height : 120
Width : 500
(...) valeurs par défaut
Vertical Label : host ping
Validez ("Create"). Si vous avez activé le mode debug, on vous informe : "RRDTool Says : ERROR : can’t make a graph without contents". On va donc ajouter un élément à ajouter. Cliquez sur "Add" de "Graph Items" et entrez :
-Graph Items -
Data Source : No Host- Check host data source (check_host_rdd)
Color : FF0000
Graph Item Type : LINE2
(...) valeurs par défaut
Validez. Si tout va bien, vous voyez "RRDTool Says : OK" à côté de votre graph pour l’instant vide. Cliquez sur "Save".
Ajout du graph
Notre graph est prêt à l’emploi, il faut juste le rendre disponible avec les autres graphs.
Dans le pavé "Management", sélectionnez "Graph Trees" et "Add". Entrez un nom pour un nouvel arbre de graph personnels, puis ajoutez un graph à cet arbre en cliquant sur "Add" de la liste des "Tree Items".
Entrez les valeurs :
Parent Item : [root]
Tree Item Type : Graph
Graph : check_host_graph_conf
Round Robin Archive : Daily (5 Minute Average)
Hop ! On voit un début de graph au bout de quelques minutes :

Déboguer
Il pourra être utile d’utiliser « rrdtool » pour regarder ses fichiers de stats :
$ rrdtool info /usr/share/cacti/site/rra/check_host_rrd_16.rrd
filename = "testids_17.rrd"
rrd_version = "0001"
step = 300
last_update = 1194435902
ds[testids].type = "GAUGE"
ds[testids].minimal_heartbeat = 600
ds[testids].min = 0.0000000000e+00
ds[testids].max = 2.0000000000e+00
ds[testids].last_ds = "UNKN"
ds[testids].value = 0.0000000000e+00
(...)
On pourra aussi l’utiliser pour changer les valeurs de la source.
$ rrdtool tune check_host_rrd_16.rrd --heartbeat check_host_rrd:600
liens utiles
Pour déboguer les NaN, consultez la méthode de déboguage des NaN dans Cacti (en)