Vous êtes sur la page 1sur 14

Outil de monitoring : Zabbix

Mathieu Passenaud 6 mai 2009

Table des matires

1.1 Serveur : packages et 1.2 Client : l'agent . . . 1.2.1 Linux . . . . 1.2.2 Windows . .
Utilisation

Installation

dpendances . . . . . . . . . . . . . . . . . . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

2 2 2 2 3 4 4 4 5 6 7 8 8 9

2.1 Ajout d'un hte . . . . . . . . . . . . . . . . 2.2 Dnition de nouveaux lments . . . . . . 2.2.1 Les cls disponibles . . . . . . . . . . 2.2.2 Exemple 1 : surveillance d'un disque 2.2.3 Exemple 2 : surveillance d'un chier 2.3 Les graphiques . . . . . . . . . . . . . . . . 2.4 Les crans . . . . . . . . . . . . . . . . . . . 2.5 Les Triggers . . . . . . . . . . . . . . . . . . 2.6 Les actions . . . . . . . . . . . . . . . . . . 2.7 La dcouverte . . . . . . . . . . . . . . . . .
Ressources supplmentaires

3.1 Cration d'une nouvelle ressource sur l'agent . 3.1.1 Le programme . . . . . . . . . . . . . . 3.1.2 Dclaration de la ressource . . . . . . . 3.1.3 Les paramtres . . . . . . . . . . . . . . 3.2 Cration de la nouvelle ressource sur le serveur 4.1 Mthode . . . . . . . . . 4.2 Le programme . . . . . 4.2.1 En PERL . . . . 4.2.2 En Visual Basic . 4.3 L'agent Zabbix . . . . . 4.4 Le serveur Zabbix . . .
Taille d'un rpertoire

10

10 10 10 10 10

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

12

12 12 12 12 13 13

Chapitre 1
Installation

Pour un guide d'installation complet, suivre http ://www.synergeek.fr/blog/wp-content/uploads/monitoring.pdf

1.1 Serveur : packages et dpendances


Les packages pour la Debian 5.0 sont disponibles cette adresse : http ://packages.debian.org/stable/net/ Instructions d'installation : http ://debianhelp.co.uk/zabbix Attention, bien intgrer les librairies php pour zabbix-frontend (php-mysql) pour autoriser la connection la base mysql (non inclus dans les dpendances, faire manuellement).

1.2 Client : l'agent


