Les priorités dans le choix de développement de l'addons Nagios ont étés :
Pour ce faire, l'addons travaille en 2 temps :
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 :
Fichiers textuels contenant les compteurs mis à jour :
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 http://www.radical-spam.org/nagios.html#postfix-queue-active
}
> Pour NRPE :
command[postfix_QUEUE_ACTIVE]=/var/rs/addons/nagios/bin/check_postfix_queue.sh QUEUE_ACTIVE $ARG1$ $ARG2$
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
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
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
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é.
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 :
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 :
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.
[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
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.
- Gentoo : emerge net-analyzer/nagios-nrpe - Redhat Fedora : yum install nagios-plugins-nrpe
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.
- Gentoo : emerge net-analyzer/nagios-nrpe - Redhat Fedora : yum install nrpe
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
echo "nrpe 5666/tcp # Daemon NRPE NAGIOS" >> /etc/services
[root@linux /]$ ln -s /var/rs/addons/nagios/etc/nrpe.xinetd /etc/xinetd.d/nrpe
[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
- 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
[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
[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
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
}
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
}
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
}
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
}
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
}
Documentation à venir car il y a plusieurs particularités dans cette configuration :
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
groupadd -g 1004 nagios useradd -d /home/nagios -u 1004 -g 1004 -s /bin/sh nagios
./configure \ --prefix=/home/nagios \ --disable-ssl \ --with-nrpe-user=nagios \ --with-nrpe-group=nagios \ --with-nrpe-port=5666 \ --disable-command-args make all