Gentoo - Calculate : Installer et configurer la supervision Zabbix
Table des matières
ZABBIX est un logiciel permettant de surveiller l'état de divers services réseau, serveurs et autres matériels réseau.
Dans un premier temps, il est nécessaire d'installer apache, php et mariadb.
Se référer à l'article https://www.linuxtricks.fr/wiki/gentoo-calculate-installer-apache-mariadb-php-lamp
Vérifier que le système est à jour.
Pour PHP, ajouter au passage les FLAG : gd sysvipc bcmath xmlreader xmlwriter sockets
On simule l'installation de Zabbix :
On a un avertissement :
Donc, on va ajouter quelques FLAG intéressants et surtout retirer postgresql car j'utilise mariadb :
On a besoin aussi du suid sur fping :
On installe Zabbix
En cas de conflits (module PHP non actif, je vous laisse gérer)
On ajoute les derniers correctifs :
Enfin, on envoie la sauce :
On se connecte à mysql en root, et on créé la base zabbix :
On peut aussi créer un utilisateur de base de données pour zabbix (ici, je créé l'utilisateur zabbix, ayant tous les droits sur la base zabbix, pouvant se connecter uniquement en local avec comme mot de passe zabbix (adaptez évidemment, ce n'est pas l'idéal) :
Ensuite, on importe les structures et données de la base mysql :
On copie avec webapp-config les fichiers de l'interface web dans /var/www/localhost/htdocs/zabbix grâce à cette commande :
Par exemple
On n'oublie pas d'affecter les droits à apache du dossier zabbix :
Et les doits à l'utiisateur Zabbix pour ses fichiers de config et de log :
On vérifie les identifiants MySQL (créé précédemment) dans le fichier de config du serveur : /etc/zabbix/zabbix_server.conf
On vérifie l'adresse du serveur zabbix dans le fichier de config de l'agent : /etc/zabbix/zabbix_agentd.conf
On démarre les agents et serveurs :
Puis, on ajoute les services au démarrage du serveur :
On se rend sur la page web du serveur : http://ip_du_serveur/zabbix/ et on arrive sur cette page :
On clique sur Next>>
On observe quelques messages d'erreur, on corrige donc dans les fichiers les valeurs mentionnées par la page :
Voici les commandes Oneliner PHP 5.5 :
Ou PHP 5.6
On recharge la config d'apache puis on clique sur Refresh
Si tout est bon, on clique sur Next>>>
On rempli les infos qui vont bien, on teste la connexion puis Next>>>
On mets les infos correspondant au serveur (par défaut, c'est bon) puis on clique sur Next>>>
Sur l'écran qui vient on a un récap de la configuration à appliquer, on valide en cliquant sur Next>>>
On a un aperçu que le fichier s'est bien écrit :
On arrive sur cette mire :
Et on est connecté ! Youpiii !!
Pour installer l'agent sur d'autres Calculate Linux ou Gentoo, rien de plus simple, on place le USE "agent" uniquement dans le packages.use
Et on installe Zabbix :
On n'oublie pas de démarrer le service
Et de l'ajouter au démarrage
On peut si on le souhaite faire des variables personnalisées remontées par l'agent Zabbix.
Pour cela, on modifie le fichier de l'agent : /etc/zabbix/zabbix_agentd.conf
Voici un exemple ici avec 3 valeurs personnalisées qui remontent les températures des disques et des CPU :
De manière générale, la ligne doit être composée ainsi :
Il suffit une fois fait de relancer le service de l'agent :
Ensuite dans Zabbix, il suffit de créer un élément (Item), de Type : "Zabbix Agent", la clé, celle mise dans le fichier précédemment, et évidemment de sélectionner le bon type d'information et type de données.
On peut générer un graphe avec les informations précédemment remplies :
Introduction
ZABBIX est un logiciel permettant de surveiller l'état de divers services réseau, serveurs et autres matériels réseau.
Installer Zabbix
Prérequis
Dans un premier temps, il est nécessaire d'installer apache, php et mariadb.
Se référer à l'article https://www.linuxtricks.fr/wiki/gentoo-calculate-installer-apache-mariadb-php-lamp
Vérifier que le système est à jour.
Pour PHP, ajouter au passage les FLAG : gd sysvipc bcmath xmlreader xmlwriter sockets
Code BASH :
echo "dev-lang/php apache2 gd mysql mysqli pdo cgi pam ssl xml sysvipc bcmath xmlreader xmlwriter sockets" >> /etc/portage/package.use/custom
Zabbix serveur et interface PHP
On simule l'installation de Zabbix :
Code BASH :
emerge -pv zabbix
Code BASH :
Calculating dependencies... done! [ebuild N ] net-analyzer/zabbix-4.4.0-r1 USE="agent frontend ipv6 mysql postgres server snmp ssl -curl -java -ldap -libxml2 -odbc -openipmi -oracle -proxy -sqlite -ssh -static" 13,329 kB
On a un avertissement :
Code BASH :
The following REQUIRED_USE flag constraints are unsatisfied: server? ( exactly-one-of ( mysql oracle postgres odbc ) )
Donc, on va ajouter quelques FLAG intéressants et surtout retirer postgresql car j'utilise mariadb :
- agent : pour monitorer le serveur lui même
- frontend : pour avoir l'interface web en PHP
- ipv6 : pour supporter l'ipv6
- mysql : la base de données mariadb pour stocker les informations.
- -postgres : la base de données pour stocker les informations.
- server : pour avoir les composants du serveur zabbix
- snmp : pour avoir les modules SNMP qui vont bien
- ssl : pour avoir le support des connexions SSL/TLS
Code BASH :
echo "net-analyzer/zabbix agent frontend ipv6 mysql -postgres server snmp ssl" >> /etc/portage/package.use/custom
On a besoin aussi du suid sur fping :
Code BASH :
echo "net-analyzer/fping suid" >> /etc/portage/package.use/custom
On installe Zabbix
Code BASH :
emerge -av zabbix
Code BASH :
alculating dependencies... done! [ebuild N ] net-analyzer/fping-3.13::gentoo USE="ipv6 suid" 153 KiB [ebuild N ] net-analyzer/net-snmp-5.8-r3:0/35::gentoo USE="bzip2 ipv6 python ssl tcpd zlib -X -doc -elf -kmem -libressl -lm-sensors -mfd-rewrites -minimal -mysql -netlink -pci -perl -rpm (-selinux) -smux -ucd-compat" PYTHON_SINGLE_TARGET="python2_7" 6 441 KiB [ebuild N ] media-libs/gd-2.2.5-r2:2/3::gentoo USE="png zlib -fontconfig -jpeg -static-libs -test -tiff -truetype -webp -xpm" ABI_X86="(64) -32 (-x32)" CPU_FLAGS_X86="sse" 2 534 KiB [ebuild N ] net-analyzer/zabbix-4.4.0-r1::gentoo USE="agent frontend ipv6 mysql server snmp ssl -curl -java -ldap -libxml2 -odbc -openipmi -oracle -postgres -proxy -sqlite -ssh -static" 20 205 KiB
En cas de conflits (module PHP non actif, je vous laisse gérer)
On ajoute les derniers correctifs :
Code BASH :
echo "media-libs/gd png" >> /etc/portage/package.use/custom
Enfin, on envoie la sauce :
Code BASH :
emerge -qv zabbix
Configuration des services Zabbix
Base de données
On se connecte à mysql en root, et on créé la base zabbix :
Code BASH :
mysql -u root
Code SQL :
CREATE DATABASE zabbix;
On peut aussi créer un utilisateur de base de données pour zabbix (ici, je créé l'utilisateur zabbix, ayant tous les droits sur la base zabbix, pouvant se connecter uniquement en local avec comme mot de passe zabbix (adaptez évidemment, ce n'est pas l'idéal) :
Code SQL :
GRANT ALL PRIVILEGES ON zabbix. * TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ; exit;
Ensuite, on importe les structures et données de la base mysql :
Code BASH :
cd /usr/share/zabbix/database/mysql mysql -u zabbix -p zabbix < schema.sql mysql -u zabbix -p zabbix < images.sql mysql -u zabbix -p zabbix < data.sql
Interface PHP
On copie avec webapp-config les fichiers de l'interface web dans /var/www/localhost/htdocs/zabbix grâce à cette commande :
Code BASH :
webapp-config -d zabbix -I zabbix $version
Par exemple
Code BASH :
webapp-config -d zabbix -I zabbix 4.4.0-r1
On n'oublie pas d'affecter les droits à apache du dossier zabbix :
Code BASH :
chown -R apache /var/www/localhost/htdocs/zabbix
Et les doits à l'utiisateur Zabbix pour ses fichiers de config et de log :
Code BASH :
chown -R zabbix:zabbix /etc/zabbix chown -R zabbix:zabbix /var/log/zabbix
Configuration du serveur zabbix
On vérifie les identifiants MySQL (créé précédemment) dans le fichier de config du serveur : /etc/zabbix/zabbix_server.conf
Code BASH :
DBName=zabbix DBUser=zabbix DBPassword=zabbix
Configuration de l'agent zabbix
On vérifie l'adresse du serveur zabbix dans le fichier de config de l'agent : /etc/zabbix/zabbix_agentd.conf
Code BASH :
Server=127.0.0.1
Démarrage des services
On démarre les agents et serveurs :
Code BASH :
/etc/init.d/zabbix-server start /etc/init.d/zabbix-agentd start
Puis, on ajoute les services au démarrage du serveur :
Code BASH :
rc-update add zabbix-agentd default rc-update add zabbix-server default
Création de fichier de configuration de zabbix web
On se rend sur la page web du serveur : http://ip_du_serveur/zabbix/ et on arrive sur cette page :
On clique sur Next>>
On observe quelques messages d'erreur, on corrige donc dans les fichiers les valeurs mentionnées par la page :
Voici les commandes Oneliner PHP 5.5 :
Code BASH :
sed -e 's/post_max_size = 8M/post_max_size = 16M/g' -i /etc/php/apache2-php5.5/php.ini sed -e 's/max_execution_time = 30/max_execution_time = 300/g' -i /etc/php/apache2-php5.5/php.ini sed -e 's/max_input_time = 60/max_input_time = 300/g' -i /etc/php/apache2-php5.5/php.ini sed -e 's/;date.timezone =/date.timezone = "Europe\/Paris"/g' -i /etc/php/apache2-php5.5/php.ini
Ou PHP 5.6
Code BASH :
sed -e 's/post_max_size = 8M/post_max_size = 16M/g' -i /etc/php/apache2-php5.6/php.ini sed -e 's/max_execution_time = 30/max_execution_time = 300/g' -i /etc/php/apache2-php5.6/php.ini sed -e 's/max_input_time = 60/max_input_time = 300/g' -i /etc/php/apache2-php5.6/php.ini sed -e 's/;date.timezone =/date.timezone = "Europe\/Paris"/g' -i /etc/php/apache2-php5.6/php.ini
On recharge la config d'apache puis on clique sur Refresh
Code BASH :
/etc/init.d/apache2 reload
Si tout est bon, on clique sur Next>>>
On rempli les infos qui vont bien, on teste la connexion puis Next>>>
On mets les infos correspondant au serveur (par défaut, c'est bon) puis on clique sur Next>>>
Sur l'écran qui vient on a un récap de la configuration à appliquer, on valide en cliquant sur Next>>>
On a un aperçu que le fichier s'est bien écrit :
La connexion tataaaaa !!!!!!
On arrive sur cette mire :
Et on est connecté ! Youpiii !!
Installer l'agent
Pour installer l'agent sur d'autres Calculate Linux ou Gentoo, rien de plus simple, on place le USE "agent" uniquement dans le packages.use
Code BASH :
echo "net-analyzer/zabbix agent -*" >> /etc/portage/package.use/custom
Et on installe Zabbix :
Code BASH :
emerge -av net-analyzer/zabbix
On n'oublie pas de démarrer le service
Code BASH :
/etc/init.d/zabbix-agentd start
Et de l'ajouter au démarrage
Code BASH :
rc-update add zabbix-agentd
Créer des variables personnalisées
On peut si on le souhaite faire des variables personnalisées remontées par l'agent Zabbix.
Pour cela, on modifie le fichier de l'agent : /etc/zabbix/zabbix_agentd.conf
Voici un exemple ici avec 3 valeurs personnalisées qui remontent les températures des disques et des CPU :
Code BASH :
UserParameter=hdd.tempa,sudo smartctl -a /dev/sda | grep Temperature_Celsius | awk '{ print $10 ; }' UserParameter=cpu.tempa,sensors -u | grep -Eo 'temp2_input: ([0-9])+' | sed -e 's/temp2_input: //' UserParameter=cpu.tempb,sensors -u | grep -Eo 'temp3_input: ([0-9])+' | sed -e 's/temp3_input: //'
De manière générale, la ligne doit être composée ainsi :
Code BASH :
UserParameter=cle,commande
Il suffit une fois fait de relancer le service de l'agent :
Code BASH :
/etc/init.d/zabbix-agentd restart
Ensuite dans Zabbix, il suffit de créer un élément (Item), de Type : "Zabbix Agent", la clé, celle mise dans le fichier précédemment, et évidemment de sélectionner le bon type d'information et type de données.
On peut générer un graphe avec les informations précédemment remplies :