1.2.1 Linux
L'agent peut tre tlcharg sur le web (binaire) que l'on installera et on lancera au dmarrage, ou sinon il est possible d'installer un package (zabbix_agent). Il faut bien ouvrir les ports pour autoriser l'accs aux ressources. Dans le chier /etc/services il faut ajouter les lignes zabbix_agent 10050/tcp et zabbix_trap 10051/tcp (ou un autre port si vous avez choisi d'en utiliser un autre). Le chier de conguration /etc/zabbix/zabbix_agentd.conf doit contenir :  L'adresse IP du serveur auquel se connecter : Server=192.168.1.80  Eventuellement les ports si vous n'utilisez pas ceux par dfaut : ServerPort=10051 et ListenPort=10050  D'autres options sont disponibles (timeout, DebugLevel etc...). Un chier d'exemple est fourni avec le package zabbix_agent.

1.2.2 Windows
Si vous tlchargez le binaire (zabbix_agentd.exe), vous devrez crer votre propre chier de conguration dans C :\ l'aide d'un diteur de texte tel que notepad. Attention bien dbloquer le service dans le parefeu, auquel cas il ne pourra pas communiquer avec le serveur (port sortant ET entrant, 10051 et 10050 par dfaut). Il vous sut juste d'indiquer l'IP du serveur Zabbix (exemple : Server=192.168.1.1).

Chapitre 2
Utilisation

L'utilisation se fait entirement par l'interface web. Pour la dmarrer : http ://<adresse ip>/zabbix

2.1 Ajout d'un hte


Dans la section  conguration , se placer dans  Hosts  puis cliquer sur le bouton  create Host 

Le nom est celui qui va tre utilis dans l'interface d'administration. Les groupes peuvent tre grs, ils sont uniquement prsents pour pouvoir classer les serveurs surveiller. Le nom DNS est celui attribu par le serveur DNS la machine. S'il n'y en a pas, laisser vide et renseigner le champ pour l'adresse IP et bien faire attention au champ suivant ( connect to ) qui va indiquer au serveur quelle mthode utiliser pour se connecter l'hte surveiller (IP ou DNS). Spciez le port si vous en avez choisi un autre. 3

2.2.

DFINITION DE NOUVEAUX LMENTS

CHAPITRE 2.

UTILISATION

 Link with template  vous permet d'attribuer un type l'hte. Par exemple, pour un hte sous Windows 2003 Server, on pourra choisir le template  Template_Windows . Une fois que vous aurez valid, vous aurez l'tat de l'hte ainsi que les ventuelles erreurs.

2.2 Dnition de nouveaux lments


De base, Zabbix propose un ensemble d'lments (charge du processeur, mmoire libre etc...), mais il est possible de crer son propre lment. Dans  Items , vous pourrez d'abord voir chacun des lments pr-congurs pour vous donner une ide de comment ils ont t crs. Chaque lment est cr avec une ou plusieurs cls qui sont disponibles via le protocole snmp ou l'agent Zabbix install sur l'hte.

2.2.1 Les cls disponibles


Lorsque vous crez un Item, vous devez rentrer une cl qui est une fonction qui retournera une valeur au serveur Zabbix. En cliquant sur le bouton  Select , vous accderez la liste des cls ainsi qu' leur description.

2.2.2 Exemple 1 : surveillance d'un disque


Voici un exemple guid pour crer un champ qui nous donnera la taille du disque C :\ (pour n'importe quel serveur) :  Cliquez sur le bouton  Create Item   Donnez lui un nom  Le type : ZABBIX agent puisque l'on rcupre des donnes venant d'un agent Zabbix intall sur un hte  Key : en cliquant sur le bouton  select , vous aurez toutes les fonctions que peuvent fournir les agents Zabbix. Dans l'exemple, on utilisera vfs.fs.size(fs <, mode>). Les paramtres passs seront les suivants :  c :\  et  used . Attention, les fonctions ne sont pas toutes compatibles avec tous les systmes d'exploitation surveills. Des vrications simples indpendantes des agents Zabbix peuvent tre eectues. On y accde en changeant le type (en haut droite) dans la liste des  Items .  Type of information : la fonction nous retourne une valeur en KB. On utilisera un entier long ( integer-64bits ).  Units : l'unit utilise, pour le graphique et l'achage Par dfaut, la valeur retourne est en Kb. Si on la veut en Mb ou en Gb, il sut juste d'indiquer l'unit approprie dans la zone. Zabbix se chargera de la conversion.  Use multiplier : pour multiplier la valeur retourne.  Update interval : le taux de rafrachissement. Attention ne pas trop encombrer le rseau et les machines avec des taux de rafrachissement levs si ceux-ci ne sont pas ncessaires.  Flexible interval : la surveillance peut avoir lieu uniquement certains moments de la journe ou de la semaine.  Keep history : le nombre de jours pendant lesquels les donnes seront conserves.  Keep trends : le nombre de jours pendant lesquels les tendances seront conserves. 4

2.2.

DFINITION DE NOUVEAUX LMENTS

CHAPITRE 2.

UTILISATION

 Store value : la manire de stocker et de trater la donne : brute, dirence par seconde, dirence entre deux changements).  Applications : catgorie du nouvel lment.

2.2.3 Exemple 2 : surveillance d'un chier


Cet exemple est le mme que le prcdent, une dirence prs : nous utiliserons la fonction vfs.le.size[chier].

2.3.

LES GRAPHIQUES

CHAPITRE 2.

UTILISATION

2.3 Les graphiques


Toujours dans la conguration, se placer dans l'outil  Graphs . Il permet de crer un graphique personnalis comportant une ou plusieurs informations. Cliquez sur le bouton  Create graph  pour accder au formulaire de cration. Donnez lui un nom (vocateur) ainsi qu'une dimension.

Paramtrez votre graphique selon vos besoins, puis dans  items , vous ajouterez les champs en cliquant sur le bouton  add .

2.4.

LES CRANS

CHAPITRE 2.

UTILISATION

Dans la liste des  hosts , vous choisirez celui qui vous intresse. En eet, il n'y a pas toujours les mmes fonctionnalits en fonction du type de l'hte. Selectionnez ensuite un champ acher. Pour terminer, paramtrez la couleur et les attribus du trac. Vous pourrez ajouter d'autres champs sur un mme graphique.

2.4 Les crans


Ils vous permettent de paramtrer un achage avec plusieurs lments en aperu. Par la suite, en cliquant sur le graphique, vous aurez accs celui-ci dans sa taille originale. Un cran est une grille de graphiques, compose entirement par l'administrateur. Ouvrez l'outil  Screens  puis cliquez sur le bouton  Create screen . Vous n'aurez qu' lui rentrer un nom (pertinent) et une dimension (en lignes et en colonnes). Ces dimensions pourront tre changes plus tard.

Une fois l'cran cr, vous le verrez apparatre dans la liste. Cliquez sur  edit  dans la colonne  screen  tout droite. Pour chaque case de votre cran, vous pourrez ajouter n'importe quel graphique pour le suivi en rglant son aspect 7

2.5.

LES TRIGGERS

CHAPITRE 2.

UTILISATION

(taille et emplacement). En changeant la  ressource , vous pouvez intgrer une donne d'un autre type (texte, historique etc...).

2.5 Les Triggers


Comme dans les bases de donnes, ils ne se dclenchent que sur un vnement prcis. Zabbix dispose d'un ensemble de triggers dj dnis et il est possible d'en crer d'autres ou de modier les existants. Un trigger est dni par :  son nom  son vnement dclencheur  son parent : le trigger ne se dclenche que si un autre c'est dclench  son niveau de svrit Pour dnir un vnement, dans le formulaire de cration de trigger, dans  Expression  cliquer sur le bouton  Insert . L'expression est compose d'un lment ( Item , cf 2.2) et d'une condition ( Function ) avec une valeur dans la condition ( N ).

2.6 Les actions


Elles sont dclenches sur condition(s), pour palier un ventuel problme ou pour simplement prvenir une personne. Une action est le regroupement :  d'un vnement source dclencheur (trigger ou dcouverte)  d'une ou plusieurs conditions 8

2.7.

LA DCOUVERTE

CHAPITRE 2.

UTILISATION

 de la procdure eectue par l'action (envoi d'un message, commande excuter etc...). Pour envoyer un message, slectionnez l'utilisateur puis prparez le modle de votre message. Pour une commande distante, tapez : <hote> :<commande> ou <groupe>#<commande>.

