zabbix

Supported OS Linux Mac OS Windows

Intégration1.1.1

Présentation

Connectez-vous à Zabbix pour :

  • Surveiller Zabbix via l’Agent Datadog
  • Envoyer des alertes Zabbix à Datadog sous la forme d’événements dans le flux d’événements

Configuration

Le check Zabbix n’est pas inclus avec le package de l’Agent Datadog : vous devez donc l’installer.

Installation

Pour l’Agent v7.21+/6.21+, suivez les instructions ci-dessous afin d’installer le check Zabbix sur votre host. Consultez la section Utiliser les intégrations de la communauté pour effectuer une installation avec l’Agent Docker ou avec des versions antérieures de l’Agent.

  1. Exécutez la commande suivante pour installer l’intégration de l’Agent :

    datadog-agent integration install -t datadog-zabbix==<INTEGRATION_VERSION>
    
  2. Configurez votre intégration comme une intégration de base.

Configuration

  1. Assurez-vous que le fuseau d’horaire de votre serveur Zabbix est défini sur UTC. Pour en savoir plus sur les fuseaux horaires de Zabbix, consultez la documentation Zabbix (en anglais).

  2. Modifiez le fichier zabbix.d/conf.yaml dans le dossier conf.d/ à la racine du répertoire de configuration de votre Agent pour commencer à recueillir vos données de performance Zabbix. Consultez le fichier d’exemple zabbix.d/conf.yaml pour découvrir toutes les options de configuration disponibles.

  3. Redémarrez l’Agent.

Collecte d’événements

Créer un type de support Datadog
  1. Accédez à Administration > Media Types > Create Media Type.
  2. Ajoutez des paramètres au webhook à l’aide des template variables Zabbix. Ajoutez votre api_key Datadog et les template variables Zabbix suivantes sous forme de paramètres :
ParamètreValeur
api_keyVotre clé d'API Datadog
event_date{EVENT.DATE}
event_name{EVENT.NAME}
event_nseverity{EVENT.NSEVERITY}
event_tags{EVENT.TAGSJSON}
event_time{EVENT.TIME}
event_value{EVENT.VALUE}
item_name{ITEM.NAME}
alert_message{ALERT.MESSAGE}
alert_subject{ALERT.SUBJECT}
  1. Définissez Name sur Datadog, Type sur Webhook et Script sur le code suivant :
    try {
        Zabbix.Log(4, '[datadog webhook] received value=' + value);

        var params = JSON.parse(value);
        var req = new CurlHttpRequest();
        req.AddHeader('Content-Type: application/json');
        var webhook_url = 'https://app.datadoghq.com/intake/webhook/zabbix?api_key=' + params.api_key;
        var webhook_data = value;
        var resp = req.Post(webhook_url, webhook_data);
        if (req.Status() != 202) {
            throw 'Response code: '+req.Status();
        }
        Zabbix.Log(4, '[datadog webhook] received response with status code ' + req.Status() + '\n' + resp);
    } catch (error) {
        Zabbix.Log(4, '[datadog webhook] event creation failed json : ' + webhook_data)
        Zabbix.Log(4, '[datadog webhook] event creation failed : ' + error);
    }
    return JSON.stringify({});
  1. Vérifiez que le webhook fonctionne correctement à l’aide du bouton Test.
Attribuer le support de webhook à un utilisateur existant
  1. Après avoir configuré le type de support du webhook, accédez à Administration > Users et créez un utilisateur Zabbix dédié pour représenter le webhook. Par exemple, utilisez l’alias Datadog pour le webhook Datadog. À l’exception du support, vous pouvez conserver les valeurs par défaut de tous les paramètres, car cet utilisateur ne se connecte pas à Zabbix.
  2. Dans le profil de l’utilisateur, accédez à l’onglet Media et ajoutez un webhook avec les informations requises. Si le webhook n’utilise pas le champ Send to, saisissez une combinaison de caractères pris en charge pour contourner les critères de validation.
  3. Accordez à cet utilisateur des autorisations de lecture (au minimum) pour tous les hosts pour lesquels des alertes doivent être envoyées.
