Faire parvenir à un serveur Centreon-Syslog les messages d’un serveur Linux

On continue notre série d’articles sur Centreon-Syslog. Après avoir découvert Centreon-Syslog et comment supprimer les messages d’erreur générés au démarrage de RSyslog, nous allons voir comment faire parvenir les messages syslog d’un serveur Linux au serveur Centreon-Syslog. Cependant, pour éviter de saturer le réseau ou le serveur Centreon-Syslog, nous filtrerons les messages envoyés. Seuls ceux considérés comme intéressants seront envoyés. Les autres seront uniquement stockés en local. Dans cet article, je ne parle que de RSyslog et je pars du principe que Centreon-Syslog est installé et configuré par défaut sur un serveur Centreon Enterprise Server (CES) dont l’adresse IP est 192.168.0.11. Je nomme sender le serveur qui doit envoyer les messages syslog sur le serveur Centreon-Syslog.

Envoyer tous les messages à un serveur Centreon-Syslog

Pour envoyer tous les messages à un serveur Centreon-Syslog, il suffit d’ajouter la ligne suivante au fichier /etc/rsyslog.conf sur le sender:

*.* @@192.168.0.11:514

Dans la ligne ci-dessus:

  • *.* signifie « tous les messages »
  • @@192.168.0.11 : signifie « seront envoyés à l’adresse IP 192.168.0.11
  • :514 signifie « sur le port 514 »

Remarque: chaque serveur (le serveur Centreon-Syslog comme le serveur envoyant les messages) doivent avoir un nom d’hôte réel. Si ces deux serveurs possèdent le même nom d’hôte, vous ne pourrez savoir quel est le serveur qui a envoyé le message. Cette configuration se fait par la commande setup puis « Configuration du Réseau », « Edit DNS Configuration » et en modifiant la première ligne. Pensez à sauvegarder la configuration par la bouton « Save » et à modifier le fichier /etc/hosts.

Enfin, il faut redémarrer rsyslog sur le sender :

/etc/init.d/rsyslog restart

Aucune action n’est nécessaire sur le serveur Centreon-Syslog (c’est la magie CES 😉 ).

 Filtrer les messages : où réaliser cette action?

Dans la configuration ci-dessus, tous les messages sont envoyés. Cela n’est pas forcément négatif si:

  • le réseau est capable d’encaisser cette charge supplémentaire
  • le serveur Centreon-Syslog est correctement dimensionné pour intégrer tous ces messages dans la base de données
  • l’espace disque du serveur hébergeant la base de données n’est pas limité

Dans tous les autres cas, il faut filtrer les messages pour éviter de les envoyer. Ce filtrage peut se faire à deux endroits. Le choix ne se fait pas à pile ou face mais selon la stratégie définie. Le filtrage peut être fait :

  • soit sur le serveur Centreon-Syslog : tous les messages sont reçus, seuls les messages considérés comme importants sont stockés en base. Les autres sont stockés dans les fichiers textes uniquement. Cela évite de surcharger la base de données tout en centralisant le stockage des logs.
  • soit sur chaque sender : chaque sender filtre les messages à envoyer pour éviter de saturer le réseau ou le serveur Centreon-Syslog.

Aucune des deux stratégies n’est la meilleure! Il faut choisir selon les critères suivants:

  1. performances du réseau et du serveur Centreon-Syslog
  2. besoin de centraliser ou non les messages syslog
  3. capacité de stockage du serveur Centreon-Syslog

Filtrer les messages selon leur « facilité » et/ou leur criticité

Dès que le choix est fait, il faut maintenant définir quelles données vont être stockées. Pour cela, il est possible de filtrer par:

  • « facilité » : cela correspond à l’origine du message, au type de programme l’ayant généré. Exemples : le kernel, les news, les mails, les crons, … Attention : ce n’est pas le nom du programme mais son type (« mail » est utilisé en lieu et place de postifx/exim/sendmail).
  • « criticité » : la gravité du message.

Le filtre se fait de la façon suivante:

facilité.criticité

Le caractère « . » est utilisé pour séparer la facilité de la criticité. Il est possible d’utiliser le caractère « * » pour définir « tous ». Exemples:

  • kern.* : tous les messages du kernel
  • *.err : tous les messages de criticité « err » ou supérieure

Exemple de configuration: modifier le fichier /etc/rsyslog.conf en ajoutant les deux directives suivantes:

kern.* @@192.168.0.11:514
*.notice @@192.168.0.11:514

Penser à redémarrer rsyslog après cette modification!

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *