Activer les Traps SNMP
Descriptionâ
Les traps SNMP sont des informations envoyées en utilisant le protocole SNMP depuis un équipement supervisé vers un serveur de supervision (satellite). Ces informations contiennent plusieurs attributs dont :
- Adresse de lâĂ©quipement qui a envoyĂ© lâinformation.
- LâOID racine (Object Identifier) correspond Ă lâidentifiant du message reçu.
- Le message envoyé au travers du trap SNMP qui correspond à un ensemble de paramÚtres (1 à N).
Afin de pouvoir interprĂ©ter lâĂ©vĂšnement reçu, le serveur de supervision doit possĂ©der dans sa configuration le nĂ©cessaire pour traduire lâĂ©vĂšnement. Pour cela, il doit disposer dâune base de donnĂ©es contenant les OID ainsi que leurs descriptions, câest ce quâon appelle les fichiers MIB. Il existe deux types de MIB :
- Les MIB standards qui utilisent des OID standardisés et qui sont implémentés par de nombreux constructeurs sur leurs équipements.
- Les MIB constructeurs qui sont propres Ă chacun et souvent Ă chaque modĂšle dâĂ©quipement.
Les MIB constructeurs sont Ă rĂ©cupĂ©rer auprĂšs des constructeurs de matĂ©riels. Centreon permet de stocker la dĂ©finition des traps SNMP dans sa base de donnĂ©es MariaDB. Les traps peuvent ensuite ĂȘtre reliĂ©s Ă des services passifs via lâonglet Relations de la dĂ©finition dâun service.
Architectureâ
Processus de traitement dâun trap par le serveur centralâ
Voici le processus de traitement dâun trap SNMP :
- snmptrapd est le service permettant de récupérer les traps SNMP envoyés par les équipements (par défaut il écoute sur le port UDP 162).
- Une fois le trap SNMP reçu, il est envoyĂ© au script âcentreontrapdforwardâ qui va Ă©crire les informations reçues dans un dossier tampon (par dĂ©faut : /var/spool/centreontrapd/).
- Le service âcentreontrapdâ lit les informations reçues dans le dossier tampon et interprĂšte les diffĂ©rents traps reçus en vĂ©rifiant dans la base de donnĂ©es Centreon les actions Ă entreprendre pour traiter ces Ă©vĂšnements.
- Le service âcentreontrapdâ transmet les informations Ă lâordonnanceur ou au service âgorgonedâ (pour transmettre les informations Ă un ordonnanceur distant) qui se charge de modifier le statut et les informations associĂ©es au service auquel est liĂ© le trap SNMP.
Processus de traitement dâun trap par un collecteurâ
Afin de garder une copie de la configuration des traps SNMP sur chaque serveur satellite, une base de données SQLite est chargée de garder en cache les informations de traps contenues dans la base de données MariaDB. Cette base de données SQLite est automatiquement générée par le serveur Central.
Voici le processus de traitement dâun trap SNMP :
- snmptrapd est le service permettant de récupérer les traps SNMP envoyées par les équipements (par défaut il écoute sur le port UDP 162).
- Une fois le trap SNMP reçu, il est envoyĂ© au script âcentreontrapdforwardâ qui va Ă©crire les informations reçues dans un dossier tampon (par dĂ©faut : /var/spool/centreontrapd/).
- Le service âcentreontrapdâ lit les informations reçues dans le dossier tampon et interprĂšte les diffĂ©rentes traps reçus en vĂ©rifiant dans la base de donnĂ©es SQLite les actions Ă entreprendre pour traiter les traps reçus.
- Le service âcentreontrapdâ transmet les informations Ă lâordonnanceur qui se charge de modifier le statut et les informations associĂ©es au service dont est liĂ© le trap SNMP.
Le processus Centreon Gorgone Ă la charge, comme pour lâexport de configuration de la supervision, de copier la base SQLite sur le collecteur distant..
Ordre de rĂ©alisation des actions par le processus centreontrapdâ
Voici lâordre des actions rĂ©alisĂ© par le processus centreontrapd :
Configuration des servicesâ
Snmptrapdâ
Afin dâappeler le script âcentreontrapdfowardâ, le fichier /etc/snmp/snmptrapd.conf doit contenir les lignes suivantes :
disableAuthorization yes
traphandle default su -l centreon -c "/usr/share/centreon/bin/centreontrapdforward"
Vous pouvez optimiser les performances de snmptrapd en utilisant les options suivantes :
- -On nâessaye pas de transformer les OIDs
- -t ne log pas les traps au serveur syslog
- -n nâessaye pas de transformer les adresses IP en nom dâhĂŽtes
Ces options peuvent ĂȘtre modifiĂ©es dans le fichier /etc/sysconfig/snmptrapd:
OPTIONS="-On -d -t -n -p /var/run/snmptrapd.pid"
centreontrapdforwardâ
Pour modifier le dossier tampon vers lequel les informations seront écrites, modifiez le fichier de configuration /etc/centreon/centreontrapd.pm :
our %centreontrapd_config = (
spool_directory => '/var/spool/centreontrapd/',
);
1;
Vous pouvez également mapper le dossier dans le cache en mémoire vive, en ajoutant la ligne suivante dans le fichier /etc/fstab :
tmpfs /var/spool/centreontrapd tmpfs defaults,size=512m 0 0
centreontrapdâ
Deux fichiers de configuration existent pour Centreontrapd :
- /etc/centreon/conf.pm contient les informations de connexion à la base de données MariaDB
- /etc/centreon/centreontrapd.pm contient la configuration du service centreontrapd
Configuration du serviceâ
Au sein du fichier /etc/centreon/centreontrapd.pm il est conseillé de modifier uniquement trois paramÚtres (si nécessaire) :
- Si lâoption mode est dĂ©finie Ă 1 alors centreontrapd fonctionne sur un serveur satellite, sinon il fonctionne sur un serveur central (Centreon).
- Lâoption centreon_user permet de modifier lâutilisateur qui exĂ©cute les actions.
- Lâoption spool_directory permet de modifier le dossier tampon Ă lire (si vous lâavez modifiĂ© dans le fichier de configuration de âcentreontrapdforwardâ).
Voici un exemple de configuration possible du fichier /etc/centreon/centreontrapd.pm (le fichier de configuration peut ĂȘtre modifiĂ©e avec â-config-extra = xxxâ) :
our %centreontrapd_config = (
# Time in seconds before killing not gently sub process
timeout_end => 30,
spool_directory => "/var/spool/centreontrapd/",
# Delay between spool directory check new files
sleep => 2,
# 1 = use the time that the trap was processed by centreontrapdforward
use_trap_time => 1,
net_snmp_perl_enable => 1,
mibs_environment => '',
remove_backslash_from_quotes => 1,
dns_enable => 0,
# Separator for arguments substitution
separator => ' ',
strip_domain => 0,
strip_domain_list => [],
duplicate_trap_window => 1,
date_format => "",
time_format => "",
date_time_format => "",
# Time in seconds before cache reload
cache_unknown_traps_retention => 600,
# 0 = central, 1 = poller
mode => 0,
cmd_timeout => 10,
centreon_user => "centreon",
# 0 => skip if MariaDB error | 1 => don't skip (block) if MariaDB error (and keep order)
policy_trap => 1,
# Log DB
log_trap_db => 0,
log_transaction_request_max => 500,
log_transaction_timeout => 10,
log_purge_time => 600
);
1;
Configuration de la connexion Ă la base de donnĂ©esâ
Sur un serveur Centreon central, éditer le fichier /etc/centreon/conf.pm :
$centreon_config = {
VarLib => "/var/lib/centreon",
CentreonDir => "/usr/share/centreon/",
"centreon_db" => "centreon",
"centstorage_db" => "centreon_storage",
"db_host" => "localhost:3306",
"db_user" => "centreon",
"db_passwd" => "centreon"
};
1;
Sur un collecteur, éditer le fichier /etc/centreon/centreontrapd.pm :
our %centreontrapd_config = (
...
"centreon_db" => "dbname=/etc/snmp/centreon_traps/centreontrapd.sdb",
"centstorage_db" => "dbname=/etc/snmp/centreon_traps/centreontrapd.sdb",
"db_host" => "",
"db_user" => "",
"db_passwd" => "",
"db_type" => 'SQLite',
...
);
1;