Table des matières

Configurer un agent Zabbix

L'agent Zabbix dialogue avec le serveur Zabbix et fait remonter tout type d'information vers le serveur zabbix.

Commencez par installer l'agent Zabbix : apt-get install zabbix-agent

Ensuite, ouvrez l'interface web de Zabbix et créez un nouvel hôte sous Configuration, puis Hosts. On remplit le champ Host name, on met les bons groupes (pour une CT avec un service web, LXC et Services Web par exemple) et on renseigne l'adresse IP sous Agent interfaces. Puis, dans l'onglet Templates, on rajoute les bons templates (pour une CT, il existe Template OS Linux LXC, pour un service web utilisant Apache2, Template App Apache2 et Template App Web, …). On n'oublie pas de bien cliquer sur Add, pour les templates et pour ajouter l'hôte à Zabbix.

Finalement, dans le serveur (l'hôte) même, configure l'agent zabbix dans /etc/zabbix/zabbix_agentd.conf

PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix-agent/zabbix_agentd.log
LogFileSize=0
SourceIP=<IP du Serveur>
Server= 192.168.102.65 < ou 192.168.103.101 ou encore 192.168.104.65> 
ListenIP=<IP du serveur>
ServerActive= 192.168.102.65 < ou 192.168.103.101 ou encore 192.168.104.65> 
Hostname=<hostname>

Après, restaurez l'agent et vérifiez les logs

sudo /etc/init.d/zabbix-agentd restart
sudo tail -n 40 /var/log/zabbix-agent/zabbix_agentd.log

On peut ensuite chercher l'hôte dans Zabbix pour voir que tout est bien monitoré.

Selon le cas, vous pouvez ajouter de paramètres additionnels dans le fichier de config de l'agent, utilisant UserParameters.

Les éléments

Les éléments Zabbix servent à effectuer des mesures depuis l'agent zabbix. Un élément est donc une valeur remontée de l'agent zabbix vers le serveur.

Voici une liste de ces éléments.

Vous pouvez tester la valeur d'un élément en ligne de commande, par exemple depuis le client :

  zabbix_agent -t proc.num[ruby]

Ou sinon sur le serveur zabbix, une fois l'élément ajouté :

  zabbix_get -s 192.168.102.154 -p 10050 -k "ioping[/mnt/pve/scylla_prod/]"

Pour créer un nouvel élément dans l'interface web :

  1. Aller dans le menu configuration
  2. puis le sous menu hôtes
  3. Sélectionnez votre hôte (ou modèle)
  4. Cliquez sur Éléments
  5. Puis sur Créer un élément

Vous pouvez maintenant donner un petit nom sexy à votre événement (pas celui de l'agent) et la clé (le nom donné dans l'agent). On a pour convention à MiNET de conserver l'historique 7 jours et les tendances 120 jours (pour ne pas exploser la base de données). Je vous laisse régler les autres détails sans importances.

Définir ses propres éléments

Il faut d'abord, dans le fichier de configuration de l'agent, définir ce qu’il faut faire remonter au serveur, et sous quel nom. Pour cela, éditez /etc/zabbix/zabbix_agentd.conf.

Voici un exemple avec UserParameter :

Ajoutez une ligne :

  UserParameter=[nom],[commande]

La commande UNIX renvoie préférentiellement un nombre…

Ce qui donne pour par exemple remonter le nombre de pool dégradé :

  UserParameter=zpooldegraded,zpool status | grep DEGRADED | wc -l

Il reste plus qu'à récupérer la valeur sur le serveur zabbix. La valeur de la clé de l'élément que vous allez créer est celle du UserParameter.

Un user parameter avec des paramètres

Vous vous dites que vous allez devoir lancer 20 fois la même commande dans 20 user parameters différents, et ça vous gonfle d'avance?

Passez donc des paramètres à un user parameter !

c'est assez simple, voici la syntaxe :

  UserParameter=identifiant[*], commande

Utilisez $1, $2… pour passer des arguments à la commande (comme en bash)

Ça donne donc en vrai quelque chose comme :

  UserParameter=hulk.diskperf[*],iostat -xtc | grep $1 | awk '{print $ $2}'

Note : $ est à la fois utilisé pour passer des arguments à zabbix et à awk, c'est pour ça qu'il est passé deux fois…

Pour utiliser cet Userparameter depuis l'interface web, il faudra lui passer ses arguments, par exemple :

  hulk.diskperf[sd1,4]

Les alertes

Elles se configurent via les déclencheurs de l'hôte (ou modèle).

  1. Allez sur l'hôte (ou modèle)
  2. cliquez sur déclencheur
  3. créer un déclencheur

Donnez lui un nom explicite.

Ne tentez pas de remplir l'expression ( qui dit quand votre déclencheur se déclenche ), préférez le bouton ajouter juste à coté.

Indiquez dans celui ci le nom de l'élément à surveiller, la fonction (condition de déclenchement), la gravité de l'alerte et préciser N. Vous pouvez de plus ajouter des dépendances pour éviter une avalanche de mail en cas de (gros) soucis : ça complique pas mal la lecture…

Maintenant je veux un graphique

Et c'est une bonne idée : ton événement, vraisemblablement personne ne pensera à aller le voir…

Va dans ton hôte (ou modèle) puis ajoute un graphique :

  1. Bouton graphique
  2. Puis créer un graphique

Donne lui encore un nom sexy, et ajoute un élément à représenter (tu peux d'ailleurs en mettre plusieurs).

Et voilà, tu as un beau graphique…

C'est bien beau, mais je vais jamais aller voir tous les graphiques que j'ai créé

Et les développeurs de zabbix ont pensés à toi : ils ont créés des écrans : en bref, plein de graphiques mis cote à cote.

Pour les créer rien de plus simple :

  1. Menu configuration
  2. Sous menu écran
  3. Puis créer un écran (ou en modifier un existant)

Quel que soit ce que vous faites, rien de bien technique ici ^^