Ce jeu de tâches est chargé de configurer Zabbix.

Usage

L’argument -K doit être passée impérativement afin de demander le mot de passe sudo local.

Variables à fournir

Variable Type Requis Défaut Description
zabbix_connection Objet connection Non Liste vide Informations de connexion
zabbix_hostgroups Liste d’objets hostgroup Non Liste vide Groupes d’hôtes à gérer
zabbix_groups Liste d’objets usergroup Non Liste vide Groupes à gérer
zabbix_users Liste d’objets user Non Liste vide Utilisateurs à gérer
zabbix_templates Liste d’objets template Non Liste vide Modèles à gérer
zabbix_hosts Liste d’objets host Non Liste vide Hôtes à gérer
zabbix_actions Liste d’objets action Non Liste vide Actions à gérer
zabbix_resources_path Chemin Non Chaîne vide Dossier, relatif au playbook sous lequel sont les fichiers

Type connection

Propriété Type Requis Défaut Description
host FQDN Non Valeur de l’inventaire Nom de domaine du serveur zabbix
port Entier 1-65535 Non 80 Port d’accès
use_ssl Booléen Non Faux Connexion sécurisée
validate_certs Booléen Non Vrai Vérifier le certificat
url_path Chemin Non ‘zabbix’ Chemin de l’instance zabbix
user Identifiant Non ‘Admin’ Nom de l’utilisateur pour l’authentification
pass Chaîne Non ‘zabbix’ Mot de passe pour l’authentification
auth_key Chaîne Non Clé d’API (Zabbix 6+)

