Le but de ce tutorial est de faire remonter au serveur Centreon/Nagios les traps des OXE Alcatel ainsi que l’état des cartes, état des T2…
La méthode n’est peut être pas très académique mais elle marche parfaitement.
Elle est en prod et permet la supervision de 4 appliances Alcatel R9 et d’environ 60 alvéoles (cristal et IPMG) pour environ 5000 usagers.
Ce tutoriel a été réalisé par :
Rôle | Nom |
---|---|
Rédacteur | Pascal MARTIN |
2 solutions pour activer le SNMP sur l’autocom :
Dans la partie Configuration SNMP/Global configuration : nous activons SNMP et paramétrons sa communauté et sa version.
Dans la partie Configuration SNMP/Global configuration : nous ajoutons l’adresse IP du serveur Nagios, sa communauté et le type de trap à Etendu.
Attention aux filtres d’évènements éventuels dans la partie Applications/Gestion des Incidents
Considérons que snmpd est correctement configuré sur le serveur.
Que l’on appliquera à un hôte ou groupe d’hôte.
Très important ⇒ Dans l’onglet Traitement des données on active le gestionnaire d’évènements vers une commande que l’on décrire ensuite.
Puis créer le script gestion_trap_oxe dans la directory nagios/libexec qui permettra d’écrire dans nagios.cmd (fichier de commande externe de Nagios)
#! /usr/bin/perl -w ################################################################### # Recuperation des trap snmp venant des PabX OXE R9.0 # # # # # # ################################################################### # #################################################################### # # Script init # # Arguments: # $1 = host_name (Short name of host that the service is # associated with) # $2 = svc_description (Description of the service) # $3 = state_string (A string representing the status of # the given service - "OK", "WARNING", "CRITICAL" # or "UNKNOWN") # $4 = plugin_output (A text string that should be used # as the plugin output for the service checks) # my $host = $ARGV[0]; my $output = $ARGV[1]; my @tab = "a"; my $states = "0"; my $svc_dest = ""; my $commandfile = '/usr/local/nagios/var/rw/nagios.cmd'; my $date=`date`; @tab = split /\ /, $output; if ($tab[13] =~ /^[0-9]{4}/) { my $incident = $tab[18]; SWITCH: { $incident == "1125" && do { $states = "0"; $svc_dest = "OXE_login"; $desc_alarm ="Login sur le pabx par $tab[22]" . " $date"; print "\$var = 1\n"; last SWITCH; }; $incident == "311" && do { $states = "1"; $svc_dest = "OXE_T2_alv_$tab[6]"; $desc_alarm ="$host : Etablissement Niveau 2 T2 ACT: $tab[6] Carte: $tab[8]" . " $date"; last SWITCH; }; $incident == "310" && do { $states = "2"; $svc_dest = "OXE_T2_alv_$tab[6]"; $desc_alarm ="$host : Perte acces Niveau 2 T2 ACT: $tab[6] Carte: $tab[8]" . " $date"; last SWITCH; }; $incident == "1025" && do { print "\$var = 2\n"; last SWITCH; }; $incident == "1026" && do { print "\$var = 3\n"; last SWITCH; }; print "\$var is not equal with 1 or 2 or 3\n"; } } elsif ($tab[9] =~ /^[0-9]{4}/) { my $incident = $tab[14]; SWITCH: { $incident == "2019" && do { $states = "0"; $svc_dest = "OXE_alv_$tab[6]"; $desc_alarm ="$host : mise en service de ACT: $tab[6] Carte: $tab[8] $output" . " $date"; last SWITCH; }; $incident == "2042" && do { $states = "2"; $svc_dest = "OXE_alv_$tab[6]"; $desc_alarm ="$host : perte de ACT: $tab[6] carte:$tab[8] $output" . " $date"; last SWITCH; }; print "\$var is not equal with 1 or 2 or 3\n"; } } else { die ("quit"); $states = "1"; $svc_dest = "OXE_alarme_inconnue"; $desc_alarm ="$output"; } open(ECRITURE,">$commandfile") || die ("erreur d'ouverture de sortie.txt"); print ECRITURE "[%lu] PROCESS_SERVICE_CHECK_RESULT;$host;$svc_dest;$states;$desc_alarm\n"; print ECRITURE "[%lu] PROCESS_SERVICE_CHECK_RESULT;$host;Trap_OXE;0;OK"; close(ECRITURE);
Ce scipt va donc déclencher via, une commande externe Nagios, le statut warning sur les services passif (dans script : $svc_dest) OXE_alv_x …