2.7 La dcouverte
L'outil  discovery  parcours le rseau la recherche d'adresses ayant un port spci d'ouvert (similaire nmap). Il faut donner une plage d'adresses scanner, ainsi que les ports tester et un dlai de renouvellement de l'opration. Cette procdure peut parfois rvler des faiblesses sur certains serveurs qui ont des ports ouverts alors qu'il n'y a aucune raison de les laisser ouverts.

Chapitre 3
Ressources supplmentaires

3.1 Cration d'une nouvelle ressource sur l'agent


3.1.1 Le programme
Peu importe le type de programme, le langage (cela peut mme tre une simple ligne de commande) tant qu'il retourne une valeur (n'importe quel type). Attention cependant veuiller ce que le programme retourne toujours le mme type de donnes.

3.1.2 Dclaration de la ressource


programmeALancer.

Elle doit tre faite dans le chier zabbix_agentd.conf, la n. La ressource est dnie par un nom unique. Attention bien choisir ce nom pour viter toute confusion par la suite. Voii un exemple : UserParameter=nomDeMaRessource, Exemple de zabbix_agentd.conf :
Server=192.168.1.148 UserParameter=smart.hdd[*], C :\TEST_DISK.pl $1

 smart.hdd  correspond au nom de la ressource,  [*]  indique qu'elle prend des paramtres et  C :\TEST_DISK.pl $1  est la commande excuter (o $1 est l'argument numro 1 pass la ressource).

3.1.3 Les paramtres


Sur beaucoup de programmes, on peut leur passer des arguments au lancement. Avec l'agent Zabbix, il est possible de passer les paramtres en statique directement dans la ligne de commande ou des paramtres dynamiques que le serveur va envoyer. Pour dclarer une ressource qui prend des paramtres, il faut ajouter [*] aprs le nom de la ressource. Les valeurs $1, $2, $3... reprsentent les dirents arguments passs. Une fois que vous avez ajout votre nouvelle ressource, vous devez imprativement redmarrer l'agent Zabbix.

3.2 Cration de la nouvelle ressource sur le serveur


