Magazine Blog

Nagios et la surveillance des services

Publié le 23 octobre 2014 par Rhw @RevueHW
Nagios et la surveillance des services

Nagios est fournis avec une large gamme de scripts intégrés à l’application pour des services de surveillances. Ce tutoriel couvrira le processus d’utilisation de certains de ces scripts de vérification de services communs tels que MySQL, le serveur internet Apache, DNS, etc.

Pour garder cet article spécifique à la surveillance de services, nous ne configurerons pas de groupes d’hôtes ou de modèles, dans la mesure où le sujet a déjà été expliqué dans des tutoriels antérieurs. Ils peuvent néanmoins être mentionnés pour répondre aux exigences du présent article.

Exécuter Nagios Check en CLI

Il est généralement conseillé d’exécuter les scripts de surveillance de services Nagios en CLI avant de les ajouter à Nagios. Cela donnera une idée du succès de l’exécution et du résultat du script auquel s’attendre.

Tous les scripts sont situés dans /etc/nagios-plugins/config/ avec les fichiers exécutables situés dans /usr/lib/nagios/plugins/

Voici comment faire.

root@nagios:~# cd /etc/nagios-plugins/config/

Les scripts fournis contiennent de l’aide sur la syntaxe. L’exemple contient un résultat partiel.

root@nagios:~# cat /etc/nagios-plugins/config/tcp_udp.cfg
# 'check_tcp' command definitiondefine command{   command_name   check_tcp   command_line   /usr/lib/nagios/plugins/check_tcp -H '$HOSTADDRESS$' -p '$ARG1$'

Maintenant que la syntaxe est disponible, le port 80 de TCP peut être vérifié comme suit.

root@nagios:~# /usr/lib/nagios/plugins/check_tcp -H 10.10.10.1 -p 80
TCP OK - 0.000 second response time on port 80|time=0.000222s;;;0.000000;10.000000

Exemple de topologie

Dans ce tutoriel, nous utiliserons les trois serveurs ci-dessous. Chacun de ces serveurs exécute un ou plusieurs services communs. Le serveur Nagios fonctionne sur Ubuntu.

  • Serveur 1 (10.10.10.1) : MySQL, Apache2
  • Serveur 2 (10.10.10.2) : Postfix, Apache2
  • Serveur 3 (10.10.10.3) : DNS


Premièrement, les serveurs sont définis sur Nagios.

root@nagios:~# vim /etc/nagios3/conf.d/example.cfg
define host{   use   generic-host     host_name   test-server-1   alias   test-server-1   address   10.10.10.1   } define host{   use    generic-host     host_name   test-server-2   alias   test-server-2   address   10.10.10.2   } define host{   use   generic-host       host_name   test-server-3   alias   test-server-3   address   10.10.10.3   }

Service de surveillance MySQL

Les critères de surveillance MySQL

  • Surveiller si MySQL fonctionne en vérifiant le port 3306.
  • Surveiller la disponibilité de certaines bases de données ‘testDB’.

Réglage du serveur MySQL

Lorsqu’il s’agit de vérifier MySQL, il faut garder à l’esprit que MySQL, par défaut, n’écoute que l’interface de loopback 127.0.0.1. Cela augmente la sécurité de la base de données. Un réglage manuel est nécessaire pour indiquer à MySQL qu’il lui faut écouter d’autres interfaces aussi. Voici comment ça peut être fait.

Ce réglage est exécuté sur tous les serveurs MySQL.

root@nagios:~# vim /etc/mysql/my.cnf

La ligne suivante est dé-commentée pour que MySQL écoute toutes les interfaces. 

#bind-address   = 127.0.0.1

De même, MySQL ne laissera pas n’importe quel hôte s’y connecter. Un utilisateur ‘nagios’ est créé à la fois pour l’hôte local et pour ‘tout’ hôte. Cet utilisateur a ainsi accès à toutes les bases de données et sera utilisé pour la surveillance.

Les réglages suivants sont faits pour tous les serveurs MySQL.

root@nagios:~# mysql -u root –p
## MySQL root password here ##

Un utilisateur ‘nagios@localhost’ est créé dans le serveur MySQL.

mysql> CREATE USER 'nagios'@'localhost' IDENTIFIED BY 'nagios-pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'nagios'@'localhost';

Un utilisateur ‘nagios@any-host’ est créé.

mysql> CREATE USER 'nagios'@'%' IDENTIFIED BY 'nagios-pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'nagios'@'%';
mysql> FLUSH PRIVILEGES;

Cela devrait activer l’écoute de MySQL sur toutes les interfaces, de même qu’accepter des nouvelles connexions de l’utilisateur ‘nagios’ vers n’importe quel hôte.

