Paris, France

Intégration Nagios


Choix de conception

Les priorités dans le choix de développement de l’addons Nagios ont étés :

  • Eviter les effets de bord comme la chute de performance au moment du relevé d’informations
  • Fournir des compteurs fiables et pertinent
  • Prévoir les différentes architectures comme par exemple une solution de haute-disponibilité avec plusieurs RadicalSpam

Pour ce faire, l’addons travaille en 2 temps :

  • Alimentation périodique de fichiers textuels contenant des compteurs (par défaut toutes les 5 minutes)
  • Interrogations Nagios par des scripts qui lisent les informations dans les fichiers textuels.

Grâce à cette technique, l’impact de la supervision sur le système supervisé reste relativement limité puisque seul les scripts d’alimentation des compteurs utilisent des ressources et des optimisations sont possibles comme :

  • Augmenter la périodicité d’alimentation des compteurs en passant de 5 à 10 minutes
  • Déporter cette charge en éxecutant l’alimentation des compteurs sur un serveur de centralisation des logs
  • Désactiver individuellement l’alimentation d’un compteur dont le rapport pertinence/performance reste discutable

Fichiers textuels contenant les compteurs mis à jour :

  • /var/rs/addons/nagios/var/stats_postfix_logs_counters.txt
  • /var/rs/addons/nagios/var/stats_postfix_queue_counters.txt
  • /var/rs/addons/nagios/var/stats_radicalspam_logs_counters.txt

Quelques conseils concernant Nagios :

  • Nomenclature des hôtes et services :
Dans l'interface WEB de Nagios, il est possible de déclencher des commandes à distances
comme par exemple : l'arrêt des notifications.

Pour éviter des problèmes de traductions d'espaces, utilisez des "-" pour séparer les mots comme :
postfix-queue-active qui posera moins de problème que Queue Active de Postfix.

Exemple :

> Pour le serveur Nagios
define service{
 use                     generic-service
 host_name               my_host
 service_description     postfix-queue-active
 check_command           check_nrpe!postfix_QUEUE_ACTIVE!100!150
}


define serviceextinfo {
 host_name            my_host
 service_description  postfix-queue-active
 notes_url            /nagios.html#postfix-queue-active
}

> Pour NRPE :
command[postfix_QUEUE_ACTIVE]=/var/rs/addons/nagios/bin/check_postfix_queue.sh QUEUE_ACTIVE $ARG1$ $ARG2$

Compteurs disponibles dans la version 1.0 de l’addons :

  • stats_postfix_logs_counters.txt :
REJECT_5XX=6200                   : Nombre de rejets définitifs
REJECT_4XX=900                    : Nombre de rejets temporaires
REJECT_WARNING=0                  : Nombre de rejet en mode simulation (reject_warning)
REJECT_CLIENT=5                   : Nombre de rejets définitifs basés sur l'IP client
REJECT_SENDER=19                  : Nombre de rejets définitifs basés sur l'expéditeur
REJECT_RECIPIENT=1143             : Nombre de rejets définitifs basés sur le destinataire
ERROR=0                           : Nombre d'erreur Postfix de type fatal et error
WARNING=1501                      : Nombre d'erreur de type warning
SMTP_MAIL_SENT=695                : Nombre de mail réellement livrés (status=sent)
SMTP_MAIL_DEFERRED=91             : Nombre de tentative de réémission (status=deferred)
SMTP_MAIL_BOUNCED=71              : Nombre de mail rejetés pendant la livraison (status=bounced)
SMTP_DELAY_EXT=25                 : Délai de livraison moyen vers des serveurs SMTP
SMTP_DELAY_LOCAL=7                : Délai de livraison moyen vers le filtre amavis local
MAIL_SIZE=95                      : Taille moyenne des mails
POSTGREY_DELAY=107                : Délai moyen du retard induit par la liste grise
  • stats_postfix_queue_counters.txt :
QUEUE_ALL=0                       : Nombre totale de mail en attente. Toutes queues confondues
QUEUE_ACTIVE=0                    : Nombre de mail dans la queue ACTIVE
QUEUE_DEFERRED=0                  : Nombre de mail dans la queue DEFERRED
QUEUE_HOLD=0                      : Nombre de mail dans la queue HOLD
  • stats_radicalspam_logs_counters.txt :
