Cacti possède un bon nombre de commande permettant de l’administrer. Ces commandes se situent dans le répertoire “cli” de votre installation.
Dans cet article, je vais vous montrer comment ajouter un Hosts et les graphs qui lui sont associés à l’aide de ces commandes.
Pour cela, placez-vous dans votre répertoire “cli”. Pour moi : “/var/www/html/cli”
Création du Host :
Dans cette section, nous allons utiliser la commande “add_device.php”.
Nous voulons ajouter un routeur à Cacti. Voici les caractéristiques de ce routeur :
IP d’admin : 192.168.0.1
Communauté SNMP : public
Nom : Routeur-1
Template d’hôte Cacti : Cisco Router
Pour la commande “add_device.php”, nous avons besoin de l’id du host template. Pour le connaitre, il faut exécuter cette commande :
# php -q add_device.php –list-host-templates
Valid Host Templates: (id, name)
0 None
1 Generic SNMP-enabled Host
3 ucd/net SNMP Host
4 Karlnet Wireless Bridge
5 Cisco Router
6 Netware 4/5 Server
7 Windows 2000/XP Host
8 Local Linux Machine
9 VMware ESX server
10 X MySQL Server HT
11 Windows 2k3
12 Brocade FC Switch Interfaces/Sensors
13 Site web
Nous pouvons voir que l’id du template “Cisco Router” est 5.
A présent, vous pouvez ajouter votre Hosts comme ceci :
# php -q add_device.php –description="Routeur-1" –ip="192.168.0.1" –template=5 –community="public"
Création des graphs pour un host
Maintenant, nous voulons créer un graph pour connaitre la charge de chaque interface active du routeur. Pour cela, nous avons besoin de connaitre :
- Id du Host
- Le modèle de graph
- Le modèle de “Data Query”
- Le type de données voulu
Récupérer l’identifiant du Host
Lancer la commande :
# php -q add_graphs.php --list-hosts
139 192.168.0.1 5 Router-1
L’identifiant du host est donc 139.
Récupérer le modèle de Graph :
# php -q add_graphs.php –list-graph-templates
Known Graph Templates:(id, name)2 Interface – Traffic (bits/sec)
3 ucd/net – Available Disk Space
Nous voulons que tous les graphs se basent sur le modèle “Interface - Traffic (bits/sec)”. Donc l’identifiant sera 2.
Récupérer le modèle de “Data Query”
# php -q add_graphs.php –list-snmp-queries
Known SNMP Queries:(id, name)1 SNMP – Interface Statistics
2 ucd/net - Get Monitored Partitions
3 Karlnet – Wireless Bridge Statistics
4 Netware – Get Available Volumes
6 Unix – Get Mounted Partitions
7 Netware – Get Processor Information
8 SNMP – Get Mounted Partitions
9 SNMP – Get Processor Information
10 Win Services
11 VMware ESX – Get VM CPU usage
12 VMware ESX – Get VM NIC statistics
13 VMware ESX – Get VM disk statistics
14 VMware ESX – Get VM memory usage
15 ucd/net – Device I/O
16 SNMP – Running Processes
17 Brocade FC Switch Interfaces
18 Brocade FC Switch Sensors
Etant donné que nous voulons la charge sur chaque interface active du router, nous utiliserons la requête SNMP : “SNMP – Interface Statistics”. Soit l’identifiant 1.
Récupérer le type de données voulu :
# php -q add_graphs.php –snmp-query-id=1 –list-query-types
Known SNMP Query Types: (id, name)
2 In/Out Errors/Discarded Packets
3 In/Out Non-Unicast Packets
4 In/Out Unicast Packets
9 In/Out Bytes (64-bit Counters)
13 In/Out Bits
14 In/Out Bits (64-bit Counters)
16 In/Out Bytes
20 In/Out Bits with 95th Percentile
21 In/Out Bits with Total Bandwidth
22 In/Out Bytes with Total Bandwidth
Nous voulons la charge en bits/s. Donc l’identifiant du type de données sera 13.
Nous pouvons maintenant créer les graphs pour chaque interface de notre routeur :
php -q add_graphs.php –host-id=139 –graph-type=ds –graph-template-id=2 –snmp-query-id=1 –snmp-query-type-id=13 –snmp-field=ifOperStatus –snmp-value=Up
Pour ne pas créer les graphs pour les interfaces inutilisées, nous avons ajouter les arguments : –snmp-field=ifOperStatus –snmp-value=Up. De ce fait, la commande creera des graphs seulement pour les interfaces ayant la valeur “UP” pour le champ snmp “ifOperStatus”.
Vous pouvez lister les champs Snmp utilisable par cacti à l’aide de la commande :
# php -q add_graphs.php –host-id=132 –list-snmp-fields
Known SNMP Fields for host-id 132: (name)ifAlias
ifDescr
ifHwAddr
ifIndex
ifIP
ifName
ifOperStatus
ifSpeed
ifType
Ajout du host dans l’arborescence de graph
On liste les arborescences existantes :
# php -q add_tree.php –list-trees
Known Trees:id sort method name
2 Alphabetic Ordering PARIS
On ajoute le host dans l’arborescence :
php -q add_tree.php –type=node –node-type=host –tree-id=2 –host-id=139
Voilà, vous pouvez visualiser les graphs de votre hosts dans l’interface de Cacti.
Conclusion
Je pense que vous l’avez bien compris. Les commandes cli de Cacti vont nous permettre de gagner un temps considérable dans le cas d’ajout en masse d’un même type d’hosts. Il nous faudra un fichier de type IP|HOSTNAME et une boucle pour réaliser en quelques minutes ce qui nous prendrais des heures par l’interface graphique.
Pour plus d’infos : http://www.cacti.net/downloads/docs/html/scripts.html