Paramétrage

De Wiki de Jordan LE NUFF
Sauter à la navigation Sauter à la recherche

Présentation

Cette section a pour objet de décrire comment paramétrer l'outil Zabbix.

Paramétrage système

Gestion des services Zabbix

Serveur

Démarrer le service du serveur Zabbix :

systemctl start zabbix-server.service

Arrêter le service du serveur Zabbix :

systemctl stop zabbix-server.service

Redémarrer le service du serveur Zabbix :

systemctl restart zabbix-server.service

Afficher l'état du service du serveur Zabbix :

systemctl status zabbix-server.service

Activer le démarrage du service du serveur Zabbix au démarrage de la machine :

systemctl enable zabbix-server.service

Désactiver le démarrage du service du serveur Zabbix au démarrage de la machine :

systemctl disable zabbix-server.service

Agent

Démarrer le service de l'agent Zabbix :

systemctl start zabbix-agent.service

Arrêter le service de l'agent Zabbix :

systemctl stop zabbix-agent.service

Redémarrer le service de l'agent Zabbix :

systemctl restart zabbix-agent.service

Afficher l'état du service de l'agent Zabbix :

systemctl status zabbix-agent.service

Activer le démarrage du service de l'agent Zabbix au démarrage de la machine :

systemctl enable zabbix-agent.service

Désactiver le démarrage du service de l'agent Zabbix au démarrage de la machine :

systemctl disable zabbix-agent.service

Passerelle Java

Démarrer le service de la passerelle Java de Zabbix :

systemctl start zabbix-java-gateway.service

Arrêter le service de la passerelle Java de Zabbix :

systemctl stop zabbix-java-gateway.service

Redémarrer le service de la passerelle Java de Zabbix :

systemctl restart zabbix-java-gateway.service

Afficher l'état du service de la passerelle Java de Zabbix :

systemctl status zabbix-java-gateway.service

Activer le démarrage du service de la passerelle Java de Zabbix au démarrage de la machine :

systemctl enable zabbix-java-gateway.service

Désactiver le démarrage du service de la passerelle Java de Zabbix au démarrage de la machine :

systemctl disable zabbix-java-gateway.service

Paramétrage applicatif

Informations interface utilisateur

Se rendre à l'URL sur laquelle est publié Zabbix :

Zabbix - Welcome

Cliquer sur Next step.

Zabbix réalise une vérification des prérequis et affiche le résultat.

Zabbix - Prérequis KO
  • En cas de prérequis manquant, apporter la correction et se rendre à nouveau sur la page d'accueil de Zabbix
  • Dans le cas présent, les corrections apportées sont les suivantes :
    • Dans le fichier /local/php/php7/lib/php.ini, définition du paramètre date.timezone = "Europe/Paris"
    • Dans le fichier /local/php/php7/etc/php-fpm.d/zabbix.conf, définition des paramètres dédiés suivants :
      • php_admin_value[memory_limit] = 128M
      • php_admin_value[post_max_size] = 16M
      • php_admin_value[max_execution_time] = 300
      • php_admin_value[max_input_time] = 300
    • Redémarrage du service php7-fpm avec la commande systemctl restart php7-fpm.service

Une fois les prérequis validés, le message d'erreur disparaît :

Zabbix - Prérequis OK

Cliquer sur Next step.

Renseigner les informations relatives à la base de données et cliquer sur Next step :

Zabbix - BDD

Renseigner le informations relatives au serveur Zabbix et cliquer sur Next step :

Zabbix - Serveur

Un résumé des informations s'affiche avant l'installation. Cliquer sur Next step :

Zabbix - Résumé

Un message s'affiche informant de la bonne configuration de l'interface utilisateur de Zabbix :

Zabbix - Installation OK

Cela crée un fichier de configuration /data/www/zabbix/current/conf/zabbix.conf.php.

Cliquer sur Finish pour être redirigé vers l'écran de connexion de l'interface utilisateur :

