Snmp

De NCad Wiki
Aller à la navigation Aller à la recherche

Recevoir les Traps

Les traps sont des messages snmp envoyés par un équipement réseau à la station de supervision pour l'avertir sur un événement. Cet événement peut être matériel - changement d'état d'une interface - mais aussi logiciel - modification de la configuration de l'équipement'. Suivant le type de matériel, les traps envoyées peuvent être variées.

Installation

  • Par défaut, lors de l'installation du daemon snmp, le programme snmptrap est intégré à l'installation. Cependant, ce programme ne permette pas de traduire les traps reçus si ces dernières sont spécifiques au constructeur. L'installation du service snmptt est alors envisagée.

sudo apt-get install snmptt

  • Le programme ne fonctionnera pas comme un service indépendant. Il sera appelé par le programme snmptrap lors de la réception d'une trap.

Configuration

Configuration de snmp

  • Editer le fichier de configuration /etc/default/snmpd, puis remplacer la ligne :
TRAPDRUN=no
  • Par :
TRAPDRUN=yes
  • Remplacer également la ligne :
TRAPDOPTS='-Lsd -p /var/run/snmptrapd.pid'
  • Par :
TRAPDOPTS='-On -Lsd -p /var/run/snmptrapd.pid'

Configuration de snmptrapd

  • Editer le fichier de configuration /etc/snmp/snmptrapd.conf, puis ajouter à la fin du fichier les lignes suivants :
ignoreAuthFailure yes
authCommunity log,execute,net pfalk
traphandle default /usr/sbin/snmptt
donotlogtraps no

Configuration de snmptt

  • Editer le fichier de configuration /etc/snmp/snptt.ini, puis rechercher la ligne :
unknown_trap_log_enable = 0

Par :

unknown_trap_log_enable = 1
  • Pour activer la prise en charge de MySQL, affecter la valeur 1 au paramètre :
mysql_dbi_enable = 1
  • Rechercher la ligne suivante et indiquer l'adresse IP du serveur MySQL. Si le serveur MySQL est hébergé sur la même machine que le programme snmptt, laisser la valeur localhost.
mysql_dbi_host = localhost
  • Renseigner le port d'écoute du serveur MySQL. Par défaut le serveur écoute sur le port TCP 3306.
mysql_dbi_port = 3306
  • Indiquer le nom de la base de données MySQL.
mysql_dbi_database = snmpttdb
  • Indiquer le nom de la table ou seront enregistrés les traps snmp :
mysql_dbi_table = snmptt
  • Indiquer le nom de la table ou seront enregistrés les traps snmp non traduites :
mysql_dbi_table_unknown = snmptt_unknown
  • Indiquer le nom de la table ou seront enregistrés les statistiques snmp :
mysql_dbi_table_statistics = snmptt_statistics
  • Indiquer le nom d'utilisateur MySQL :
mysql_dbi_username = snmpttuser
  • Indiquer le mot de passe du compte MySQL :
mysql_dbi_password = mdpsnmpttuser
  • Création des tables SQL pour la base snmpttdb :
USE snmpttuser;
DROP TABLE snmptt;
CREATE TABLE snmptt (
  id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  eventname VARCHAR(50),
  eventid VARCHAR(50),
  trapoid VARCHAR(100),
  enterprise VARCHAR(100),
  community VARCHAR(20),
  hostname VARCHAR(100),
  agentip  VARCHAR(16),
  category VARCHAR(20),
  severity VARCHAR(20),
  uptime  VARCHAR(20),
  traptime VARCHAR(30),
  formatline VARCHAR(255)
);

USE snmpttuser;
DROP TABLE snmptt_unknown;
CREATE TABLE snmptt_unknown (
  trapoid VARCHAR(100),
  enterprise VARCHAR(100),
  community VARCHAR(20),
  hostname VARCHAR(100),
  agentip  VARCHAR(16),
  uptime  VARCHAR(20),
  traptime VARCHAR(30),
  formatline VARCHAR(255)
);

USE snmpttuser;
DROP TABLE snmptt_statistics;
CREATE TABLE snmptt_statistics (
  stat_time VARCHAR(30),
  total_received BIGINT,
  total_translated BIGINT,
  total_ignored BIGINT,
  total_unknown BIGINT
);

Si aucune base MySQL n'est définie, les traps seront enregistrées dans des fichiers de journalisation sous la racine /var/log/snmptt.

Finalisation

  • Pour terminer l'installation, il est nécessaire de redémarrer les daemon snmpd et snmptt :

sudo service snmpd restart
sudo service snmptt restart

Sources