Présentation de Zabbix
Qu’est-ce que le logiciel Zabbix?

Zabbix est un logiciel qui supervise de nombreux paramètres réseaux ainsi que la santé et l’intégrité des serveurs. Zabbix utilise un mécanisme de notification flexible qui permet aux utilisateurs de configurer une base d’alerte e-mail pour pratiquement tous les événements. Cela permet une réponse rapide aux problèmes serveurs. Zabbix offre un excellent reporting et des fonctionnalités de visualisation de données basées sur les données stockées. Cela rend Zabbix idéal “for capacity planning”.
Zabbix supporte à la fois “polling et trapping”. Tous les rapports et statistiques, comme la configuration de paramètres, sont accessibles par l’interface web. L’interface web veille à ce que le statut de votre réseau et de vos serveurs puisse être évalué depuis n’importe quel endroit. Correctement configuré, Zabbix peux jouer un rôle important dans la supervision de l’infrastructure IT. Ceci est également vrai pour les petites organisations avec peu de serveurs ainsi que pour les grandes entreprises avec une multitude de serveurs.
Zabbix est gratuit. Zabbix est écrit et distribué sous Licence publique générale GNU version 2. Cela signifie que son code source est librement distribué et disponible pour le public. Le support gratuit et commercial est disponible et fourni par Zabbix Company.
Qu’offre Zabbix?
- Découverte automatique des serveurs et périphériques réseaux
- Supervision répartie sur une administration web centralisée
- Support des mécanismes “polling and trapping”
- Logiciels serveurs pour Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X
- Agent haute performance en natif (Logiciel client pour Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X, Tru64/OSF1, Windows NT4.0, Windows 2000, Windows 2003, Windows XP, Windows Vista)
- Supervision sans agent
- Authentification d’agent sécurisée
- Permissions utilisateurs flexibles.
- Interface web
- Notification par e-mail d’événements prédéfinis
- Haut niveau (business) de visualisation des ressources supervisées
- Log d’audit
Pourquoi utiliser Zabbix?
- Solution Open Source
- Grande efficacité des agents pour les plateformes UNIX et WIN32/64
- Faible courbe d’apprentissage
- “High ROI”, les temps d’arrêt son très couteux
- Faible coût de “possession”
- Configuration très simple
- Système de supervision centralisé. Toute l’information (configuration, performance, données) est stockée dans une base de données relationnelle.
- Niveau élevé “service tree”
- Installation facile
- Support du SNMP (v1, V2). Les deux trapping et polling
- Visualisation des capacités
- Procédure de nettoyage intégrée
- Plusieurs organisations de différentes tailles dans le monde comptent sur ZABBIX en tant que plateforme de supervision principale.
Nouveautés de Zabbix 1.8
Nouvelles fonctions et améliorations au niveau du Front End :
Bar des Rapports
Zabbix est facile à utiliser avec ses graphiques simples qui ne nécessitent aucune configuration. Ils sont fournis pour chaque élément numérique.
Nouvelle catégorie de rapport, une bar de rapports qui permet de voir les données sous de nombreux angles différents, si vous voulez regarder la charge du serveur web pour le premier mois de chaque trimestre ? Ou les températures hebdomadaires dans la salle des serveurs pour les deux dernier mois ? Tout cela est possible avec cette nouvelle fonctionnalité.
Support du Full Unicode
Les versions précédentes de zabbix étaient multi-langue amicalement, fournissant des traductions de plusieurs front end, ça n’était pas un encodage mondial, le Unicode n’a pas été entièrement prise en charge.
Zabbix 1.8 supporte maintenant le full Unicode/UTF-8, permettant une configuration réelle localisée ou multilingue.
Amélioration de la navigation du temps.
Une barre de défilement permet facilement de glisser et redimensionner les périodes, les liens sur le côté gauche permettent de choisir certaines périodes prédéfinis, les dates sur le côté droit fonctionnent comme des liens surgissant un calendrier pour spécifié un temps de début et de fin.
Amélioration des graphiques
Les graphes Zabbix ont été améliorés de plusieurs manières. Cela comprend des améliorations à la fois visuelles et fonctionnelles, comme le sélecteur de période, les informations sur Max/Min/Avg sont présentée clairement comme un tableau. L’affichage de l’heure sur l’axe x a été amélioré dans la nouvelle version.
Amélioration au niveau de la modification des Cartes :
Dans les versions précédentes, l’édition des cartes réseau n’était pas facile, les coordonnées de chaque élément sur la carte devaient être spécifiées manuellement. L’édition de la carte de Zabbix 1.8 a été améliorée par l’ajout de l’option glissé déposé, ainsi que les détails de chaque élément s’affichent en pop-up.
La modification des triggers :
L’utilisateur est libre de configurer les conditions et le seuil d’utilisation, ces définitions sont appelées des déclencheurs « triggers ». De plus l’utilisateur peut configurer directement les expressions des déclencheurs à partir de l’interface visuelle.
Nouveaux Filtres :
Zabbix offre plusieurs moyens d’accès aux informations, la version 1.8 offre plus de flexibilité en ajoutant de nouveau filtres :
Le filtre des Items
Les filtres des items permettent de trouver rapidement les entrées de donnée. Zabbix 1.8 permet un filtrage plus détaillé et amélioré pour une meilleure recherche d’éléments.
Le filtre d’Audit :
Zabbix enregistre toutes les opérations dans un journal d’audit, et dans la version 1.8 les journaux peuvent désormais être filtrés pour plus de détails.
Amélioration de configuration des Screen :
Les screen Zabbix permet de grouper plusieurs éléments du front end, y compris les graphiques, les cartes réseau, les données brutes et d’autres.
L’option Drag and Drop a été ajoutée, permet de glisser les éléments dans les cellules approprié.
La recherche globale
Une nouvelle boite de recherche est ajoutée, cela permet de chercher plus facilement les hôtes, les groupes d’hôtes et les templates.
Améliorations pour les grandes installations
Améliorations des performances :
La charge de la supervision d’un grand nombre d’appareil peut engendrer des problèmes au niveau du serveur Zabbix. La version 1.8 apporte de nombreuses améliorations au niveau des performances :
Augmentation des performances au niveau sur serveur Zabbix et le proxy Zabbix :
Zabbix 1.8 a été amélioré pour permettre une collecte supplémentaire de données. Et vu que le proxy échange des informations avec le serveur, des modifications ont été porté à ce stade aussi.
Polling beaucoup plus efficace :
Des centaines de pollers peuvent être exécuté pour plus de parallélisme et de performance. Les pollers ne communiquent pas directement avec la base de donnée et n’utilise que peu la charge CPU et ressources mémoire.
Ajout d’un module de cache de données de configuration
Le cache de la base de données est actif par défaut et ne peut pas être désactivé. L’option de configuration StartDBSyncers a été retiré du serveur Zabbix et les fichiers de configuration proxy.
Un check interne a été ajouté, zabbix[wcache,*] qui permet de superviser la santé du cache.
Les images du front end sont compressées avec pngcrush :
Afin de réduire la quantité de données que les utilisateurs ont à récupérer du serveur web lors de l’utilisation du Zabbix front end, toutes les images PNG ont été compressées pour optimiser la taille.
Les items avec l’index dynamique SNMP utilisent une seule connexion :
Zabbix supporte la surveillance des métriques SNMP avec des identifiant dynamiques.
La résolution d’index et la récupération des données dans la version 1.8 sont effectuée en une seule connexion. Cela réduit la charge réseau et la charge des périphériques surveillés.
Amélioration de la gestion automatisée d’hôte :
Pour les environnements avec une grande ou constante évolution, la reproduction des changements lors de la configuration de Zabbix peut être un défi. Zabbix supporte déjà la découverte automatique du réseau. Et la version 1.8 apporte des améliorations au niveau de cette dernière.
Amélioration de la découverte réseau :
Le support de l’intervalle du port :
Pour les services appropriés, un soutien d’intervalle de port a été ajouté.
Nouvelles opérations d’action :
Basé sur les événements de découverte, deux nouvelles opérations ont été ajoutés, augmentant ainsi les opérations de découverte réseau vers 10.
Support du masque IP
L’industrie de notation standard du masque de réseau peut maintenant être utilisée dans la découverte du réseau.
Support des périphériques multihomed :
Si une hôte fournit plusieurs services sur multiple adresses IP, elle peut être découverte étant plusieurs hôtes sur les anciennes versions du serveur Zabbix.
A partir de la version 1.8, c’est possible d’utiliser de différents critères pour certains services. Par exemple system.uname renvoyé par l’agent Zabbix ou OID renvoyé par une hôte SNMP.
Support du SNMPv3
La découverte du réseau de Zabbix 1.8 supporte SNMPv3 avec toutes ses fonctionnalités.
L’inscription automatique pour les agents actifs :
Il est possible maintenant sur la version 1.8 de permettre à l’agent Zabbix actifs de s’auto-inscrire, puis quel serveur va les surveiller. Cela permet d’ajouter de nouvelle hosts pour un monitoring sans aucune configuration manuelle du serveur.
Cette fonction peut être très utile pour la surveillance automatique des nouveaux nœuds du Cloud. Une fois un nouveau nœud est ajouter, Zabbix va automatiquement démarrer la collecte des données de performances et de disponibilité.
Divers
La maintenance des Hôtes :
L’entretien des hotes et des groups d’hotes a été ajouté à Zabbix.
Les hôtes qui sont en entretien sont indiquées comme telles dans Monitoring -> Triggers view
Si un problème survient lors de l’entretien et n’est pas résolu, la notification est générée après la période d’entretien.
Amélioration du journal d’audit :
Zabbix enregistre tous les login et les changements de configuration de Zabbix dans un journal d’audit.
L’audit au niveau de la version 1.8 est plus optimisé.
Nouvelles macros :
Zabbix fournit des variables très utiles-applés macros- qui sont utiliser dans les noms d’element, les notifications.. Zabbix 1.8 ajoute des nouvelles macros.
Dans les notifications :
Nouvelle macros ajoutés pour les notifications :
- {NODE.*[1..9]}
- {ITEM.LOG.*[1..9]}
- {ITEM.VALUE} and {ITEM.VALUE[1..9]}
- {ITEM.LASTVALUE[1..9]}
- {HOST.CONN[1..9]} {HOST.DNS[1..9]} {IPADDRESS[1..9]}
- {TRIGGER.KEY[1..9]}
- {HOSTNAME[1..9]}
- {ITEM.NAME[1..9]}
- {PROFILE.*[1..9]}
- {EVENT.ACK.STATUS}
- {EVENT.ACK.HISTORY}
- {TRIGGER.EVENTS.UNACK}
Les labels de la carte :
Les labels de carte permettent l’utilisation de macros pratique comme la valeur actuelle de certains éléments.
{TRIGGERS.UNACK}
Le support d’IPv6 pour la surveillance SNMP
En plus des améliorations SNMP pour la découverte du réseau, le support IPv6 a été implémenté pour la surveillance SNMP.
Le support du changement de version de PHP
Zabbix front end est basé sur PHP. Depuis la publication de la dernier version, il Ya eu des changements majeurs au niveau des versions PHP, en conséquence la modification du front end.
Support du PHP 5.3
Sorti le 30/06/2009, PHP 5.3.0 a été supporté par la version 1.8
Support du PHP 4 annuler
La dernier version bugfix été lancé le 03/01/2008 et les dernier correctifs de sécurité le 07/08/2008,PHP4 ne recevait plus de corrections de bug.
Zabbix 1.8 requiert PHP 5.0 ou ultérieure.
Des améliorations mineures
Support de l’authentification de base dans le suivi web
La surveillance Web prend désormais en charge l’authentification http de base.
Nouveaux métriques de supervision
Alors que Zabbix peut être étendu, les contrôles requis demandent moins de ressources et sont plus simple à utiliser. Zabbix 1.8 introduit plusieurs nouveaux contrôles et améliore les anciennes.
Nouveaux items
icmppingloss
net.tcp.dns.query
Les switches CPU compatible Linux
La clé system.cpu.switches peut être utilisée pour les hôtes Linux.
Ajout de services key pour windows
L’ajout du service key pour Windows qui renvoi des statuts particuliers sur les services.
Les éléments ICMP ont de nouveaux paramètres :
Les items Zabbix sont maintenant beaucoup plus souple, les paramètres suivant ont été ajouter a l’item icmpping :
- target – host IP or DNS name;
- count – number of packets;
- interval – time between successive packets in milliseconds;
- size – packet size in bytes;
- timeout – timeout in milliseconds.
Maintenant il est possible d’utiliser les clés comme suivant :
icmpping[10.10.10.10,5,300,128,100]
Ce qui va envoyer cinq paquets de 128 octets à l’hôte avec l’IP 10.10.10.10 avec 300 ms d’intervalle entre eux, et utiliser 100 ms pour le timeout.
Les paramètres ci-dessus ont été ajoutés à l’item icmppingsec :
Mode, one of min, max, avg (le mode par default et l’avg).
SSH et telnet checks
Maintenant SSH et Telnet peut être utilisé directement, sans agent de surveillance. SSH supporte les 2 méthodes d’authentification avec mot de passe et clé d’authentification.
Ce qui rend la surveillance des périphériques réseau à distance très efficace sans l’utilisation de l’agent Zabbix.
Nouveautés de Zabbix 2.0
Nouvelles fonctions et améliorations au niveau du Front End :
Plus de support pour IE6
Le support pour Microsoft Internet Explorer 6 n’est plus fourni.
Amélioration du frontend
Le Frontend est devenu plus convivial, en particulier sur les petits écrans. Amélioration d’une interface à onglet pour les pages a défilement horizontal.
Les pages suivantes ont été refaites :
- Propriété d’hôtes et Template.
- Propriété d’hôtes comprennent aussi une interface de navigation, ce qui permet de naviguer entre les différentes onglets pour éditer les items, ou les triggers, les graphique et d’autres entité.
- Propriétés du proxy
- Propriétés des Actions
Nouveau design du Frontend :
La page de connexion, les tableaux, les couleurs par default des triggers ont changés.
Nouveau icones pour la carte réseau :
Un nouvel ensemble d’icônes réseau est fourni avec zabbix 2.0, et plusieurs d’autre introduites.
Tableau de bord personnalisable :
Les éléments du tableau de bord peuvent maintenant être arrangé d’une façon personnalisé, en les faisant glisser à l’ endroit désiré. Ils peuvent être placés dans 3 colonnes.
Traductions géré par gettext
Les traductions sont maintenant gérées par gettext, cela signifie que les outils standards tels que Pootle, Poedit ou Virtaal peuvent être utilisés pour traduire le front end zabbix. Cela permet également d’amélioré les possibilités de collaboration.
Amélioration de la carte réseau :
Les cartes réseau supportent la gestion des URL. Plusieurs URL pour les éléments de la carte.
Les URLs
Dans les versions précédentes de Zabbix, il été possible d’ajouter un URL pour chaque élément de la carte réseau, maintenant il est devenu possible d’ajouter plusieurs tout en donnant un Label pour chacun des éléments.
Cela peut se faire en deux niveaux :
- Au niveau des éléments de la carte
- Au niveau de la carte
Quand les URL sont configurées, la sélection d’un élément au niveau du monitoring affiche les listes par nom.si un élément est configurer avec ses propres URLs. Le menu sera combiné comme suite :
A partir des Macros déjà existant. La macro {TRIGGER.ID} peut être utilisée.
3 nouvelles macros ont été ajoutées pour le champ URL d’un élément :
- {HOST.ID}
- {HOSTGROUP .ID}
- {MAP.ID}
Modification d’un type de Label par type d’élément d’une carte.
A partir de la version de Zabbix 2.0 il est devenu possible d’activer la configuration avancée des labels et choisir le type : image, trigger, hôte, groupe d’hôtes ou carte.
Le changement de la fenêtre des propriétés d’éléments :
La fenêtre des propriétés des éléments de la carte a été changée.
- Les liens sont visibles que lorsqu’un élément est sélectionné
- La liste des éléments sélectionné et affiché an haut des propriétés
- Lors de modification de plusieurs éléments, les propriétés cochées seront les seules à être modifié.
- Un seul endpoint peut être changé lors de la modification de lien.
Couleurs et nom des triggers personnalisable :
Les noms de sévérité et les couleurs des triggers, sont devenu personnalisable. Administration -> Général -> Triggers severtities.
Affichage des problèmes personnalisable.
La façon dont les triggers sont affiché sur le Frontend peut désormais être personnalisée. Administration -> Général -> Triggers diplaying options.
Rapport d’inventaire :
Capacité de faire un rapport sur l’état des hôtes à partir des données d’inventaire. Monitoring -> Inventory view
Export au format CSV
Les évènements dans Monitoring -> les pages des évènements peuvent maintenant être exportés vers un fichier CSV en utilisant le bouton droit.
Amélioration des scripts utilisateurs.
Confirmation des scripts utilisateur :
Les scripts utilisateur peuvent être configuré sur l’interface d’Administration -> Scripts affiche maintenant un message de confirmation avant d’être exécuté. Un message personnalisé de confirmation peut-être configuré par l’administrateur. Cette fonction et importante pour les opérations critiques tel que le script du reboot ou d’autre qui peuvent prendre beaucoup de temps.
Possibilité de spécifié le type de script :
Avant, si un script utilisateur est une commande IPMI, il fallait utiliser la syntaxe d’IPMI <command>.
A partir de Zabbix 2.0 il existe une option dans le formulaire de script :
Possibilité d’exécution des scripts sur l’agent zabbix :
Avant Zabbix 2.0 les scripts utilisateurs ne pourraient être exécutés que sur le serveur Zabbix, A partir de 2.0, un script peut être configuré pour être exécuté sur l’agent. Pour avoir cette fonction, l’agent doit être configuré pour autoriser les commandes à distance.
Affichage des actions sur les types de media
Dans la page de configuration des média, il est désormais possible de visualiser et d’accéder directement à des actions de type de media.
Nouvelle traductions et mises à jour :
Mise à jour des traductions :
- Hollandaise
- Française
- Allemande
- Japonaise
- Letton
- Russes
Découverte de bas niveau :
Un niveau faible de découverte fournit un moyen de création automatique des items, triggers, et graphs pour différente entités sur un ordinateur. Par exemple, Zabbix peut démarrer automatiquement le suivi des systèmes de fichiers ou des interfaces réseau sur une machine, sans la nécessité de créer des éléments pour chaque item manuellement.
Il existe trois types de découverte d’items supporté par Zabbix 2.0
- Découverte des systèmes de fichiers,
- Découverte des interfaces réseau,
- Découverte de l’OID SNMP.
Le support des hôtes multi-homed
Zabbix prend désormais en charge plusieurs interfaces par hôtes. Il est possible de configurer plusieurs interfaces sur les propriétés de l’hôte. Ainsi préciser ce qui doit être utilisé par default (Zabbix Agent, SNMP et IPMI).la première interface dans la liste et l’interface par default.
Les interfaces configurer ensemble, offre un moyen puissant et souple pour superviser les hôtes multi-homed.
Amélioration et nouveaux items
Amélioration d’items :
La clé system.localtime supporte maintenant ces paramètres :
- UTC (par default)- retourne le timestamp UNIX
- Local – retourne le temp dans le format : ‘yyyy-mm-dd,hh :mm :ss.nn,+hh :mm ‘
Net.tcp.dns et net.tcp.dns.query sont maintenant renommé net.dns et net.dns.record, l’ancienne syntaxe et supporté comme alias.il sont aussi prise en charge sur Windows.
Des fonctionnalités supplémentaires :
Il est maintenant possible de spécifier différents serveur DNS que localhost.
net.tcp.services et net.tcp.services.perf supporte maintenant https et telnet.
Plus de traitement d’anciennes informations dans la surveillance des journaux :
Ajout de la suppression optionnel du traitement des anciens donnée dans les le log[], logrt[] et eventlog[]
Mode de paramètre supplémentaire :
- All (par default)
- Skip (ignorer le traitement des anciennes données.)
Nouvel Items
Vfs.file.contents[] permet de récupérer le contenu complet de chaque test (limiter à 64KB,va retourner une erreur de unsupported if file is bigger).
Les éléments important pour la collecte des données automatisées :
- System.hw.chassis[full|type|vendor|model|serial] – par default c’est [full], les permissions root sont obligatoires.
- System.hw.cpu[all|cpunum,full|maxfreq|vendor|model|curfreq] – par default c’est [all,full]
- System.hw.devices[pci|usb]- par default c’est [pci]
- System.hw.macaddr[interface,short|full]- par default c’est [all,full], l’interface est regex
- System.sw.arch
- System.sw.os[name|short|full] – par default c’est [name]
- System.sw.packages[packages,manager,short|full]- par default c’est [all,all,full],le package est regex.
Création de base de données :
L’ordre d’importation de donnée a changé, les images doivent être importées avant le data.sql.
Amélioration de l’auto-registration de l’active agent
L’auto-registration de l’agent active supporte maintenant la supervision des hôtes aves les passive check. Lorsqu’un agent active demande les check, et si il a comme paramètre de configuration ListenIP ou ListenPort dans le fichier de configuration, les checks sont envoyé au serveur, si de multiple adresse IP sont spécifié, la première adresse et envoyé au serveur.
Lors de l’ajout d’une nouvelle hôte avec auto-registration, le serveur utilise les adresses IP et le port reçu pour configurer l’agent. Si aucune valeur de port n’est reçue, le port 10050 est utilisé, si aucune adresse IP n’est reçue, l’adresse IP des connexions entrantes est utilisée.
De nouveau Macros pour l’auto-registration de l’agent active sont maintenant disponible :
Remplissage automatique des noms DNS
Pour la découverte du réseau et l’auto-enregistrement, les entrées DNS sont maintenant réaliser par des recherches inversées à partir du serveur Zabbix ou le proxy.
Amélioration des Evènements :
Zabbix a amélioré la façon de gérer les évènements. Avant, dans Monitoring -> Events section, si le flux était OK -> Unknown -> OK, cachant les évènements inconnus, l’affichage sera juste des évènements successifs sur OK. A partir de la version 2.0, seule l’ancien évènement de OK sera afficher dans ce cas, un trigger d’exception « Multiple PROBLEM évents » est ajoutée.
Le trigger « INCONNU » est supprimé dans la nouvelle version, les triggers vont toujours afficher OK ou PROBLEM. Le statut INCONNU ne sera utilisé qu’à des fins d’information.
Le support de la surveillance JMX
Capacité d’utiliser JMX sans déployer de nouveau logiciel a été introduite sous la forme d’un proxy Java.
Le support des changements de Macro :
Les Macro commun.
Dans les champs d’interfaces IP et DNS les Macros suivant sont utilisés :
- {HOST.CONN}
- {HOST.D NS}
- {HOSTNAME}
- {IPADDRESS}
Dans les noms des triggers, de nouveau Macro sont supporté :
- {HOST.CONN}
- {HOST.DNS}
- {HOST.IP} ou l’ancienne version {IPADDRESS
Installation Zabbix 1.8
Installation depuis les sources
Prérequis :
La mise à jour est requise à la mise en place d’un composant Zabbix et installation des paquets prérequis:
- apt-get update
- apt-get upgrade
- apt-get install ssh wget man vim build-essential checkinstall
Création de l’utilisateur Zabbix:
L’utilisateur Zabbix sert à exécuter les composants Zabbix (démons), sans avoir recours à l’utilisateur avec des privilèges root, ce qui est plus sécurisé.
- groupadd –g 9000 zabbix
- useradd –u 9000 –g zabbix –d /usr/local/zabbix –c « Zabbix User » zabbix
- passwd zabbix
Téléchargement :
Dans un premier temps, il faut récupérer la derniere version de l’application sur le site (http://www.zabbix.com/download.php) :
Ensuite, on peut lancer l’extraction de l’archive téléchargée :
- tar –zxf zabbix-1.8.7.tar.gz
- cd Zabbix-1.8.7
Préparation de l’environnement Zabbix :
Avant de compiler puis d’installer Zabbix, il faut tout d’abord préparer l’architecture, créer et organiser les dossiers d’installation :
- $ mkdir /usr/local/zabbix
- $ mkdir /usr/local/zabbix/etc
- $ mkdir /usr/local/zabbix/var
- $ mkdir /usr/local/zabbix/var/run
- $ mkdir /usr/local/zabbix/var/log
Serveur Zabbix
Mise en place d’un serveur Zabbix sur un poste serveur.
Prérequis :
L’installation du serveur Zabbix requiert des paquets supplémentaires :
- $ apt-get install libssl-dev libssh-dev libgnutls-dev libopenipmi-dev libiksemel-dev snmp libsnmp-dev libnet-snmp-perl libcurl4-gnutls-dev fping
Puis, il faut ajouter un serveur de base de données :
- $ apt-get install mysql-server libmysqlclient15-dev
Création de la base de données:
- $ mysql -u root -p
- > create database zabbix character set utf8;
- > grant all privileges on zabbix.* to zabbix@localhost identified by ‘zabbix’;
- > exit
- $ mysql -u zabbix -p zabbix < /…/zabbix-1.8.7/create/schema/mysql.sql
- $ mysql -u zabbix -p zabbix < /…/zabbix-1.8.7/create/data/images_mysql.sql
- $ mysql -u zabbix -p zabbix < /…/zabbix-1.8.7/create/data/data.sql
Installation
Maintenant, dans notre dossier Zabbix-1.8.7, nous pouvons lancer l’installation avec prise en charge du SNMP, de l’IPMI, de jabber, et de CURL.
- $ ./configure –enable-server –with-mysql –with-net-snmp –with-libcurl –with-openipmi –with-jabber –prefix=/usr/local/zabbix
Une fois la compilation terminée (sans erreur), un résumé de la configuration doit alors s’afficher dans le terminal, afin de vérifier les paramètres avant l’installation :
Configuration:
Detected OS: linux-gnu
Install path: /usr/local/zabbix
Compilation arch: linux
…
Enable server: yes
With database: MySQL
WEB Monitoring via: cURL
Native Jabber: yes
SNMP: net-snmp
IPMI: openipmi
…
Ensuite, on peut installer Zabbix Server :
A ce stade, s’il n’y a eu aucune erreur, Zabbix Server est installé dans le dossier /usr/local/zabbix. Pour vérifier :
Les répertoires sbin et share doivent etre présents en plus de ceux déjà créés auparavant. Pour terminer l’installation, il reste à copier quelques fichiers dans le dossier zabbix depuis notre répertoire extrait, à savoir zabbix-1.8.7 :
- $ cp /../zabbix-1.8.7/misc/conf/zabbix_server.conf /usr/local/zabbix/etc
Il ne reste plus qu’à acréer un script init.d pour pouvoir démarrer/stopper Zabbix Server :
- $ vim /etc/init.d/zabbix-server
Le contenu du script :
#!/bin/sh -e
# Zabbix Server init.d script.
PATH= »/bin:/sbin:/usr/bin:/usr/sbin »
CONF_NAME=zabbix_server.conf
CONF=/usr/local/zabbix/etc/$CONF_NAME
DAEMON_NAME=zabbix_server
DAEMON=/usr/local/zabbix/sbin/$DAEMON_NAME
DAEMON_ARGS= »-c $CONF »
SCRIPT_NAME=zabbix-server
SCRIPT=/etc/init.d/$SCRIPT_NAME
DESC= »$DAEMON_NAME init.d script »
PID=/usr/local/zabbix/var/run/$DAEMON_NAME.pid
test -e $DAEMON || exit 0
. /lib/lsb/init-functions
zabbix_start () {
log_daemon_msg « Starting $DAEMON_NAME »
start-stop-daemon –start –pidfile $PID \
–exec $DAEMON — $DAEMON_ARGS
log_end_msg $?
}
zabbix_stop () {
log_daemon_msg « Stopping $DAEMON_NAME »
start-stop-daemon –stop –pidfile $PID –name $DAEMON_NAME
log_end_msg $?
}
case « $1 » in
start|stop)
zabbix_${1}
;;
restart)
zabbix_stop
sleep 2
zabbix_start
;;
force-stop)
log_daemon_msg « Stopping $DAEMON_NAME »
if [ -e $PID ]; then
killall -q $DAEMON_NAME
if [ -e $PID ]; then
rm -R $PID
fi
log_end_msg $?
else
echo « No $PID found; none $DAEMON_NAME killed. »
fi
;;
status)
log_daemon_msg « Checking $DAEMON_NAME status »
if [ -e $PID ]; then
echo « Status: $DAEMON_NAME is running. »
else
echo « Status: $DAEMON_NAME is not running. »
fi
;;
*)
log_daemon_msg $DESC
echo « Usage: $SCRIPT {start/stop/restart/force-stop/status} »
exit 1
;;
esac
exit 0
Ajouter le droit d’exécution au script :
- $ chmod +x /etc/init.d/zabbix-server
Appliquer les bons droits et permissions sur le fichier de configuration de Zabbix Server. L’utilisateur Zabbix sera le propriétaire de toute l’architecture d’installation de Zabbix :
- $ chmod 640 /usr/local/zabbix/etc/zabbix_server.conf
- $ chown -R zabbix:zabbix /usr/local/zabbix*
Configuration
La configuration du serveur se fait par l’intermédiaire du fichier de configuration zabbix_server.conf :
- $ vim /usr/local/zabbix/etc/zabbix_server.conf
Dans ce fichier, il faut renseigner les paramètres nécessaires au bon fonctionnement de notre solution Zabbix Server.
Il faut renseigner les chemins d’accès aux fichiers pid et logs nécessaires au démarrage du serveur Zabbix.
LogFile=/usr/local/zabbix/var/log/zabbix_server.log
PidFile=/usr/local/zabbix/var/run/zabbix_server.pid
Ensuite, faut indiquer les paramètres de la base de données créée auparavant :
DBName=zabbixdb
DBUser=zabbix
DBPassword=zabbix
DBSocket=/var/run/mysqld/mysqld.sock
Démarrage de Zabbix Server
Pour démarrer Zabbix, il faut utiliser de préférence le script init.d.
- $ /etc/init.d/zabbix-server start
Zabbix Frontend
L’installation du Zabbix Frontend sur la même machine que Zabbix Server.
Prérequis
Il faut installer les paquets suivants :
- $ apt-get install apache2 php5 php5-gd
En fonction du serveur de base de données utilisé, il faut installer un paquet de support PHP correspondant. Dans notre cas c’est le mysql :
- $ apt-get install php5-mysql
Installation
Préparation de l’environnement Zabbix Frontend :
- $ mkdir /usr/local/zabbix/frontend
- $ cp -R /…/zabbix-1.8.7/frontends/php/* /usr/local/zabbix/frontend
La suite de l’installation de Zabbix Front end se fait sur le navigateur internet, à savoir Apache pour pouvoir accédé au frontend :
- $ vim /etc/apache2/sites-enabled/000-default
Faut ajouter le contenu suivant :
Alias /zabbix /usr/local/zabbix/frontend/
<Directory /usr/local/zabbix/frontend>
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS PROPFIND>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS PROPFIND>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
Démarrer le serveur Apache :
- $ /etc/init.d/apache2 restart
L’installation depuis le navigateur internet :
Faut entrer l’adresse ip du serveur où Zabbix Frontend est installé : http://IP/zabbix/


En cas d’échec de validation des prérequis, il suffit juste de configurer quelque paramètres dans le fichier php.ini :
- $ vim /etc/php5/apache2/php.ini
Voici les champs à éditer dans le fichier php.ini :
max_execution_time = 600
max_input_time = 600
memory_limit = 256M
post_max_size = 32M
upload_max_filesize = 16M
date.timezone = “Europe/Paris”
Ensuite, il faut relancer le serveur Apache :
- $ /etc/init.d/apache2 restart
En réessayant de tester les prérequis (Retry), l’étape dois être à présent validée :

L’étape suivante, faut renseigner les paramètres de connexion de la base de données créée durant l’installation de Zabbix Server. Une fois le test de connexion réussi, on peut valider cette partie en cliquant sur Next.

La page suivante de l’installation concerne les paramètres du serveur Zabbix, à savoir le nom DNS ou l’adresse IP, par default c’est localhost. Faut aussi indiquer le port utilisé par Zabbix 10051 :

un sommaire de la configuration est afficher après:

Puis un résumé de l’installation de Zabbix Frontend est affiché, afin de vérifier une dernière fois les paramètres entrés.

Pour finir, la dernière étape concerne le fichier de configuration généré par notre installation de Zabbix Frontend, cette étape se fait automatiquement. Mais comme nous avions spécifié un chemin d’installation différent de celui par default, à savoir /usr/local/zabbix/frontend, il faut donc, après l’avoir téléchargé, copier manuellement le fichier de configuration généré par le Zabbix Frontend dans le dossier d’installation :
- $ cp /…/zabbix.conf.php /usr/local/zabbix/frontend/conf
Faut vérifier ensuite que le fichier de configuration est bien détecté en cliquant Retry.

Une fois l’installation terminée, le navigateur internet redirige automatiquement sur la page de login de l’interface Zabbix :

Il faut s’authentifier par l’utilisateur Admin avec le mot de passe zabbix.
Pour terminer, on applique les bon droits et permissions sur toute l’architecture d’installation Zabbix a notre utilisateur Zabbix :
- $ chown -R zabbix:zabbix /usr/local/zabbix*
L’installation de Zabbix Frontend est maintenant terminée.
Zabbix Proxy
L’installation de Zabbix Proxy sur un serveur dédié.
Prérequis
Les paquets à installer :
- $ apt-get install libssl-dev libssh-dev libgnutls-dev libopenipmi-dev libiksemel-dev snmp libsnmp-dev libnet-snmp-perl libcurl4-gnutls-dev
Il faut ensuite ajouter le serveur de base de données :
- $ apt-get install mysql-server libmysqlclient15-dev
Création de la base de données
- $ mysql -u root -p
- > create database zabbix character set utf8;
- > grant all privileges on zabbix.* to zabbix@localhost identified by ‘zabbix’;
- > exit
- $ mysql -u zabbix -p zabbix < /…/zabbix-1.8.7/create/schema/mysql.sql
- $ mysql -u zabbix -p zabbix< /…/zabbix-1.8.7/create/data/images_mysql.sql
- $ mysql -u zabbix -p zabbix< /…/zabbix-1.8.7/create/data/data.sql
Installation
- $ ./configure –enable-proxy –with-mysql –with-net-snmp –with-libcurl –with-openipmi –with-jabber –prefix=/usr/local/zabbix
- $ sudo make install
A ce stade, s’il n’y a eu aucune erreur, Zabbix Proxy est installé dans le dossier /usr/local/Zabbix. Pour vérifier :
Les répertoires sbin et share doivent être présents en plus de ceux déjà créés auparavant. Pour terminer l’installation, il reste à copier quelques fichiers dans notre dossier Zabbix depuis le répertoire extrait :
- $ cp /…/zabbix-1.8.7/misc/conf/zabbix_proxy.conf /usr/local/zabbix/etc
Et enfin, il n’y a plus qu’à créer un script init.d pour pouvoir démarré/arrêté Zabbix Proxy :
- $ vim /etc/init.d/zabbix-proxy
Le contenu du script est le même que pour le script init.d du Zabbix Server, il n’a a qu’à modifier les variables pour l’adapter à l’installation du proxy :
#!/bin/sh -e
#
# Zabbix Proxy init.d script.
#
PATH= »/bin:/sbin:/usr/bin:/usr/sbin »
CONF_NAME=zabbix_proxy.conf
CONF=/usr/local/zabbix/etc/$CONF_NAME
DAEMON_NAME=zabbix_proxy
DAEMON=/usr/local/zabbix/sbin/$DAEMON_NAME
DAEMON_ARGS= »-c $CONF »
SCRIPT_NAME=zabbix-proxy
SCRIPT=/etc/init.d/$SCRIPT_NAME
DESC= »$DAEMON_NAME init.d script »
PID=/usr/local/zabbix/var/run/$DAEMON_NAME.pid
…
Ajouter le droit d’exécution au script :
- $ chmod +x /etc/init.d/zabbix-proxy
Appliquer les bons droits et permissions sur le fichier de configuration de Zabbix Proxy ( ce qui permet de protéger l’accés à ce fichier, le mot de passe d’accès de la base de données apparaissant notamment en clair dans ce dernier). Placer l’utilisateur Zabbix comme propriétaire de toute l’architecture d’installation de zabbix :
- $ chmod 700 /usr/local/zabbix/etc/zabbix_proxy.conf
- $ chown -R zabbix:zabbix /usr/local/zabbix*
Configuration
Zabbix Proxy se configure de la même manière que les autres composants Zabbix, c’est-à-dire en éditant le fichier de configuration lui correspondant, à savoir Zabbix_proxy.conf :
- $ vim /usr/local/zabbix/etc/zabbix_proxy.conf
Il faut préciser les répertoires que le Proxy doit utiliser pour ses fichiers de logs et de pid :
LogFile=/usr/local/zabbix/var/log/zabbix_proxy.log
PidFile=/usr/local/zabbix/var/run/zabbix_proxy.pid
Sur ce fichier, le proxy fonctionnant d’une certaine manière comme un agent, il faut lui indiquer l’adresse ip du serveur Zabbix auquel il doit transmettre ses données :
Server=127.0.0.1
Il est également important de remplir le champ du Hostname, ce dernier est nécessaire pour le serveur Zabbix lors des « actives checks » :
Hostname=Proxy
Il reste à renseigner les paramètres de la base de données :
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBSocket=/var/run/mysqld/mysqld.sock
L’Agent Zabbix:
Sur Debian
L’installation de l’agent Zabbix peut se faire aussi bien sur un serveur Zabbix ou le proxy Zabbix que sur une simple hôte à surveiller.
Installation
On lance l’installation à partir du dossier extrait zabbix-1.8.7 :
- $ ./configure –enable-agent –prefix=/usr/local/zabbix
- $ make install
Lorsque l’installation de l’agent est finie, il faut copier les fichiers de configuration de Zabbix Agent dans le répertoire d’installation :
- $ cp /…/zabbix-1.8.7/misc/conf/zabbix_agentd.conf /usr/local/zabbix/etc
Pour simplifier la gestion du démon zabbix_agentd présent dans le répertoire /usr/local/zabbix/sbin, faut créer le script init.d suivant :
- $ vim /etc/init.d/zabbix-agentd
Le contenu du script est le même que pour le script init.d du Zabbix server, il n’y a qu’à modifier les variables pour l’adapter à l’installation de l’agent :
#!/bin/sh -e
#
# Zabbix Agent init.d script.
#
#
PATH= »/bin:/sbin:/usr/bin:/usr/sbin »
CONF_NAME=zabbix_agentd.conf
CONF=/usr/local/zabbix/etc/$CONF_NAME
DAEMON_NAME=zabbix_agentd
DAEMON=/usr/local/zabbix/sbin/$DAEMON_NAME
DAEMON_ARGS= »-c $CONF »
SCRIPT_NAME=zabbix-agentd
SCRIPT=/etc/init.d/$SCRIPT_NAME
DESC= »$DAEMON_NAME init.d script »
PID=/usr/local/zabbix/var/run/$DAEMON_NAME.pid
…
Ajouter le droit d’exécution au script :
- $ chmod +x /etc/init.d/zabbix-agentd
Pour terminer, faut appliquer les bons droits et permissions sur toute l’architecture d’installation de Zabbix, a l’utilisateur zabbix , avec une limitation d’accès au fichier de configuration :
- $ chmod 400 /usr/local/zabbix/etc/zabbix_agentd.conf
- $ chown -R zabbix:zabbix /usr/local/zabbix*
Configuration
Pour configure l’agent Zabbix, il suffit d’éditer un seul fichier :
- $ vim /usr/local/zabbix/etc/zabbix_agentd.conf
Faut préciser les répertoires que l’agent doit utiliser pour ses fichiers de logs et de pid :
LogFile=/usr/local/zabbix/var/log/zabbix_agentd.log
PidFile=/usr/local/zabbix/var/run/zabbix_agentd.pid
Renseigner l’adresse IP du serveur Zabbix afin de permettre à l’agent d’envoyé ses informations:
Server=10.0.0.144(Adresse IP du Serveur ZABBIX)
Note : dans le cadre d’utilisation d’un Proxy Zabbix, il faut indiquer l’adresse IP du proxy au lieu de celle du serveur Zabbix.
Il faut remplir le champ du Hostname pour les actives checks :
Hostname=Serveur Debian
Windows
Installation
Pour l’installation d’un agent Zabbix sur un système Windows, il faut premièrement télécharger l’agent sur le site officiel de Zabbix.
Faut extraire l’archive téléchargée et créer un fichier de texte de configuration pour l’agent, intitulé « zabbix_agentd.conf » et le placer à la racine ( C:\zabbix_agentd.conf).
Dans le fichier c:\zabbix_agentd.conf, il suffit de copier le contenu du même fichier de la version Linux.
Il reste qu’à installer l’agent. Pour cela, dans le dossier décompressé, il y a un fichier « zabbix_agentd.exe ».
Pour l’installer, il ne suffit pas de double-cliquer dessus, il faut ouvrir une invite de commande (cmd). Une fois le terminal ouvert :
- >Cd \…\zabbix_agents_1.8.7\win64
- >zabbix_agentd.exe –Install
Configuration
La configuration de l’agent Zabbix sur Windows est la même sur Linux.
References:
www.zabbix.com