Zabbix - Connexion

Première connexion

Une fois le paramétrage de l'interface utilisateur réalisé, se rendre à l'URL d'accueil de Zabbix et se connecter avec les identifiants par défaut :

Zabbix - Première connexion
  • Identifiants :
    • Username : Admin
    • Password : zabbix

Une fois connecté, la page principale de Zabbix s'affiche :

Zabbix - Page d'accueil

Modification mot de passe

La première chose à faire est de sécuriser l'accès à l'interface Zabbix en changeant le mot de passe par défaut de l'utilisateur Admin. Pour ce faire, se rendre dans la section Administration -> Users :

Zabbix - Administration - Users

La liste des utilisateurs s'affiche :

Zabbix - Liste des utilisateurs

Cliquer sur l'utilisateur Admin. Le détail de son compte s'affiche :

Zabbix - Compte Admin

Dans la section Password, cliquer sur Change password. Deux champs s'affichent alors :

Zabbix - Changer mot de passe

Renseigner le mot de passe à deux reprises et cliquer sur Update.

Un retour sur la liste des utilisateurs indique que l'utilisateur Admin a bien été mis à jour :

Zabbix - Utilisateur mis à jour

Intégration Active Directory

Se rendre dans la section Administration -> Authentication :

Zabbix - Authentification

Pour activer la connexion à un annuaire d'utilisateurs, cliquer sur LDAP :

Zabbix - LDAP activé

Se rendre dans l'onglet LDAP settings :

Zabbix - Onglet LDAP

Activer le remplissage des champs en cochant la case Enable LDAP authetication et remplir les champs comme ceci :

  • LDAP host
    • Correspond au serveur d'annuaire
    • monserveurAD.mongroupe.local
  • Port
    • Correspond au port du serveur d'annuaire
    • Laisser par défaut sur 389
  • Base DN
    • Correspond à l'arborescence racine à partir de laquelle chercher les utilisateurs dans l'annuaire
    • OU=usersOU,DC=mongroupe,DC=local
  • Search attribute
    • Attribut sur lequel doit se faire la recherche de l'utilisateur
    • Pour un annuaire Active Directory, saisir sAMAccountName
  • Bind DN
    • DN de l'utilisateur avec lequel se connecter à l'annuaire pour rechercher les utilisateurs
    • CN=userquery,OU=tools,OU=Users applicatifs,DC=mongroupe,DC=local
  • Case sensitive login
    • Choix si le login doit être sensible à la casse ou pas
    • Ne pas cocher cette case
  • Bind password
    • Mot de passe l'utilisateur qui effectue la recherche dans l'annuaire
  • Login
    • Identifiant d'un utilisateur pour tester la connexion à l'annuaire
    • Choisir son propre identifiant
  • User password
    • Mot de passe de l'utilisateur de test de connexion à l'annuaire
    • Rentrer son propre mot de passe

Une fois ces informations renseignées, cliquer sur le bouton Test :

Zabbix - Test LDAP

Si le test est concluant, cliquer sur Update :

Zabbix - LDAP mis en place

Un message s'affiche indiquant la bonne prise en compte du paramétrage de l'Active Directory.

Gestion des utilisateurs

Le mapping des groupes de l'Active Directory avec les groupes de Zabbix n'est pas disponible à ce jour (voir la réquête 276 ouverte depuis 2010 à ce sujet).

Il va donc falloir créer les utilisateurs de l'Active Directory un à un dans les groupes de Zabbix. Pour éviter de le faire manuellement, j'ai créé un script PHP de création automatique des utilisateurs Active Directory dans Zabbix. Il y a donc deux méthodes pour créer les utilisateurs.

Création automatique

Se rendre sur la page du script PHP de création automatique des utilisateurs Active Directory dans Zabbix et l'utiliser.

Création manuelle

Avant toute chose, il va falloir créer un groupe dans Zabbix.