Notez qu’il y a des implications de sécurité possibles en raison de ce changement, il est donc nécessaire de vous préciser ceci :

  • Ce réglage exposera MySQL à toutes les interfaces disponibles, WAN inclue. Il est vital de faire en sorte que seuls les réseaux légitimes aient accès à la base de données. Des filtres tels qu’un pare-feu et des wrappers TCP devraient être utilisés.
  • Le mot de passe de l’utilisateur ‘nagios’ sur MySQL doit être très fort. S’il y a peu de serveurs MySQL, il faudrait alors créer l’utilisateur MySQL ‘nagios@servername’ plutôt que ‘nagios@%’ par exemple, n’importe quel hôte.

Configuration de Nagios pour MySQL

Le réglage suivant devrait faire l’affaire.

root@nagios:~# vim /etc/nagios3/conf.d/services_nagios2.cfg
define service{use   generic-servicehost_name   test-server-1;hostgroup can be used instead as well service_description   Check MYSQL via TCP portcheck_command   check_tcp!3306   } define service{use   generic-servicehost_name   test-server-1;hostgroup can be used instead as well service_description   Check availability of database 'testDB'check_command  check_mysql_database!nagios!nagios-pass!testDB;check_mysql!userName!userPassword!databaseName   }

De cette manière, Nagios peut aider à surveiller l’accessibilité à la fois des serveurs MySQL et de la base de données stockée sur les serveurs.

Surveiller un serveur web Apache

Nagios peut être utilisé pour aussi surveiller un serveur web Apache.

Les critères de surveillance Apache

  • Surveiller si le serveur apache est accessible.

Cette tâche est vraiment facile comme Nagios dispose d’une commande intégrée pour cela.

root@nagios:~# vim /etc/nagios3/conf.d/services_nagios2.cfg
define service{use   generic-servicehost_name   test-server-1, test-server-2service_description   Check Apache Web Servercheck_command   check_http   }

C’était vraiment simple!

Surveiller le service DNS

Nagios peut surveiller un service DNS en demandant au serveur DNS soit de résoudre un FQDN, soit d’utiliser l’outil dig. Le FQDN par défaut utilisé pour le test est www.google.com, mais il peut être changé si besoin. Le fichier suivant peut être modifié si besoin.

root@nagios:~# vim /etc/nagios-plugins/config/dns.cfg
## The -H portion can be modified to replace Google ##define command{command_name   check_dnscommand_line   /usr/lib/nagios/plugins/check_dns -H www.google.com -s '$HOSTADDRESS$'}

Ensuite, éditez le fichier suivant.

root@nagios:~# vim /etc/nagios3/conf.d/services_nagios2.cfg
## Nagios asks server-3 to resolve the IP for google.com ##define service{use   generic-servicehost_name     test-server-3service_description   Check DNScheck_command   check_dns   } ## Nagios asks server-3 to dig google.com ##define service{use   generic-servicehost_name   test-server-3service_description   Check DNS via digcheck_command   check_dig!www.google.com   }

Surveiller les serveurs de messagerie électronique

Nagios peut surveiller différents serveurs de messagerie électronique, tels que SMTP, POP, IMAP et mailq. Tel que nous l’avons mentionné plut tôt, le server-2 dispose d’un serveur de messagerie électronique postfix. Nagios sera configuré pour surveiller SMTP et la liste de mails du serveur.

root@nagios:~# vim /etc/nagios3/conf.d/services_nagios2.cfg
define service{use   generic-servicehost_name   test-server-2service_description   Check SMTPcheck_command   check_smtp   } define service{use   generic-servicehost_name   test-server-2service_description   Check Mail Queuecheck_command   check_mailq_postfix!50!100   ;warning at 50, critical at 100   }

surveillance du serveur email avec Nagios

La capture d’écran suivante donne un aperçu complet de toutes les vérifications de services qui ont été configurées jusqu’à présent.

Surveillances basées sur des ports d’applications personnalisées

Supposons que l’application personnalisée qui suit fonctionne également sur le réseau, écoutant sur un port particulier.

  • Test Server 1 : application personnalisée (Port TCP 12345)


Avec un peu de peaufinage, Nagios peut également aider à surveiller ce port d’application.

root@nagios:~# vim /etc/nagios3/conf.d/services_nagios2.cfg
define service{use   generic-servicehost_name   test-server-1service_description   Check server 1 custom applicationcheck_command   check_tcp!12345   }

Conclusion

En conclusion, Nagios peut surveiller plein d’autres secteurs d’un réseau. Les scripts stockés sur /etc/nagios-plugins/config/ peuvent éclairer sur les possibilités fantastiques de Nagios.

Certains des scripts fournis avec Nagios sont restreints au serveur local uniquement. Les exemples incluent la charge d’un serveur, le nombre de processus simultanés, le nombre d’utilisateurs connectés. Ces vérifications peuvent fournir un aperçu utile de ce qui se passe dans le serveur Nagios.

J’espère que tout cela vous sera utile.

Article originale de: Sarmed Rahman  


Retour à La Une de Logo Paperblog

A propos de l’auteur


Rhw 642 partages Voir son profil
Voir son blog