Grenode dispose d'une machine en dehors de son réseau (gaffe à Toulouse) qui permet de surveiller tous les services de Grenode et de ses membres.
Sur cette machine sont installés :
- nagios et check mk pour surveiller les services et hôtes
- munin pour monitorer les machines
- observium pour monitorer la consommation réseau des membres, et les routeurs de Grenode (utilisé seulement par Grenode)
Les URLs pour accéder à ces services :
- check_mk :
- url web: https://gaffe.grenode.net/check_mk/
- url web: https://gaffe-ttnn.grenode.net/check_mk/
- observium :
- url web: https://observium.grenode.net/
Créer un compte pour permettre à un adhérent d'un membre d'accéder à l'interface web
L'authentification de check_mk est commune avec celle de nagios (check_mk
utilise nagios pour fonctionner). L'authentification est faire par le biais du
REMOTE_USER
d'apache.
Les identifiants et mots de passe sont stockés dans le fichier htpasswd
/etc/nagios3/htpasswd.users
; pour générer un nouveau couple utilisateur /
mot de passe :
USER=#<mon_utilisateur>
[ -n $USER ] && sudo htpasswd /etc/nagios3/htpasswd.users $USER
Il faut ensuite ajouter le login ($USER
) dans le fichier
/etc/check_mk/conf.d/00_contact-common.mk
pour les accès à check_mk.
Pour observium, il faut créer un utilisateur via la cli PHP (le mot de passe utilisé sera celui du htpasswd). Voir Observium
Mettre en place de la supervision pour un hôte ou un service d'un membre
À la différence de nagios, check_mk dispose d'un mécanisme d'autoconfiguration. Il permet de « détecter » un bon nombre de services automatiquement.
L'autoconfiguration repose sur l'installation d'un agent sur les équipements que l'on souhaite surveiller. Il est aussi possible d'utiliser les sondes habituelles (sondes distantes, snmp, etc.).
Méthode de surveillance
Nous faisons en sorte que check_mk utilise ssh pour joindre les machines, ce qui nous permet d'effectuer la surveillance via l'IP de TTNN, et ainsi de surveiller tous les services depuis l'extérieur de notre réseau. La première chose à faire est donc de permettre à gaffe-ttnn de joindre la machine à surveiller en ssh.
Installation de l'agent check_mk
Sur debian :
apt-get install check-mk-agent
Attention, sur des versions antérieures à wheezy, il faut utiliser la version de squeeze-backports.
Installation avec xinetd (obsolète)
apt-get install xinetd
# activer check-mk dans xinetd
sed -e 's/^\([[:space:\]]only_from[^=]*=\).*/\1 127.0.0.1 91.216.110.7/' -i /etc/xinetd.d/check_mk
sed -e 's/^\([[:space:\]]disable[^=]*=.*\)/#\1/' -i /etc/xinetd.d/check_mk
service xinetd reload
Installation via ssh
On crée un utilisateur check_mk :
adduser --system --home /var/lib/check_mk_agent --group check_mk_agent --shell /bin/sh
On l'autorise à lancer check_mk avec les droits root :
# Créer un fichier `/etc/sudoers.d/check_mk_agent`
cat > /etc/sudoers.d/check_mk_agent <<EOF
check_mk_agent ALL=NOPASSWD: /usr/bin/check_mk_agent
EOF
Enfin, on rajoute la clef de gaffe dans les clefs autorisées :
mkdir /var/lib/check_mk_agent/.ssh
cat >> /var/lib/check_mk_agent/.ssh/authorized_keys <<EOF
command="sudo /usr/bin/check_mk_agent",no-port-forwarding,no-agent-forwarding,no-X11-forwarding ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDiyusB/Xk1LVNoBNfgsPk9kNRP1nlwsjWdv78FOOjXEyPZoPeGSMtfeMLcxLhEZdTwcIIsx9BjOmE1Lz5b90dJLa5bXu76f0ZWkyaC2bEbCxfCIx0DjLeOCoQmyeBoCqowWS0Bwb58pn8UziYXwZU3GPlGNiDU4J/kllq2zepg2FpTrfdhGpOIZMHzoKqZbEwSUGmKnISv/Bl6h3DUYZuKGjvIivhaP7OOKYYq3U8IzifAQvR3NeRheQK1Wd7qRnZGsjBnLd5wwrNpyR3XZnm45rRB1GXBYfzBoQWfA6jNsxq98jfKAuNng2LTRbAymJnK3G1BXk6DOz4XKU+MDt6d1PYTphpqjQhGmsram1LFJUzg2vyc/J4bkx6Rs+HigQ2rqBmEDkdySy4qj+d+F4eSoZ6Hhj9Or3S1xwsQpnaNAzpZ9eRDL7ZUKN/1rfBVG4S5dJXdfGxgDciaCDdLHF8fe83VQriLklIUtevvH9tAm0Zg1VemvP8Omx6+SEi8GkYrBEuunRlxgW81LnL2UIrgHF6rra4v9Cz/Vk7Vw0bAoe0nr++6LbMIuWzA58swO4JzoTu0P8QFu4norIjp3YWHaBnYrOxbCp87Pcrd6/286oUOcpeO9w4EBENJydUWAegPcSEeoy2CLmkour/ec26izKwHfUJzLh8DEYLiKZdy/w== nagios@gaffe.grenode.net
EOF
chmod 700 /var/lib/check_mk_agent/.ssh
chown check_mk_agent:check_mk_agent /var/lib/check_mk_agent/.ssh
Attention, lorsque l'on rajoute des machines à surveiller via ssh, il faut les
ajouter avec le tag ssh
dans la configuration de check_mk.
Changement du port ssh par défaut
Pour changer le port ssh par défaut, on fait ça dans /etc/ssh/ssh_config
:
Host *.grenode.net
Port 51083
Host 91.216.110.1 91.216.110.6 91.216.110.8 91.216.110.9 91.216.110.11 91.216.110.19 91.216.110.20 91.216.110.21 91.216.110.98 91.216.110.99 80.67.163.60
Port 51083
Il ne faut donc pas d'oublier d'y ajouter une éventuelle nouvelle IP.
Ajout dans la conf du serveur check_mk
Les fichiers de configuration se trouvent dans le répertoire /etc/check_mk/conf.d. La syntaxe des fichiers est en python. En terme d'organisation de la configuration :
00_contact-common.mk
: contient les informations de contact pour les notifications.00_hosts-{grenode,gresille}.mk
: contient les informations concernant les hôtes.30_check-{common,grenode,gresille}.mk
: contient les informations concernant les services/check.99_extra-common.mk
Ajout d'un plugin mrpe/check_mk
L'équivalent de nrpe pour check_mk est mrpe. Le principe de fonctionnement est le même et les plugins nrpe sont compatibles avec mrpe.
Régénération de la configuration
Après l'ajout de plugins il faut refaire l'inventaire sur le serveur.
# avec xinetd
check_mk -I <host>
# avec ssh
sudo -u nagios check_mk -I <host>
Et recharger la configuration nagios :
# avec reload de nagios
check_mk -O
# avec restart de nagios
check_mk -R
Il est possible de suprimer l'inventaire d'une machine et de le reconstruire complètement :
# avec xinetd
check_mk -II <host>
# avec ssh
sudo -u nagios check_mk -II <host>
Monitorer une machine d'un membre avec munin
Il faut installer le paquet check-mk-agent
; on peut ensuite générer sur
gaffe une configuration de base pour les checks.
Pour surveiller des services supplémentaires, on peut utiliser mrpe
, en
installant nagios-plugins
, puis créant un fichier etc/check_mk/mrpe.cfg
, et
en regénérant l'inventaire sur le serveur.
Le fichier etc/check_mk/mrpe.cfg
comprend le nom du check et la commande, par
exemple sur une machine de Rézine pour les checks apt :
check_rzn_apt /usr/lib/nagios/plugins/check_apt -t 20 -c ''