Création groupe

Pour créer un groupe, aller dans la section Administration -> User groups et cliquer sur Create user group :

Zabbix - Groupe d'utilisateurs

Renseigner les champs comme ceci :

  • Group name
    • Cela correspond au nom que portera le groupe dans Zabbix
    • MonGroupe
  • Users
    • Liste des utilisateurs Zabbix à ajouter dans le groupe
    • Laisser vide
  • Frontend access
    • Ce groupe permet-il l'accès à l'interface utilisateur de Zabbix ? Si oui, par quel moyen ?
    • 'LDAP
  • Enabled
    • Ce groupe est-il actif ?
    • Oui, cocher la case
  • Debug mode
    • Le mode débug est-il activé ?
    • Non, ne pas cocher la case
Zabbix - Création groupe

Cliquer sur Add pour créer le groupe dans Zabbix :

Zabbix - Liste des groupes d'utilisateurs
Création utilisateur

Pour créer un utilisateur dans Zabbix, se rendre dans la section Administration -> Users et cliquer sur Create user :

Zabbix - Utilisateurs

Renseigner les champs comme ceci :

  • Alias
    • Renseigner ici l'identifiant de l'utilisateur tel qu'il est défini dans l'Active Directory
    • Par exemple : JLN
  • Name
    • Renseigner ici le nom de l'utilisateur
    • Par exemple : LE NUFF
  • Surname
    • Renseigner ici le prénom de l'utilisateur
    • Par exemple : Jordan
  • Groups
    • Sélectionner un groupe déjà existant dans Zabbix
    • Par exemple, le groupe précédemment créé : MonGroupe
  • Password
    • Renseigner ici un mot de passe aléatoire, il ne sera pas utilisé dans le cas d'une authentification LDAP
    • Par exemple : toto
  • Language
    • Choisir ici la langue d'utilisation de l'utilisateur
    • Par exemple : French (fr_FR)
  • Theme
    • Laisser par défaut
  • Auto-login
    • Ne pas cocher
  • Auto-logout
    • Ne pas cocher
  • Refresh
    • Laisser la valeur par défaut
  • Rows per page
    • Laisser la valeur par défaut
  • URL (after login)
    • Laisser vide

Cliquer sur Add pour créer l'utilisateur :

Zabbix - Création utilisateur

Un message apparaît pour confirmer la bonne création de l'utilisateur :

Zabbix - Liste des utilisateurs

L'utilisateur a bien été créé.

Gestion des droits d'accès

Les droits d'accès s'appliquent selon le type d'utilisateur et les droits accordés au(x) groupe(s) de l'utilisateur.

Type d'utilisateur

Il existe 3 types d'utilisateur sous Zabbix :

  • Utilisateur Zabbix
    • L'utilisateur a accès au menu Surveillance. L'utilisateur n'a accès à aucune ressource par défaut. Toutes les autorisations sur les groupes d'hôtes doivent être explicitement attribuées.
  • Administrateur Zabbix
    • L'utilisateur a accès aux menus Surveillance et Configuration. L'utilisateur n'a accès à aucun groupe d'hôtes par défaut. Toutes les autorisations sur les groupes d'hôtes doivent être explicitement attribuées.
  • Super administrateur Zabbix
    • L'utilisateur a accès à tout : menus Surveillance, Configuration et Administration. L'utilisateur dispose d'un accès en lecture-écriture à tous les groupes d'hôtes. Les autorisations ne peuvent pas être révoquées en refusant l'accès à des groupes d'hôtes spécifiques.

Pour modifier le type d'utilisateur, se rendre dans la section Administration -> Users et cliquer sur l'alias de l'utilisateur à modifier :

Zabbix - Utilisateurs

Cliquer ensuite sur l'onglet Permissions :

Zabbix - Utilisateur - Onglets

Dans le menu déroulant User type, sélectionner le type d'utilisateur voulu :

Zabbix - Utilisateur - Type

