Enregistrement automatique de l'agent actif
Vue d'ensemble
Il est possible d'autoriser l'autoregistration de l'agent Zabbix actif, après quoi le serveur peut commencer à les surveiller. De cette manière, de nouveaux hôtes peuvent être ajoutés à la surveillance sans être configurés manuellement sur le serveur.
L'autoregistration peut se produire lorsqu'un agent actif jusque-là inconnu demande des vérifications.
Cette fonctionnalité peut s'avérer très utile pour la surveillance automatique de nouveaux nœuds cloud. Dès qu'un nouveau nœud est présent dans Zabbix Cloud, la collecte des données de performance et de disponibilité de l'hôte démarre automatiquement.
L'autoregistration de l'agent actif prend également en charge la surveillance des hôtes ajoutés avec des vérifications passives.
Lorsque l'agent actif demande des vérifications, à condition que les paramètres de configuration ListenIP ou ListenPort soient définis dans le fichier de configuration, ceux-ci sont transmis au serveur.
Si plusieurs adresses IP sont spécifiées, la première est envoyée au serveur.
Le serveur, lors de l'ajout du nouvel hôte autoregistré, utilise l'adresse IP et le port reçus pour configurer l'agent.
Si aucune valeur d'adresse IP n'est reçue, celle utilisée pour la connexion entrante est utilisée.
Si aucune valeur de port n'est reçue, 10050 est utilisé.
Il est possible de spécifier que l'hôte doit être autoregistré avec un nom DNS comme interface d'agent par défaut.
L'autoregistration est relancée :
- si les informations de métadonnées de l'hôte changent :
- en raison d'une modification de HostMetadata et du redémarrage de l'agent
- en raison d'une modification de la valeur renvoyée par HostMetadataItem
- pour les hôtes créés manuellement avec des métadonnées manquantes
- si un hôte est modifié manuellement pour être surveillé par un autre proxy Zabbix
- si l'autoregistration pour le même hôte provient d'un nouveau proxy Zabbix
Le heartbeat d'autoregistration de l'agent actif pour Zabbix serveur et Zabbix proxy est de 120 secondes. Ainsi, dans le cas où un hôte découvert est supprimé, l'autoregistration sera relancée dans 120 secondes.
Configuration
Spécifier le serveur
Assurez-vous que le serveur Zabbix est indiqué dans le fichier de configuration de l'agent (zabbix_agentd.conf) :
ServerActive=10.0.0.1
Sauf si vous définissez spécifiquement un Hostname dans zabbix_agentd.conf, le nom d'hôte système de l'emplacement de l'agent sera utilisé par le serveur pour nommer le hôte.
Sous Linux, le nom d'hôte système peut être obtenu en exécutant la commande hostname.
Si Hostname est défini dans la configuration de l'agent Zabbix sous forme de liste d'hôtes séparés par des virgules, des hôtes seront créés pour tous les noms d'hôte indiqués.
Redémarrez l'agent après toute modification du fichier de configuration.
Action pour l'enregistrement automatique des agents actifs
Lorsque le serveur reçoit une demande d'enregistrement automatique d'un agent, il appelle une action. Une action dont la source d'événement est « Enregistrement automatique » doit être configurée pour l'enregistrement automatique des agents.
La configuration de la découverte réseau n'est pas requise pour que les agents actifs s'enregistrent automatiquement.
Dans l'interface Zabbix :
- Accédez à Alertes > Actions.
- Sélectionnez Actions d'enregistrement automatique.
- Cliquez sur Créer une action.
- Dans l'onglet Action, donnez un nom à votre action.
- Vous pouvez éventuellement spécifier des conditions. Vous pouvez effectuer une recherche par sous-chaîne ou par expression régulière dans les conditions portant sur le nom du hôte ou les métadonnées du hôte. Si vous comptez utiliser le type de condition Métadonnées du hôte, consultez Utilisation des métadonnées du hôte.
- Dans l'onglet Opérations, ajoutez les opérations pertinentes, telles que Ajouter un hôte, Ajouter au groupe de hôtes (par exemple, Hôtes découverts), Lier des modèles, etc.
Si les hôtes qui vont s'enregistrer automatiquement sont susceptibles d'être pris en charge uniquement pour la supervision active (par exemple, des hôtes protégés par un pare-feu qui les empêche d'être accessibles depuis votre serveur Zabbix), vous pouvez créer un modèle spécifique, tel que Template_Linux-active, auquel les lier.
Les hôtes créés sont ajoutés au groupe Hôtes découverts (par défaut, ce paramètre est configurable dans Administration > Général > Autres). Si vous souhaitez que les hôtes soient ajoutés à un autre groupe, ajoutez une opération Supprimer du groupe de hôtes (en spécifiant « Hôtes découverts »), puis ajoutez également une opération Ajouter au groupe de hôtes (en spécifiant un autre groupe de hôtes), car un hôte doit appartenir à un groupe de hôtes.
Autoregistration sécurisée
Une méthode sécurisée d’autoregistration est possible en configurant une authentification basée sur une clé PSK avec des connexions chiffrées.
Le niveau de chiffrement est configuré globalement dans Administration > Général > Autoregistration. Il est possible de sélectionner l’absence de chiffrement, le chiffrement TLS avec authentification PSK, ou les deux (afin que certains hôtes puissent s’enregistrer sans chiffrement tandis que d’autres utilisent une connexion chiffrée).
L’authentification par PSK est vérifiée par le serveur Zabbix avant l’ajout d’un hôte. Si elle réussit, l’hôte est ajouté et Connexions depuis/vers l’hôte sont définies sur « PSK » uniquement, avec une identité et une clé prépartagée identiques à celles du paramètre global d’autoregistration.
Pour garantir la sécurité de l’autoregistration dans les installations utilisant des proxy, le chiffrement entre le serveur Zabbix et le proxy doit être activé.
Utilisation de DNS comme interface par défaut
Les paramètres de configuration HostInterface et HostInterfaceItem configuration parameters permettent de spécifier une valeur personnalisée pour l'interface de l'hôte lors de l'autodéclaration.
Plus précisément, ils sont utiles si l'hôte doit être autodéclaré avec un nom DNS comme interface agent par défaut plutôt qu'avec son adresse IP. Dans ce cas, le nom DNS doit être spécifié ou renvoyé comme valeur de l'un des paramètres HostInterface ou HostInterfaceItem. Si la valeur de l'un de ces paramètres change, par exemple d'une adresse IP vers un nom DNS ou inversement, l'interface par défaut de l'hôte autodéclaré sera mise à jour en conséquence. Cette mise à jour est appliquée à l'hôte existant, et non par la création d'un nouvel hôte. Pour envoyer la nouvelle valeur, l'agent doit être redémarré afin de relancer le processus d'autodéclaration.
Si les paramètres HostInterface ou HostInterfaceItem ne sont pas configurés, le paramètre listen_dns est utilisé à la place. Cette valeur est déterminée en effectuant une recherche DNS inverse de l'adresse IP de l'agent. Si le DNS inverse n'est pas correctement configuré ou renvoie un nom invalide, cela peut entraîner une autodéclaration incorrecte ou échouée en raison d'une valeur d'interface invalide.
Utilisation des métadonnées de l'hôte
Lorsque l'agent envoie une demande d'enregistrement automatique au serveur, il envoie son nom d'hôte. Dans certains cas (par exemple, pour les nœuds cloud Amazon), un nom d'hôte ne suffit pas au serveur Zabbix pour différencier les hôtes découverts. Les métadonnées de l'hôte peuvent être utilisées facultativement pour envoyer d'autres informations d'un agent au serveur.
Les métadonnées de l'hôte sont configurées dans le fichier de configuration de l'agent (zabbix_agentd.conf).
Il existe 2 façons de spécifier les métadonnées de l'hôte dans le fichier de configuration :
HostMetadata
HostMetadataItem
Consultez la description des options dans le lien ci-dessus.
Le paramètre HostMetadataItem peut renvoyer jusqu'à 65535 points de code UTF-8. Une valeur plus longue sera tronquée.
Notez que sur MySQL, la longueur maximale effective en caractères sera inférieure si la valeur renvoyée contient des caractères multioctets. Par exemple, une valeur contenant uniquement des caractères codés sur 3 octets sera limitée à 21844 caractères au total, tandis qu'une valeur contenant uniquement des caractères codés sur 4 octets sera limitée à 16383 symboles.
Une tentative d'enregistrement automatique a lieu chaque fois qu'un agent actif envoie une demande d'actualisation des contrôles actifs au serveur. Le délai entre les demandes est spécifié dans le paramètre RefreshActiveChecks de l'agent. La première demande est envoyée immédiatement après le redémarrage de l'agent.
Exemples
Enregistrement automatique par OS à l’aide de HostMetadata
Supposons que vous souhaitiez que les hôtes soient enregistrés automatiquement par le serveur Zabbix. Vous disposez d’agents Zabbix actifs (voir la section « Configuration » ci-dessus) sur votre réseau. Il y a des hôtes Windows et des hôtes Linux sur votre réseau, et vous avez les modèles « Linux by Zabbix agent » et « Windows by Zabbix agent » disponibles dans votre interface Zabbix. Ainsi, lors de l’enregistrement de l’hôte, vous souhaitez que le modèle Linux/Windows approprié soit appliqué à l’hôte en cours d’enregistrement. Par défaut, seul le nom d’hôte est envoyé au serveur lors de l’enregistrement automatique, ce qui peut ne pas être suffisant. Afin de vous assurer que le modèle approprié est appliqué à l’hôte, vous devez utiliser les métadonnées de l’hôte.
Configuration du frontend
La première chose à faire est de configurer le frontend. Créez 2 actions. La première action :
- Nom : Autorenregistrement de l'hôte Linux
- Conditions : Les métadonnées de l'hôte contiennent Linux
- Opérations : Lier les modèles : Linux by Zabbix agent
Vous pouvez ignorer une opération « Add host » dans ce cas. Lier un modèle à un hôte nécessite d'abord l'ajout de l'hôte ; le serveur le fera donc automatiquement.
La deuxième action :
- Nom : Autorenregistrement de l'hôte Windows
- Conditions : Les métadonnées de l'hôte contiennent Windows
- Opérations : Lier les modèles : Windows by Zabbix agent
Configuration de l’agent
Vous devez maintenant configurer les agents. Ajoutez la ligne suivante aux fichiers de configuration de l’agent :
HostMetadataItem=system.uname
De cette façon, vous vous assurez que les métadonnées de l’hôte contiendront « Linux » ou « Windows » selon l’hôte sur lequel un agent s’exécute. Voici un exemple de métadonnées d’hôte dans ce cas :
Linux: Linux server3 3.2.0-4-686-pae #1 SMP Debian 3.2.41-2 i686 GNU/Linux
Windows: Windows WIN-0PXGGSTYNHO 6.0.6001 Windows Server 2008 Service Pack 1 Intel IA-32
N’oubliez pas de redémarrer l’agent après avoir apporté des modifications au fichier de configuration.
Utilisation de HostMetadata pour contrôler l’autorégistration et les modèles
Étape 1 - Protéger l’enregistrement avec HostMetadata
Utilisez les métadonnées d’hôte pour offrir une protection de base contre l’enregistrement d’hôtes indésirables.
Configuration du frontend
Créez une action dans le frontend en utilisant un code secret difficile à deviner afin d’empêcher les hôtes indésirables :
- Nom : Action d’autorégistration Linux
- Conditions :
- Type de calcul : AND
- Condition (A) : Les métadonnées de l’hôte contiennent //Linux//
- Condition (B) : Les métadonnées de l’hôte contiennent //21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae//
- Opérations :
- Envoyer un message aux utilisateurs : Admin via tous les médias
- Ajouter aux groupes d’hôtes : Serveurs Linux
- Lier les modèles : Linux by Zabbix agent
Veuillez noter que cette méthode seule n’offre pas une protection forte, car les données sont transmises en texte brut. Un rechargement du cache de configuration est nécessaire pour que les modifications prennent effet immédiatement.
Configuration de l'agent
Ajoutez la ligne suivante au fichier de configuration de l'agent :
HostMetadata=Linux 21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae
où « Linux » est une plateforme, et le reste de la chaîne est le texte secret difficile à deviner.
N'oubliez pas de redémarrer l'agent après avoir apporté des modifications au fichier de configuration.
Étape 2 - Ajouter un modèle à l’hôte enregistré
Il est possible d’ajouter des modèles supplémentaires à un hôte déjà enregistré.
Dans ce cas, le modèle MySQL by Zabbix agent sera lié uniquement aux hôtes dont le HostMetadata contient le jeton MySQL.
Configuration du frontend
Mettez à jour l’action dans le frontend :
- Nom : Action d’autorégistration Linux
- Conditions :
- Type de calcul : AND
- Condition (A) : Les métadonnées de l’hôte contiennent Linux
- Condition (B) : Les métadonnées de l’hôte contiennent 21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae
- Condition (C) : Les métadonnées de l’hôte contiennent MySQL
- Opérations :
- Envoyer un message aux utilisateurs : Admin via tous les médias
- Ajouter aux groupes d’hôtes : Serveurs Linux
- Lier les modèles : Linux by Zabbix agent
- Lier les modèles : MySQL by Zabbix Agent
Configuration de l’agent
Mettez à jour la ligne suivante dans le fichier de configuration de l’agent :
HostMetadata=MySQL on Linux 21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae
N’oubliez pas de redémarrer l’agent après avoir apporté des modifications au fichier de configuration.