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