Cliquer sur Update, un message s'afficher confirmant la bonne prise en compte de la modification de l'utilisateur :

Zabbix - Utilisateur modifié

Permissions de groupe

Pour modifier les autorisations d'un groupe, aller dans la section Administration -> User groups et cliquer sur le nom du groupe à modifier :

Zabbix - Groupe d'utilisateurs

Cliquer ensuite sur l'onglet Permissions :

Zabbix - Groupe - Permissions

Cliquer sur le bouton Select et choisir les groupes de d'objets à ajouter à la sélection :

Zabbix - Groupe - Liste permissions

Cliquer sur Select pour valider la sélection :

Zabbix - Groupe - Liste permissions ajoutées

Entre Read-write, Read, Deny et None, sélectionner le niveau d'accès à accorder à ces permissions :

Zabbix - Groupe - Liste permissions niveaux

Cliquer sur Add' pour ajouter les permissions et leur niveau associé :

Zabbix - Groupe - Liste permissions et niveaux ajoutés

Cliquer sur Update, un message s'afficher confirmant la bonne prise en compte de la modification du groupe :

Zabbix - Groupe modifié

Ajout template

PHP-FPM

Il existe plusieurs templates de monitoring de PHP-FPM pour Zabbix.

Au moment de la rédaction de cette page, le template le plus mis à jour est celui-ci : https://github.com/rvalitov/zabbix-php-fpm

Cette page ne fera que reprendre le Wiki du template présent à : https://github.com/rvalitov/zabbix-php-fpm/wiki/Installation

Côté agent

Installation des prérequis :

yum install grep gawk lsof jq fcgi unzip bc

Téléchargement de la dernière version :

curl -L $(curl -s https://api.github.com/repos/rvalitov/zabbix-php-fpm/releases/latest | grep 'zipball_' | cut -d\" -f4) --output /tmp/zabbix-php-fpm.zip

Extraction des fichiers :

unzip -j /tmp/zabbix-php-fpm.zip "*/zabbix/*" "*/ispconfig/*" -d /tmp/zabbix-php-fpm

Copie des fichiers dans la configuration Zabbix :

cp /tmp/zabbix-php-fpm/userparameter_php_fpm.conf $(find /etc/zabbix/ -name zabbix_agentd*.d -type d | head -n1)
cp /tmp/zabbix-php-fpm/zabbix_php_fpm_discovery.sh /etc/zabbix/
cp /tmp/zabbix-php-fpm/zabbix_php_fpm_status.sh /etc/zabbix/

Ajout du droit d’exécution sur les scripts :

chmod +x /etc/zabbix/zabbix_php_fpm_discovery.sh
chmod +x /etc/zabbix/zabbix_php_fpm_status.sh

Lancer visudo et y ajouter la ligne suivante :

zabbix ALL = NOPASSWD: /etc/zabbix/zabbix_php_fpm_discovery.sh,/etc/zabbix/zabbix_php_fpm_status.sh

Augmentation du seuil de connexion par socket sur le serveur :

echo "net.core.somaxconn=1024" | tee -a /etc/sysctl.conf
sysctl -p

Mise à jour de la variable pm.status_path dans les différents pool PHP-FPM :

pm.status_path = /php-fpm-status

Relancer PHP-FPM pour prise en compte.

Supprimer les fichiers temporaires :

rm /tmp/zabbix-php-fpm.zip
rm -rf /tmp/zabbix-php-fpm

Côté serveur Zabbix

Télécharger l'archive de la dernière version disponible depuis l'URL https://github.com/rvalitov/zabbix-php-fpm/releases/latest.

Depuis le dossier /zabbix de l'archive, récupérer le fichier XML. Exemple :

zabbix_php_fpm_template_4.0.xml

Se rendre sur l'interface web du serveur Zabbix, aller dans Configuration -> Templates -> Import et importer le fichier XML précédemment téléchargé.