VIRUS=3                           : Nombre de virus
SPAM=95                           : Nombre de Spam
SPAMMY=0                          : Nombre de Spammy
BANNED=0                          : Nombre de Banned
UNCHECKED=0                       : Nombre de mail non vérifiés
PROCESS_TIME_INPUT=3              : Délai moyen de traitement du filtrage entrant
PROCESS_TIME_OUTPUT=0             : Délai moyen de traitement du filtrage sortant

Choix d’Architecture

Remarque : Le module Nagios fournit en standard à partir de RadicalSpam 3.2, permet avec l’utilisation de NRPE, de superviser la partie Postfix et RadicalSpam. Quelques éléments de supervision système sont configurés mais il faut les adapter à vos besoins.

L’addons Nagios obtient ces données principalement à partir des logs. Les choix de stockage, nommage et d’archivage de ces logs peuvent changer litéralement les résultats.

Cas particulier d’architecture avec plusieurs RadicalSpam : Avec plusieurs RadicalSpam, il est préférable en premier de centraliser les logs et d’installer l’addons Nagios sur un seul serveur (si possible indépendants des RadicalSpam. A l’aide syslog-ng, cette centralisation sera grandement facilité.


Gestion des Logs

La catégorie de log qui nous intéresse pour la supervision est : mail.*

Sur la plupart des systèmes Linux, la catégorie mail.* est envoyé vers le fichier /var/log/mail ou /var/log/maillog

Une rotation quotidienne des logs avec LogRotate, permet d’obtenir un fichier maillog par jour mais avec 2 particularités :

  • Le fichier en cours /var/log/maillog, commence en général à 04H02 et se termine le lendemain à 04H01
  • Le fichier du jour J-1 suit le même schéma mais en plus avec un format en général compressé /var/log/maillog.1.gz

Ces particularités faussent un peu le résultat des analyses de Nagios qui fournissent des compteurs pour la journée en cours.

L’idéal est de disposer d’un fichier maillog-ddmmyyyy.log par jour dont les données commencent à 00H00 et se termine à 23H59

Pour ce faire, vous avez 2 solutions :

  • Conseillé : Utiliser syslog-ng, disponible au format source et binaire, gratuitement sur beaucoup de système et payante en version binaires (RPM, autres) pour les distributions commerciales.
  • Utiliser le script extract-log-current-day.sh fournit avec l’addons Nagios de RadicalSpam. (voir la configuration plus loin)

Configuration et intégration


Introduction :

  • Par défaut, les scripts qui utilisent les logs pour générer des compteurs de supervision, cherchent successivement un maillog selon l’ordre suivant :
1 : /var/log/maillog-DDMMYYYY.log
2 : /var/log/mail
3 : /var/log/maillog

Si aucun de ces fichiers n'est disponible, le script s'arrête.


  • Sur le RadicalSpam à superviser, commencez par tester les scripts manuellement pour être sûr qu’ils fonctionneront :
[root@linux /]$ /var/rs/addons/nagios/bin/stats_postfix_logs.sh
[root@linux /]$ /var/rs/addons/nagios/bin/stats_postfix_queue.sh
[root@linux /]$ /var/rs/addons/nagios/bin/stats_radicalspam_logs.sh

Compilation et Installation de NRPE sur le serveur Nagios

Si la commande check_nrpe n’est pas disponible sur votre serveur Nagios, vous devez l’installer.

Selon la distribution Linux utilisé, vous trouverez peut être un package prêt à l’emploi sinon vous serez obligé de le compiler.

  • Installation à partir de la distribution :
- Gentoo :
emerge net-analyzer/nagios-nrpe

- Redhat Fedora :
yum install nagios-plugins-nrpe


Compilation et Installation de NRPE sur le serveur à superviser

Si vous utilisez NRPE également pour contrôler d’autres services que RadicalSpam, vous devrez installer les plugins Nagios.

Dans le format RPM, vous trouverez les plugins Nagios sur le site http://dag.wieers.com/rpm/packages/nagios-plugins pour la majorité des distributions Redhat.

  • Installation à partir de la distribution :
- Gentoo :
emerge net-analyzer/nagios-nrpe

- Redhat Fedora :
yum install nrpe
  • IMPORTANT : Ajout de nrpe au fichier /etc/services :

Si NRPE ou les plugins Nagios sont installés dans un autre répertoire que /home/nagios, le plus simple pour éviter de modifier les fichiers xinet.d/nrpe et nrpe.cfg sera de faire un lien symbolique comme suit :

ln -sf /usr/nagios /home/nagios
  • Problème possible :
echo "nrpe            5666/tcp                        # Daemon NRPE NAGIOS" >> /etc/services
  • Configuration du service avec XINETD :

[root@linux /]$ ln -s /var/rs/addons/nagios/etc/nrpe.xinetd /etc/xinetd.d/nrpe
  • Adaptez le fichier de configuration à vos besoin et à votre architecture :
[root@linux /]$ vi /etc/xinetd.d/nrpe

- Remplacer l'adresse IP dans only_from par celle du serveur Nagios !

service nrpe
{
        flags           = REUSE
        socket_type     = stream
        wait            = no
        user            = nagios
        group           = nagios
        server          = /home/nagios/bin/nrpe
        server_args     = -c /var/rs/addons/nagios/etc/nrpe.cfg --inetd
        log_on_failure  += USERID
        disable         = no
        only_from       = 127.0.0.1/8
}

- Relancez le servce xinetd :
[root@linux /]$ /etc/init.d/xinetd restart

- Vérifiez que le port 5666 est à l'écoute :
[root@linux /]$ netstat -taupen | grep 5666 | grep LISTEN

Configuration de l’addons sur le serveur RadicalSpam – AVEC syslog-ng :

  • Configuration de syslog-ng
- Editez le fichier syslog-ng.conf :
[root@linux /]$ vi /etc/syslog-ng.conf ou vi /etc/syslog-ng/syslog-ng.conf

- Remplacez la ligne mail actuelle par :
destination mail { file("/var/log/maillog-$DAY$MONTH$YEAR.log"); };

- Rechargez syslog-ng :
[root@linux /]$ /etc/init.d/syslog reload ou /etc/init.d/syslog-ng reload
  • Installation des tâches cron :
[root@linux /]$ ln -sf /var/rs/addons/tools/cron/rs-nagios-stats-postfix-logs.cron /etc/cron.d/rs-nagios-stats-postfix-logs
[root@linux /]$ ln -sf /var/rs/addons/tools/cron/rs-nagios-stats-postfix-queue.cron /etc/cron.d/rs-nagios-stats-postfix-queue
[root@linux /]$ ln -sf /var/rs/addons/tools/cron/rs-nagios-stats-radicalspam-logs.cron /etc/cron.d/rs-nagios-stats-radicalspam-logs

Configuration de l’addons sur le serveur RadicalSpam – SANS syslog-ng :

  • Dans cette configuration, un script d’extraction va alimenter tous les 5 minutes un fichier de logs ne contenant que les logs du jour.
  • Installation des tâches cron :
[root@linux /]$ ln -sf /var/rs/addons/tools/cron/rs-nagios-stats-all.cron /etc/cron.d/rs-nagios-stats-all
[root@linux /]$ ln -sf /var/rs/addons/tools/cron/rs-nagios-stats-postfix-queue.cron /etc/cron.d/rs-nagios-stats-postfix-queue

Configuration des services à superviser sur le serveur Nagios – AVEC NRPE :

  • Exemple d’intégration au serveur Nagios (Pensez à adapter la valeur des Warning/Critical selon vos besoins)
  • Définition d’un service générique hérité :
define service{
        name                            generic-service
        active_checks_enabled           1
        is_volatile                     0
        max_check_attempts              2
        notification_interval           15
        passive_checks_enabled          1
        normal_check_interval           5
        retry_check_interval            1
        parallelize_check               1
        obsess_over_service             1
        check_freshness                 0
        notifications_enabled           1
        event_handler_enabled           0
        flap_detection_enabled          1
        process_perf_data               1
        retain_status_information       1
        retain_nonstatus_information    1
        check_period                    24x7
        notification_period             24x7
        notification_options            c,u
        contact_groups                  admins
        register                        0
}
  • 1 fichiers par serveur à superviser (pensez à remplacer myhostname par le nom du serveur à superviser :
define host{
        use                     generic-host
        host_name               myhostname
        alias                   RadicalSpam
        address                 192.168.1.10
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     Alive
        check_command           check-host-alive
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     postfix-queue-all
        check_command           check_nrpe!postfix_QUEUE_ALL!50!70
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     postfix-queue-active
        check_command           check_nrpe!postfix_QUEUE_ACTIVE!30!50
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     postfix-queue-deferred
        check_command           check_nrpe!postfix_QUEUE_DEFERRED!25!35
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     postfix-hold
        check_command           check_nrpe!postfix_QUEUE_HOLD!5!10
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     postfix-reject-5xx
        check_command           check_nrpe!postfix_REJECT_5XX!1200!1500
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     postfix-reject-4xx
        check_command           check_nrpe!postfix_REJECT_4XX!4500!5500
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     postfix-reject-warning
        check_command           check_nrpe!postfix_REJECT_WARNING!10!15
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     postfix-reject-client
        check_command           check_nrpe!postfix_REJECT_CLIENT!10!15
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     postfix-reject-sender
        check_command           check_nrpe!postfix_REJECT_SENDER!50!100
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     postfix-reject-recipient
        check_command           check_nrpe!postfix_REJECT_RECIPIENT!500!750
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     postfix-error
        check_command           check_nrpe!postfix_ERROR!2!5
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     postfix-warning
        check_command           check_nrpe!postfix_WARNING!150!200
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     postfix-smtp-sent
        check_command           check_nrpe!postfix_SMTP_MAIL_SENT!500!700
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     postfix-smtp-deferred
        check_command           check_nrpe!postfix_SMTP_MAIL_DEFERRED!500!750
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     postfix-smtp-bounced
        check_command           check_nrpe!postfix_SMTP_MAIL_BOUNCED!50!100
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     postfix-smtp-delay-ext
        check_command           check_nrpe!postfix_SMTP_DELAY_EXT!100!150
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     postfix-smtp-delay-local
        check_command           check_nrpe!postfix_SMTP_DELAY_LOCAL!6!10
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     postfix-mail-size
        check_command           check_nrpe!postfix_MAIL_SIZE!300!500
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     postgrey-delay
        check_command           check_nrpe!POSTGREY_DELAY!200!300
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     rs-spam
        check_command           check_nrpe!rs_spam!200!300
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     rs-spammy
        check_command           check_nrpe!rs_spammy!1!2
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     rs-virus
        check_command           check_nrpe!rs_virus!5!10
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     rs-banned
        check_command           check_nrpe!rs_banned!5!10
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     rs-unchecked
        check_command           check_nrpe!rs_unchecked!1!2
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     rs-process-in
        check_command           check_nrpe!rs_process_in!3!5
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     rs-process-out
        check_command           check_nrpe!rs_process_out!1!2
}
  • Définition de services étendus (vous permettra d’accèder à une aide en ligne pour chaque compteur)
define serviceextinfo{
        host_name               myhostname
        service_description     postfix-queue-all
        notes_url               http://www.radical-spam.org//nagios.html#help-postfix-queue-all
}

define serviceextinfo{
        host_name               myhostname
        service_description     postfix-queue-deferred
        notes_url               http://www.radical-spam.org//nagios.html#help-postfix-queue-deferred
}

define serviceextinfo{
        host_name               myhostname
        service_description     postfix-queue-active
        notes_url               http://www.radical-spam.org//nagios.html#help-postfix-queue-active
}

define serviceextinfo{
        host_name               myhostname
        service_description     postfix-queue-hold
        notes_url               http://www.radical-spam.org//nagios.html#help-postfix-queue-hold
}

define serviceextinfo{
        host_name               myhostname
        service_description     postfix-reject-5xx
        notes_url               http://www.radical-spam.org//nagios.html#help-postfix-reject-5xx
}

define serviceextinfo{
        host_name               myhostname
        service_description     postfix-reject-4xx
        notes_url               http://www.radical-spam.org//nagios.html#help-postfix-reject-4xx
}

define serviceextinfo{
        host_name               myhostname
        service_description     postfix-reject-warning
        notes_url               http://www.radical-spam.org//nagios.html#help-postfix-reject-warning
}

define serviceextinfo{
        host_name               myhostname
        service_description     postfix-reject-client
        notes_url               http://www.radical-spam.org//nagios.html#help-postfix-reject-client
}

define serviceextinfo{
        host_name               myhostname
        service_description     postfix-reject-sender
        notes_url               http://www.radical-spam.org//nagios.html#help-postfix-reject-sender
}

define serviceextinfo{
        host_name               myhostname
        service_description     postfix-reject-recipient
        notes_url               http://www.radical-spam.org//nagios.html#help-postfix-reject-recipient
}

define serviceextinfo{
        host_name               myhostname
        service_description     postfix-error
        notes_url               http://www.radical-spam.org//nagios.html#help-postfix-error
}

define serviceextinfo{
        host_name               myhostname
        service_description     postfix-warning
        notes_url               http://www.radical-spam.org//nagios.html#help-postfix-warning
}

define serviceextinfo{
        host_name               myhostname
        service_description     postfix-smtp-sent
        notes_url               http://www.radical-spam.org//nagios.html#help-postfix-smtp-sent
}

define serviceextinfo{
        host_name               myhostname
        service_description     postfix-smtp-deferred
        notes_url               http://www.radical-spam.org//nagios.html#help-postfix-smtp-deferred
}

define serviceextinfo{
        host_name               myhostname
        service_description     postfix-smtp-bounced
        notes_url               http://www.radical-spam.org//nagios.html#help-postfix-smtp-bounced
}

define serviceextinfo{
        host_name               myhostname
        service_description     postfix-smtp-delay-ext
        notes_url               http://www.radical-spam.org//nagios.html#help-postfix-smtp-delay-ext
}


define serviceextinfo{
        host_name               myhostname
        service_description     postfix-smtp-delay-local
        notes_url               http://www.radical-spam.org//nagios.html#help-postfix-smtp-delay-local
}

define serviceextinfo{
        host_name               myhostname
        service_description     postfix-mail-size
        notes_url               http://www.radical-spam.org//nagios.html#help-postfix-mail-size
}

define serviceextinfo{
        host_name               myhostname
        service_description     postgrey-delay
        notes_url               http://www.radical-spam.org//nagios.html#help-postgrey-delay
}

define serviceextinfo{
        host_name               myhostname
        service_description     rs-spam
        notes_url               http://www.radical-spam.org//nagios.html#help-rs-spam
}

define serviceextinfo{
        host_name               myhostname
        service_description     rs-spammy
        notes_url               http://www.radical-spam.org//nagios.html#help-rs-spammy
}

define serviceextinfo{
        host_name               myhostname
        service_description     rs-virus
        notes_url               http://www.radical-spam.org//nagios.html#help-rs-virus
}

define serviceextinfo{
        host_name               myhostname
        service_description     rs-banned
        notes_url               http://www.radical-spam.org//nagios.html#help-rs-banned
}

define serviceextinfo{
        host_name               myhostname
        service_description     rs-unchecked
        notes_url               http://www.radical-spam.org//nagios.html#help-rs-unchecked
}


define serviceextinfo{
        host_name               myhostname
        service_description     rs-process-in
        notes_url               http://www.radical-spam.org//nagios.html#help-rs-process-in
}

define serviceextinfo{
        host_name               myhostname
        service_description     rs-process-out
        notes_url               http://www.radical-spam.org//nagios.html#help-rs-process-out
}

Configuration des services à superviser sur le serveur Nagios – SANS NRPE :

  • Exemple d’intégration au serveur Nagios (Pensez à adapter la valeur des Warning/Critical selon vos besoins)
  • Définition d’un service générique hérité :
define service{
        name                            generic-service
        active_checks_enabled           1
        is_volatile                     0
        max_check_attempts              2
        notification_interval           15
        passive_checks_enabled          1
        normal_check_interval           5
        retry_check_interval            1
        parallelize_check               1
        obsess_over_service             1
        check_freshness                 0
        notifications_enabled           1
        event_handler_enabled           0
        flap_detection_enabled          1
        process_perf_data               1
        retain_status_information       1
        retain_nonstatus_information    1
        check_period                    24x7
        notification_period             24x7
        notification_options            c,u
        contact_groups                  admins
        register                        0
}
  • 1 fichiers par serveur à superviser (pensez à remplacer myhostname par le nom du serveur à superviser :
define host{
        use                     generic-host
        host_name               myhostname
        alias                   RadicalSpam
        address                 192.168.1.10
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     Alive
        check_command           check-host-alive
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     postfix-queue-all
        check_command           postfix_QUEUE_ALL!50!70
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     postfix-queue-active
        check_command           postfix_QUEUE_ACTIVE!30!50
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     postfix-queue-deferred
        check_command           postfix_QUEUE_DEFERRED!25!35
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     postfix-hold
        check_command           postfix_QUEUE_HOLD!5!10
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     postfix-reject-5xx
        check_command           postfix_REJECT_5XX!1200!1500
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     postfix-reject-4xx
        check_command           postfix_REJECT_4XX!4500!5500
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     postfix-reject-warning
        check_command           postfix_REJECT_WARNING!10!15
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     postfix-reject-client
        check_command           postfix_REJECT_CLIENT!10!15
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     postfix-reject-sender
        check_command           postfix_REJECT_SENDER!50!100
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     postfix-reject-recipient
        check_command           postfix_REJECT_RECIPIENT!500!750
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     postfix-error
        check_command           postfix_ERROR!2!5
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     postfix-warning
        check_command           postfix_WARNING!150!200
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     postfix-smtp-sent
        check_command           postfix_SMTP_MAIL_SENT!500!700
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     postfix-smtp-deferred
        check_command           postfix_SMTP_MAIL_DEFERRED!500!750
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     postfix-smtp-bounced
        check_command           postfix_SMTP_MAIL_BOUNCED!50!100
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     postfix-smtp-delay-ext
        check_command           postfix_SMTP_DELAY_EXT!100!150
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     postfix-smtp-delay-local
        check_command           postfix_SMTP_DELAY_LOCAL!6!10
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     postfix-mail-size
        check_command           postfix_MAIL_SIZE!300!500
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     postgrey-delay
        check_command           POSTGREY_DELAY!200!300
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     rs-spam
        check_command           rs_spam!200!300
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     rs-spammy
        check_command           rs_spammy!1!2
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     rs-virus
        check_command           rs_virus!5!10
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     rs-banned
        check_command           rs_banned!5!10
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     rs-unchecked
        check_command           rs_unchecked!1!2
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     rs-process-in
        check_command           rs_process_in!3!5
}

define service{
        use                     generic-service
        host_name               myhostname
        service_description     rs-process-out
        check_command           rs_process_out!1!2
}

Supervision avec centralisation :

Documentation à venir car il y a plusieurs particularités dans cette configuration :

  • Le serveur Nagios interroge le NRPE du serveur de centralisation
  • Il faut générer des compteurs individuel par machine et des compteurs de cumuls généraux
  • Il faut utiliser SSH et le script stats_postfix_queue_by_ssh.sh pour alimenter les compteurs de QUEUES ce qui implique de générer et distribuer une clé SSH sur les serveurs RadicalSpam

Compilation de NRPE

  • Téléchargez et décompactez nrpe :
mkdir -p /home/tmp/nagios && cd /home/tmp/nagios
wget http://ovh.dl.sourceforge.net/sourceforge/nagios/nrpe-2.10.tar.gz
tar -xzf nrpe-2.10.tar.gz && cd nrpe-2.10

  • Si vous êtes sur le serveur à superviser et que les comptes suivant n’existent pas, créez le groupe et l’utilisateur nagios :
groupadd -g 1004 nagios
useradd -d /home/nagios -u 1004 -g 1004 -s /bin/sh nagios
  • Lancez la compilation :
./configure \
	--prefix=/home/nagios \
	--disable-ssl \
	--with-nrpe-user=nagios \
	--with-nrpe-group=nagios \
	--with-nrpe-port=5666 \
	--disable-command-args

make all
  • 2 fichiers sont générés après la compilation :
    • nrpe (daemon nrpe) à utiliser sur les serveurs à superviser
    • check_nrpe à utiliser sur le serveur Nagios
  • Si les 2 OS sont compatibles, vous pouvez éviter de compiler à nouveau NRPE et copier directement le binaire nrpe sur le ou les serveurs à superviser.