Les variables d’environnement ZABBIX_USER, ZABBIX_PASS, ZABBIX_KEY peuvent être utilisées à la place de user, passetauth_key` respectivement.

Type hostgroup

Propriété Type Requis Défaut Description
name Chaîne Oui Nom du groupe
uuid GUID sans tirets Oui GUID du groupe
remove Booléen Non Faux Retirer le groupe

Type usergroup

Propriété Type Requis Défaut Description
name Chaîne Oui Nom du groupe
rights Liste d’objets right Non Liste vide Permissions du groupe
tag_filters Liste d’objets tag_filter Non Liste vide Permissions dynamiques du groupe
remove Booléen Non Faux Demande du retrait
enabled Booléen Non Vrai Activation du groupe
gui_access Choix [‘default’, ‘internal’, ‘LDAP’, ‘disable’] Non ‘default’ Autoriser l’accès au GUI

Type right

Propriété Type Requis Défaut Description
host_group Chaîne Oui Nom du groupe d’hôte
permission Choix [‘denied’, ‘read-only’, ‘read-write’] Oui Permission du groupe

Type tag_filter

Propriété Type Requis Défaut Description
host_group Chaîne Oui Nom du groupe d’hôte
tag Chaîne Non Vide Nom de l’étiquette
value Chaîne Non Vide Valeur de l’étiquette

Type user

Propriété Type Requis Défaut Description
alias Chaîne Oui Identifiant de l’utilisateur
name Chaîne Non Prénom de l’utilisateur
surname Chaîne Non Nom de l’utilisateur
passwd Chaîne Oui Mot de passe de connexion initial
lang Locale Non Locale de l’utilisateur
timezone Fuseau horaire PHP Non Fuseau horaire
type Choix [‘Zabbix user’,‘Zabbix admin’,‘Zabbix super admin’] Non Type d’utilisateur
medias Liste d’objets media Non Absent Modes de contact
groups Liste de noms Non Liste vide Nom de groupes de l’utilisateur
remove Booléen Non Faux Demande du retrait

Type media

Propriété Type Requis Défaut Description
active Booléen Non Vrai Actif
mediatype Identifiant Non Email Type de canal
period Périodes de temps Non 1-7,00:00-24:00 Périodes de notification
sendto Chaîne Oui Identifiant pour le canal (email, nom, tel, etc.)
severity Objet severity Non Tout activé Sévérité des problèmes

Type severity

Propriété Type Requis Défaut Description
average Booléen Oui Vrai Sévérité moyenne
disaster Booléen Oui Vrai Sévérité critique
high Booléen Oui Vrai Sévérité haute
information Booléen Oui Vrai Sévérité information
not_classified Booléen Oui Vrai Sévérité non classifiée
warning Booléen Oui Vrai Sévérité avertissement

Type template

Propriété Type Requis Défaut Description
name Chaîne Non Absent Nom du modèle
xml Chemin Non Absent Fichier XML à importer
yaml Chemin Non Absent Fichier YAML à importer
json Chemin ou objet Non Absent Fichier JSON à importer ou contenu direct
remove Booléen Non Faux Retirer le modèle
link Liste de noms Non Absent Noms des modèles à lier
clear Liste de noms Non Absent Noms des modèles liés à nettoyer
macros Liste d’objets macro Non Vide Macros à définir sur le modèle
groups Liste de noms Non Absent Noms des groups à définir sur le modèle

L’un de name, xml, yaml et json est requis lorsque le modèle doit être présent. Seul name est utilisable avec remove et est requis. xml, yaml et json ne sont alors pas pris en charge.

Type macro

Propriété Type Requis Défaut Description
macro Chaîne Oui Nom de la macro, au format “{$NAME}”
value Chaîne Oui Valeur de la macro

Type host

Propriété Type Requis Défaut Description
name Chaîne Oui Nom de l’hôte
display_name Chaîne Non Vide Nom affiché de l’hôte
description Chaîne Non Absent Description de l’hôte
groups Liste de noms Non Absent Noms des groups associés à l’hôte
interfaces Liste d’objets interface Non Absent Interfaces de connexion à l’hôte
inventory_mode Choix [‘automatic’,‘manual’,‘disabled’] Non Absent Mode d’inventaire
inventory_zabbix Dictionnaire Non Absent Données d’inventaire personnalisées, voir https://www.zabbix.com/documentation/3.2/manual/api/reference/host/object#host_inventory
ipmi Objets ipmi Non Absent Interface de gestion de l’hôte
link Liste de noms Non Absent Noms des modèles liés
macros Liste d’objets macro Non Vide Macros à définir sur l’hôte
tls Objets tls Non Vide Type de connexion à l’hôte
remove Booléen Non Faux Retirer l’hôte
enabled Booléen Non Vrai Activation de l’hôte

Type interface

Propriété Type Requis Défaut Description
type Choix [‘agent’,‘snmp’,‘ipmi’,‘jmx’] Oui Type d’interface
main Booléen Non Faux Indique l’interface par défaut
dns FQDN Si non useip Vide Nom de domaine d’accès à l’interface
ip Adresse IP Si useip Vide Adresse IP d’accès à l’interface
port Entier 0-65535 Non Port de connexion TCP
useip Booléen Non Faux Indique l’accès par IP
details Objet snmp_detail Si type=snmp Détails supplémentaires de l’accès SNMP

Ports par type :

  • agent: 10050
  • snmp: 161
  • ipmi: 623
  • jmx: 12345

Type snmp_detail

Propriété Type Requis Défaut Description
version Entier 1-3 Non 22 Version de SNMP (SNMPv1, SNMPv2c, SNMPv3)
bulk Booléen Non Vrai Utiliser les requêtes par lot
community Chaîne Si version=1 ou 2 Nom de la communauté SNMPv1 ou v2
securityname Chaîne Si version=3 Vide Nom de sécurité
contextname Chaîne Si version=3 Vide Contexte SNMPv3
securitylevel Entier 0-2 Si version=3 0 Niveau de sécurité (noAuthNoPriv, authNoPriv, authPriv)
authpassphrase Chaîne Si securitylevel=1 ou 2 Phrase de passe SNMPv3
authprotocol Booléen Si securitylevel=1 ou 2 Faux Usage de SHA1 au lieu de MD5
privpassphrase Chaîne Si securitylevel=2 Phrase de passe privée SNMPv3
privprotocol Booléen Si securitylevel=2 Faux Usage de AES au lieu de DES

Type ipmi

Propriété Type Requis Défaut Description
username Chaîne Oui Utilisateur d’accès
password Chaîne Oui Mot de passe d’accès
auth_type Entier -1 à 6 Non -1 Mode d’authentification IPMI (par défaut, aucun, MD2, MD5, straight, OEM, RMCP+)
privilege Entier 1 à 5 Non 2 Niveau de permissions (rappel, utilisateur, opérateur, admin, OEM)

Type macro

Propriété Type Requis Défaut Description
description Chaîne Non Description de la macro
macro Chaîne Oui Nom de la macro, au format “{$NAME}”
type choix [‘text’,‘secret’] Non ‘text’ Type de valeur de la macro
value Chaîne Oui Valeur de la macro

Pour mettre à jour une macro de type secret, il faut mettre à jour la description aussi.

Type tls

Propriété Type Requis Défaut Description
accept Entier 1 à 7 Non 1 Type de chiffrement accepté pour la connexion entrante, masque de bits (Sans chiffrement, PSK, certificat)
connect entier 1, 2 ou 4 Non 1 Type de chiffrement utilisé pour la connexion sortante (Sans chiffrement, PSK, certificat)
psk Chaîne Si PSK activé Clé prépartagée d’au moins 16 octets en hexadécimal
psk_identity Chaîne Si PSK activé Identifiant de la clé prépartagée
subject Chaîne Si certificat activé Sujet du certificat

Type action

Propriété Type Requis Défaut Description
name Chaîne Oui Nom de l’action
event_source Choix [‘trigger’, ‘discovery’, ‘auto_registration’, ‘internal’] Oui Type d’action
esc_period Temps avec unité Non Durée d’étape d’escalade, en secondes, obligatoire pour les types déclencheur et interne, 60s minimum
pause_in_maintenance Booléen Non Vrai Mettre en pause l’escalade lors de la maintenance, pour le type déclencheur
conditions Liste d’objets condition Non Liste vide Demande du retrait
eval_type Choix [‘andor’,‘and’,‘or’,‘custom_expression’] Dépend Mode d’évaluation de la condition, par défaut andor lorsqu’il y a moins de deux éléments ou que la formule n’est pas spécifiée, custom_expression lorsque la formule est spécifiée, obligatoire autrement
formula Chaîne Non Formula d’évaluation des conditions
operations Liste d’objets operation Non Liste vide Opérations à effectuer lorsque l’action est exécutée
recovery_operations Liste d’objets operation Non Liste vide Opérations à effectuer lorsque l’état est récupéré (déclencheur)
acknowledge_operations Liste d’objets operation Non Liste vide Opérations à effectuer lorsqu’il y a une mise à jour (déclencheur)
remove Booléen Non Faux Retirer l’action
status Booléen Non Vrai Activer l’action

En dehors du nom, les champs requis ne le sont plus lorsqu’il faut retirer l’action.

Type condition

Propriété Type Requis Défaut Description
formulaid Identifiant Oui Identifiant dans la formule
operator Type operator Oui Opérateur de comparaison
type Type cond_type Oui Type de condition
value Type cond_value Oui Valeur de comparaison
value2 Chaîne Si type=event_tag_value Seconde valeur de comparaison
Type operator

L’une des valeurs : =, <>, like, not like, in, >=, <=, not in, matches, does not match, Yes, No.

Lorsque le type de la condition est time_period, les choix sont uniquement in et not in.

Type cond_type

L’une de ces valeurs, en fonction du type de source de l’événement :

  • trigger: host_group, host, trigger, trigger_name, trigger_severity, time_period, host_template, application, maintenance_status, event_tag, event_tag_value
  • discovery: host_IP, discovered_service_type, discovered_service_port, discovery_status, uptime_or_downtime_duration, received_value, discovery_rule, discovery_check, proxy, discovery_object
  • autoregistration: proxy, host_name, host_metadata
  • internal: host_group, host, host_template, application, event_type
Type cond_value

En dehors des options ci-après, la valeur est le nom de l’objet ou une chaîne permettant la comparaison.

Les choix sont restreints pour les types suivants :

  • discovery_status: up, down, discovered, lost
  • discovery_object: host, service
  • event_type: item in not supported state, item in normal state, LLD rule in not supported state, LLD rule in normal state, trigger in unknown state, trigger in normal state
  • trigger_severity: not classified, information, warning, average, high, disaster

Type operation

Propriété Type Requis Défaut Description
type Type op_type Oui Type de l’opération
esc_period Temps avec unité Non 0s Durée de l’étape d’escalade, en secondes, obligatoire pour les types déclencheur et interne, 60s minimum
esc_step_from Entier 1+ Non 1 Étape de début de l’escalade
esc_step_to Entier 0+ Non 1 Étape de fin de l’escalade, 0 pour infini
message Chaîne Non Vide Surcharge du message de l’opération
subject Chaîne Non Vide Surcharge du sujet de l’opération
send_to_groups Liste de noms Non Liste vide Groupes d’utilisateurs auxquels envoyer les messages
send_to_users Liste de noms Non Liste vide Utilisateurs auxquels envoyer les messages
inventory Choix [‘manual’,‘automatic’] Si type=set_host_inventory_mode Défini le mode d’inventaire de l’hôte
media_type Identifiant Si type=send_message ou notify_all_involved ‘all’ Média sur lequel envoyer le message aux utilisateurs, non applicable pour notify_all_involved et la récupération
operation_condition Chaîne Non Vide Condition d’opération devant être atteinte pour l’exécution
host_groups Liste de noms Si type=*_host_group Groupes d’hôtes auxquels ajouter ou retirer l’hôte
templates Liste de noms Si type=*_template Modèles à lier ou délier de l’hôte
command_type Type op_cmd Si type=remote_command Type de commande distante
command Chaîne Si command_type<>global_script Commande à exécuter
execute_on Choix [‘agent’,‘server’,‘proxy’] Si command_type=custom_script Équipement sur lequel exécuter le script
run_on_groups Noms de groupes d’hôtes Si command_type=run_on_groups Groupes d’hôtes sur lesquels exécuter le script
run_on_hosts Noms d’hôtes Si command_type=run_on_hosts Hôtes sur lesquels exécuter le script
script_name Nom Si command_type=global_script Nom du script global à exécuter
ssh_auth_type Choix [‘password’,‘public_key’] Si command_type=ssh Mode d’authentification SSH
port Entier 1-65535 Si command_type=ssh ou telnet Port de connexion direct
username Identifiant Si command_type=ssh ou telnet Nom de l’utilisateur pour l’authentification
ssh_privatekey_file Chaîne Si ssh_auth_type=public_key Nom du fichier de clé privé pour l’authentification SSH
ssh_publickey_file Chaîne Si ssh_auth_type=public_key Nom du fichier de clé publique pour l’authentification SSH
password Chaîne Si command_type=telnet ou ssh_auth_type=password Mot de passe de l’utilisateur pour l’authentification
Type op_type

Valeurs acceptées, sans indication du type d’action : send_message, remote_command, add_host, remove_host, add_to_host_group, remove_from_host_group, link_to_template, unlink_from_template, enable_host, disable_host, set_host_inventory_mode

Dans le cas des opérations de récupération ou de mise à jour, les valeurs acceptées sont :send_message, remote_command, notify_all_involved

Type op_cmd

Valeurs acceptées : custom_script, ipmi, ssh, telnet, global_script