Le serveur Zabbix est le processus central du logiciel Zabbix.
Le serveur effectue l'interrogation et la réception des données, il calcule les déclencheurs, envoie des notifications aux utilisateurs. C'est le composant central auquel les agents et les proxys de Zabbix rapportent des données sur la disponibilité et l'intégrité des systèmes. Le serveur peut lui-même vérifier à distance les services en réseau (tels que les serveurs Web et les serveurs de messagerie) à l'aide de simples vérifications de service.
Le serveur est le référentiel central dans lequel sont stockées toutes les données de configuration, statistiques et opérationnelles, et c'est l'entité de Zabbix qui alertera activement les administrateurs lorsque des problèmes surviendront sur l'un des systèmes surveillés.
Le fonctionnement d'un serveur Zabbix de base est divisé en trois composants distincts ; ils sont : serveur Zabbix, interface web et stockage de base de données.
Toutes les informations de configuration de Zabbix sont stockées dans la base de données, avec laquelle interagissent le serveur et l'interface Web. Par exemple, lorsque vous créez un nouvel élément à l'aide de l'interface Web (ou l'API), il est ajouté à la table des éléments de la base de données. Ensuite, environ une fois par minute, le serveur Zabbix interroge la table des éléments pour obtenir une liste des éléments actifs qui sont ensuite stockés dans un cache dans le serveur Zabbix. C'est pourquoi cela peut prendre jusqu'à deux minutes pour que les modifications apportées dans l’interface utilisateur Zabbix apparaissent dans la dernière section de données.
Le serveur Zabbix s'exécute en tant que processus démon. Le serveur peut être démarré en exécutant :
Cela fonctionnera sur la plupart des systèmes GNU/Linux. Sur d'autres systèmes, vous devrez peut-être exécuter :
De même, pour arrêter/redémarrer/afficher l'état, utilisez les commandes suivantes :
shell> service zabbix-server stop
shell> service zabbix-server restart
shell> service zabbix-server status
Si ce qui précède ne fonctionne pas, vous devez le démarrer manuellement. Recherchez le chemin d'accès au fichier binaire zabbix_server et exécutez :
Vous pouvez utiliser les paramètres de ligne de commande suivants avec le serveur Zabbix :
-c --config <file> chemin vers le fichier de configuration (par défaut /usr/local/etc/zabbix_server.conf)
-R --runtime-control <option> effectue des fonctions administratives
-h --help donne cet aide
-V --version affiche le numéro de version
Le runtime-control n'est pas supportée sur OpenBSD et NetBSD.
Exemples d'exécution du serveur Zabbix avec des paramètres de ligne de commande :
shell> zabbix_server -c /usr/local/etc/zabbix_server.conf
shell> zabbix_server --help
shell> zabbix_server -V
Option du Runtime control :
Option | Description | Cible |
---|---|---|
config_cache_reload | Recharge le cache de configuration. Ignoré si le cache est en cours de chargement. | |
housekeeper_execute | Démarre la procédure de nettoyage. Ignoré si la procédure de nettoyage est actuellement en cours d'exécution. | |
log_level_increase[=<cible>] | Augmente le niveau de journalisation, affecte tous les processus si la cible n'est pas spécifiée |
process type – Tous les processus d’un type spécifique (ex : poller) Voir tous les types de processus serveur process type,N – Type de processus et numéro (ex : poller,3) pid - Identifiant du processus (1 to 65535). Pour des valeurs plus grandes, spécifiez la cible comme 'process type,N'. |
log_level_decrease[=<cible>] | Diminue le niveau de journalisation, affecte tous les processus si la cible n'est pas spécifiée. |
Exemple d'utilisation du runtime control pour recharger le cache de configuration du serveur :
Exemple d'utilisation du runtime control pour déclencher l'exécution du nettoyage :
Exemple d'utilisation du runtime control pour modifier le niveau de journalisation :
Augmente le niveau de journalisation de tous les processus :
shell> zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_increase
Augmente le niveau de journalisation du deuxième processus 'poller' :
shell> zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_increase=poller,2
Augmente le niveau de journalisation du processus ayant le PID 1234:
shell> zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_increase=1234
Diminue le niveau de journalisation de tous les processus 'http poller' :
shell> zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_decrease="http poller"
Le serveur Zabbix est conçu pour fonctionner en tant qu'utilisateur non root. Il fonctionnera avec n’importe quel utilisateur non-root qui lancera les processus. Vous pouvez donc exécuter le serveur en tant qu'utilisateur non root sans aucun problème.
Si vous essayez de l'exécuter en tant que 'root', il passera à un utilisateur 'zabbix' codé en dur, qui doit être présent sur votre système. Vous pouvez uniquement exécuter le serveur en tant que 'root' si vous modifiez le paramètre 'AllowRoot' dans le fichier de configuration associé du serveur.
Si le serveur et l'agent Zabbix sont exécutés sur la même machine, il est recommandé d'utiliser un autre utilisateur pour exécuter le serveur que pour exécuter l'agent. Sinon, si les deux sont exécutés sous le même utilisateur, l'agent peut accéder au fichier de configuration du serveur et tout utilisateur de niveau Admin dans Zabbix peut facilement récupérer, par exemple, le mot de passe de la base de données.
Voir les options du fichier de configuration pour plus de détails sur la configuration de zabbix_server.
Les scripts sont utilisés pour démarrer/arrêter automatiquement les processus Zabbix pendant le démarrage/l'arrêt du système. Les scripts sont situés dans le répertoire misc/init.d.
alert manager
- gestionnaire des tâches d'alertesalerter
- processus pour l'envoi des notificationsconfiguration syncer
- processus de gestion du cache en mémoire de la configuration des donnéesdiscoverer
- processus pour la découverte des équipementsescalator
- processus pour l'escalade des actionshistory syncer
- écriture en BDD de l'historiquehousekeeper
- processus pour la suppression des anciennes données d'historiquehttp poller
- poller pour la supervision webicmp pinger
- poller pour les vérifications icmppingipmi manager
- gestionnaires de poller IPMIipmi poller
- poller pour les vérifications IPMIjava poller
- poller pour les vérifications Javapoller
- poller pour les vérifications passivespreprocessing manager
- gestionnaire des tâches de pré-traitementpreprocessing worker
- processus pour le pré-traitement des donnéesproxy poller
- poller pour les proxys passifsself-monitoring
- processus de collecte des statistiques internes du serveursnmp trapper
- trapper pour les traps SNMPtask manager
- processus pour l'exécution à distance de tâches demandées par d'autres composants (ex : fermeture d'un problème, acquittement d'un problème, vérification de la valeur d'un élément immédiatement, fonctionnalité d'exécution de commande à distance)timer
- timer pour le traitement des maintenancestrapper
- trapper pour les vérifications actives, les traps, la communication avec le proxyunreachable poller
- poller pour les équipements injoignablesvmware collector
- Collecte des données VMware responsable de la récupération des données pour les services VMwareLe fichier journal du serveur peut être utilisé pour observer les types de processus.
Plusieurs types de processus du serveur Zabbix peuvent être supervisés en utilisant l'élément interne zabbix[process,<type>,<mode>,<state>].
En raison des exigences de sécurité et de la nature critique du fonctionnement du serveur, UNIX est le seul système d'exploitation capable de fournir systématiquement les performances, la tolérance aux pannes et la résilience nécessaires. Zabbix fonctionne sur les meilleures versions du marché.
Le serveur Zabbix a été testé sur les plateformes suivantes :
Zabbix peut également fonctionner sur d'autres systèmes d'exploitation de type Unix.
Notez que le serveur requiert un environnement local UTF-8 afin que certains éléments textuels puissent être interprétés correctement. La plupart des systèmes modernes de type Unix ont un paramètre régional UTF-8 par défaut, cependant, certains systèmes peuvent avoir besoin d'être définis spécifiquement.