Configurer une action d’alerte pour le webhook
  1. Accédez à Configuration > Actions.
  2. Dans la liste déroulante du titre de page, sélectionnez le type d’action requis.
  3. Cliquez sur Create Action.
  4. Attribuez un nom à l’action.
  5. Choisissez les conditions à remplir pour effectuer les opérations.
  6. Choisissez les opérations à effectuer.

Validation

Lancez la sous-commande status de l’Agent et cherchez zabbix dans la section Checks.

Données collectées

Métriques

zabbix.processed.floats_per_sec
(gauge)
Number of processed numeric (float) values per second
Shown as unit
zabbix.processed.per_sec
(gauge)
Number of processed values per second
Shown as unit
zabbix.processed.characters_per_sec
(gauge)
Number of processed character values per second
Shown as unit
zabbix.processed.logs_per_sec
(gauge)
Number of processed log values per second
Shown as unit
zabbix.processed.unsigned_per_sec
(gauge)
Number of processed numeric (unsigned) values per second
Shown as unit
zabbix.processed.text_per_sec
(gauge)
Number of processed text values per second
Shown as unit
zabbix.processed.unsupported_per_sec
(gauge)
Number of processed not supported values per second
Shown as unit
zabbix.process.internal.alerter
(gauge)
Utilization of alerter internal processes, in %
Shown as percent
zabbix.process.internal.config_sync
(gauge)
Utilization of configuration syncer internal processes, in %
Shown as percent
zabbix.process.internal.escalator
(gauge)
Utilization of escalator internal processes, in %
Shown as percent
zabbix.process.internal.history_sync
(gauge)
Utilization of history syncer internal processes, in %
Shown as percent
zabbix.process.internal.housekeeper
(gauge)
Utilization of housekeeper internal processes, in %
Shown as percent
zabbix.process.data_collector.discoverer
(gauge)
Utilization of discoverer data collector processes, in %
Shown as percent
zabbix.process.data_collector.http_poller
(gauge)
Utilization of http poller data collector processes, in %
Shown as percent
zabbix.process.data_collector.icmp_pinger
(gauge)
Utilization of icmp pinger data collector processes, in %
Shown as percent
zabbix.process.data_collector.ipmi_poller
(gauge)
Utilization of ipmi poller data collector processes, in %
Shown as percent
zabbix.process.data_collector.java_poller
(gauge)
Utilization of java poller data collector processes, in %
Shown as percent
zabbix.process.data_collector.poller
(gauge)
Utilization of poller data collector processes, in %
Shown as percent
zabbix.process.data_collector.proxy_poller
(gauge)
Utilization of proxy poller data collector processes, in %
Shown as percent
zabbix.process.internal.self_monitoring
(gauge)
Utilization of self-monitoring internal processes, in %
Shown as percent
zabbix.process.data_collector.snmp_trapper
(gauge)
Utilization of snmp trapper data collector processes, in %
Shown as percent
zabbix.process.internal.timer
(gauge)
Utilization of timer internal processes, in %
Shown as percent
zabbix.process.data_collector.trapper
(gauge)
Utilization of trapper data collector processes, in %
Shown as percent
zabbix.process.data_collector.unreachable_poller
(gauge)
Utilization of unreachable poller data collector processes, in %
Shown as percent
zabbix.queue.duration_10
(gauge)
Zabbix queue over 10 minutes
Shown as unit
zabbix.queue.size
(gauge)
Zabbix queue
Shown as unit
zabbix.cache.config
(gauge)
Zabbix configuration cache, % used
Shown as percent
zabbix.cache.write
(gauge)
Zabbix history write cache, % used
Shown as percent
zabbix.cache.index
(gauge)
Zabbix history index cache, % used
Shown as percent
zabbix.cache.write_trend
(gauge)
Zabbix trend write cache, % used
Shown as percent
zabbix.agent.ping
(gauge)
Zabbix agent ping
Shown as unit
zabbix.process.data_collector.vmware
(gauge)
Utilization of vmware data collector processes, in %
Shown as percent
zabbix.cache.value
(gauge)
Zabbix value cache, % used
Shown as percent
zabbix.cache.value.hits
(gauge)
Zabbix value cache hits
Shown as hit
zabbix.cache.value.misses
(gauge)
Zabbix value cache misses
Shown as miss
zabbix.cache.vmware
(gauge)
Zabbix vmware cache, % used
Shown as percent
zabbix.cache.operating_mode
(gauge)
Zabbix value cache operating mode
Shown as unit
zabbix.process.internal.task_manager
(gauge)
Utilization of task manager internal processes, in %
Shown as percent
zabbix.process.internal.ipmi_manager
(gauge)
Utilization of ipmi manager internal processes, in %
Shown as percent
zabbix.process.internal.alert_manager
(gauge)
Utilization of alert manager internal processes, in %
Shown as percent
zabbix.process.internal.preprocessing_manager
(gauge)
Utilization of preprocessing manager internal processes, in %
Shown as percent
zabbix.process.internal.preprocessing_worker
(gauge)
Utilization of preprocessing worker internal processes, in %
Shown as percent
zabbix.queue.preprocessing
(gauge)
Zabbix preprocessing queue
Shown as unit
zabbix.queue.lld
(gauge)
Zabbix LLD queue
Shown as unit
zabbix.process.internal.lld_manager
(gauge)
Utilization of LLD manager internal processes, in %
Shown as unit
zabbix.process.internal.lld_worker
(gauge)
Utilization of LLD worker internal processes, in %
Shown as percent
zabbix.cpu.count
(gauge)
Number of CPUs
Shown as unit
zabbix.cpu.iowait_time
(gauge)
CPU iowait time
zabbix.context_switches_per_sec
(gauge)
Context switches per second
zabbix.cpu.guest_nice_time
(gauge)
CPU guest nice time
zabbix.cpu.guest_time
(gauge)
CPU guest time
zabbix.cpu.softirq_time
(gauge)
CPU softirq time
zabbix.cpu.interrupt_time
(gauge)
CPU interrupt time
zabbix.cpu.steal_time
(gauge)
CPU steal time
zabbix.cpu.nice_time
(gauge)
CPU nice time
zabbix.load.avg.1_min
(gauge)
Load average (1m avg)
zabbix.cpu.user_time
(gauge)
CPU user time
zabbix.cpu.system_time
(gauge)
CPU system time
zabbix.cpu.idle_time
(gauge)
CPU idle time
zabbix.load.avg.15_min
(gauge)
Load average (15m avg)
zabbix.load.avg.5_min
(gauge)
Load average (5m avg)
zabbix.interrupts_per_sec
(gauge)
Interrupts per second
zabbix.memory.avail_percent
(gauge)
Available memory in %
zabbix.memory.total
(gauge)
Total memory
zabbix.memory.avail
(gauge)
Available memory
zabbix.swap_space.total
(gauge)
Total swap space
zabbix.swap_space.free
(gauge)
Free swap space
zabbix.swap_space.free_percent
(gauge)
Free swap space in %
zabbix.system.uptime
(gauge)
System uptime
zabbix.system.boot_time
(gauge)
System boot time
zabbix.system.local_time
(gauge)
System local time
zabbix.user.logged_in
(gauge)
Number of logged in users
zabbix.open_fd.max
(gauge)
Maximum number of open file descriptors
zabbix.processes_max
(gauge)
Maximum number of processes
zabbix.processes_count
(gauge)
Number of processes
zabbix.processes_running_count
(gauge)
Number of running processes
zabbix.cpu.used
(gauge)
CPU utilization
zabbix.agent.avail
(gauge)
Zabbix agent availability
zabbix.process.internal.alert_sync
(gauge)
Utilization of alert syncer internal processes, in %
Shown as percent
zabbix.memory.used
(gauge)
Memory utilization

Événements

Les alertes Zabbix sont recueillies en tant qu’événements dans le flux d’événements Datadog.

Checks de service

zabbix.can_connect
Returns CRITICAL if the Agent can’t connect to the Zabbix API, OK otherwise
Statuses: ok, critical

Dépannage

Besoin d’aide ? Contactez l’assistance Datadog.