1. Dashboards et cartes #
Dans l'interface Zabbix.
Widgets #
| Widget | Usage |
|---|---|
| Problems | Problèmes en cours filtrés par groupe, sévérité, tag |
| Graph | Courbes d'un ou plusieurs éléments |
| Top hosts | Classement des hôtes sur un élément (CPU, disque) |
| Honeycomb, Gauge | Vue synthétique d'un parc |
| Map | Carte réseau avec états |
| SLA report | Disponibilité de services (module Services et SLA) |
Grafana #
grafana-cli plugins install alexanderzobnin-zabbix-app
# Activer l'application, puis créer une source de données « Zabbix » :
# URL : http://zabbix-web:8080/api_jsonrpc.php + jeton d'APILe plugin permet de combiner dans un même dashboard des données Zabbix et Prometheus, Loki ou Elasticsearch, et d'afficher les problèmes Zabbix.
2. L'API JSON-RPC #
Tout ce que fait l'interface, en code.
Exemples #
# Jeton : créer un jeton d'API (Users > API tokens) ou se connecter
curl -s -X POST -H 'Content-Type: application/json-rpc' http://localhost:8080/api_jsonrpc.php \
-d '{"jsonrpc":"2.0","method":"user.login","params":{"username":"Admin","password":"zabbix"},"id":1}'curl -s -X POST -H 'Content-Type: application/json-rpc' -H "Authorization: Bearer $TOKEN" http://localhost:8080/api_jsonrpc.php -d '{"jsonrpc":"2.0","method":"problem.get","params":{"output":["name","severity","clock"],"recent":true,"sortfield":"eventid","sortorder":"DESC"},"id":2}'
curl -s -X POST -H 'Content-Type: application/json-rpc' -H "Authorization: Bearer $TOKEN" http://localhost:8080/api_jsonrpc.php -d '{"jsonrpc":"2.0","method":"host.create","params":{
"host":"web-02","groups":[{"groupid":"2"}],
"interfaces":[{"type":1,"main":1,"useip":1,"ip":"10.0.0.12","dns":"","port":"10050"}],
"templates":[{"templateid":"10001"}],
"macros":[{"macro":"{$CPU.UTIL.CRIT}","value":"95"}]},"id":3}'À savoir : Les identifiants (groupe, modèle) varient selon l'installation : obtenez-les avechostgroup.getettemplate.getfiltrés par nom.
3. Configuration comme code #
Versionner et déployer.
Outils #
| Outil | Usage |
|---|---|
| Export / import YAML | Modèles, hôtes, cartes : configuration.export et configuration.import |
Collection Ansible community.zabbix | Installer agents et proxies, créer hôtes, modèles, utilisateurs |
| Terraform | Fournisseurs communautaires pour les objets Zabbix |
| Enregistrement automatique (autoregistration) | Les agents actifs s'inscrivent seuls selon leurs métadonnées |
# /etc/zabbix/zabbix_agent2.conf : métadonnées pour l'enregistrement automatique
HostMetadata=linux web productionBonne Pratique : Combinez l'enregistrement automatique (action : si les métadonnées contiennent « web », ajouter au groupe Web et lier le modèle Nginx) et Ansible pour l'installation des agents : un nouveau serveur est supervisé sans intervention.
