Déc
17
2012

Cacti– Ajout d’un host et ses graphs en ligne de commande


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

Articles similaires

Au sujet de l'auteur: Olivier Legras

Auteur de ce Blog, je partage quelques unes de mes notes que je juge utile à vous comme à moi. Je suis très heureux de voir que mon blog a de plus en plus d'affluence. Merci à vous!

Laissez un commentaire