Dans la section  conguration  puis dans la partie  Items , choisissez l'hte ou le groupe concern puis crez un nouvel item. Dans la cl, entrez le nom de la ressource que vous avez entr dans le chier zabbix_agentd.conf puis mettez les ventuels arguments. Le reste du paramtrage se fait comme d'habitude.

10

3.2.

CRATION DE LA NOUVELLE RESSOURCE SUR LE SERVEUR CHAPITRE 3.

RESSOURCES SUPPLMENTAIRES

La ressource est maintenant surveille directement par le serveur. Attention la frquence de rafrachissement, elle doit tre adapte puisque le tratement pour l'hte peut parfois tre lourd. Le type est trs important, puisqu'il dni le type de la colonne dans la base de donnes. Il servira aussi pour les divers tratements qui seront eectus avec la valeur, comme par exemple pour les graphiques. Une donne de type texte est beaucoup plus volumineuse stocker, il faut donc au maximum essayer de stocker que les informations pertinentes et variables.

11

Chapitre 4
Taille d'un rpertoire

4.1 Mthode
Il y a une fonctionnalit (vfs.fs.size) qui retourne la taille d'un rpertoire donn, mais uniquement sous Linux. Sous Windows, nous aurons uniquement la taille du disque (ou l'espace libre). Pour avoir juste la taille d'un rpertoire, il faut dnir soit-mme une nouvelle ressource avec un programme personnalis qui retournera la taille d'un rpertoire donn. Il vaut mieux crer un programme qui prendra en argument l'emplacement du rpertoire. Pourquoi ? Cela permettera d'avoir une ressource universelle pour n'importe quel rpertoire de n'importe quelle machine surveille.

4.2 Le programme
4.2.1 En PERL
Je vous propose un programme en PERL retournant la taille d'un rpertoire donn. On peut eectuer cette tche dans peu prs n'importe quel langage de programmation. Il vous faudra le module FileSys-DiskUsage que vous pourrez rcuprer l'adresse : http ://ppm.activestate.com/PPMPackages/zips/10xx-builds-only/Windows/. Tlchargez le bon zip puis dcompressez-le. En ligne de commande, placez vous dans le rpertoire dans lequel vous avez dcompress le module puis tapez la commande ppm install Filesys-DiskUsage.ppd pour installer le module dans PERL. Ensuite, ce petit programme fera l'aaire :
# ! /usr/bin/perl use strict ; use Carp ; use Filesys : :DiskUsage qw/du/ ; my $i=1 ; my $repertoire=$ARGV[0] ; while($i<$#ARGV+1){ #permet de rcuprer tous les arguments et donc les noms avec des espaces $repertoire=$repertoire.' '.$#ARGV[$i] ; $i=$i+1 ; } $size=du($repertoire) ; print $size ; #retourne la valeur en octets

! ! Au nom des rpertoires, le caractre  \  (chappement en programmation) devra tre remplac par le  / .

4.2.2 En Visual Basic


Tir de : http ://www.zabbix.com/forum/showthread.php ?t=11591&highlight=directory+size
Dim oF, oFS, dirsize directory = WScript.Arguments(0) Set objFS = CreateObject("Scripting.FileSystemObject") set oF = oFS.GetFolder(directory) dirsize = oF.Size Set WshShell = CreateObject("wscript.Shell") commandstring="c :\zabbix\zabbix_sender.exe -z ZBX_IP -s HOST_NAME -k tr_dir_size -o " & dirsize

12

4.3.

L'AGENT ZABBIX

CHAPITRE 4.

TAILLE D'UN RPERTOIRE

WshShell.Run commandstring,0 WScript.Quit

4.3 L'agent Zabbix


Il faut ajouter une nouvelle ressource dans l'agent Zabbix pour qu'il puisse excuter le programme et rcuprer la valeur. Dans le chier zabbix_agentd.conf, on ajoutera la ligne suivante : UserParameter=tailleRepertoire[*], C :\taille_repertoire.pl $1 Vous pouvez bien entendu choisir un autre nom pour la ressource ou placer le script perl ailleurs dans l'arborescence. Redmarrez ensuite l'agent pour activer la nouvelle ressource.

4.4 Le serveur Zabbix


Il faut pouvoir rcuprer la ressource dans le serveur, pour cela, allez dans  Conguration ,  Items  puis cliquez sur  Create Item .

Paramtrez ensuite votre item souhait.

13