Mesos

Ce check recueille des métriques pour les masters Mesos. Pour en savoir plus sur les métriques de slave Mesos, consultez la section relative à l’intégration Mesos Slave.

Dashboard Mesos Master

Présentation

Ce check recueille des métriques des masters Mesos pour :

  • les ressources du cluster ;
  • les slaves enregistrés, actifs, inactifs, connectés, déconnectés, etc. ;
  • le nombre de tâches échouées, terminées, en cours d’exécution, etc. ;
  • le nombre de frameworks actifs, inactifs, connectés ou déconnectés ;

et bien plus encore.

Implémentation

Installation

L’installation se fait de la même façon que vous utilisiez Mesos avec ou sans DC/OS. Exécutez le conteneur datadog-agent sur chacun de vos nœuds Mesos Master :

docker run -d --name datadog-agent \
  -v /var/run/docker.sock:/var/run/docker.sock:ro \
  -v /proc/:/host/proc/:ro \
  -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \
  -e DD_API_KEY= \
  -e MESOS_MASTER=true \
  -e MARATHON_URL=http://leader.mesos:8080 \
  datadog/agent:latest

Spécifiez votre clé d’API Datadog et votre URL d’API Mesos Master dans la commande ci-dessus.

Configuration

Si l’URL de master transmise au lancement de datadog-agent est valide, l’Agent utilise déjà un fichier mesos_master.d/conf.yaml par défaut pour recueillir les métriques de vos masters. Consultez le fichier d’exemple mesos_master.d/conf.yaml pour découvrir toutes les options de configuration disponibles.

Toutefois, vos métriques ne seront pas recueillies si l’API de votre master utilise un certificat auto-signé. Dans ce cas, spécifiez disable_ssl_validation: true dans mesos_master.d/conf.yaml.

Collecte de logs

  1. La collecte de logs est désactivée par défaut dans l’Agent Datadog. Vous devez l’activer dans datadog.yaml :

    logs_enabled: true
    
  2. Ajoutez ce bloc de configuration à votre fichier mesos_master.d/conf.yaml pour commencer à recueillir vos logs Mesos :

    logs:
      - type: file
        path: /var/log/mesos/*
        source: mesos
    

    Modifiez la valeur du paramètre path en fonction de votre environnement, ou utilisez le stdout Docker standard :

    logs:
      - type: docker
        source: mesos
    

    Consultez le fichier d’exemple mesos_master.d/conf.yaml pour découvrir toutes les options de configuration disponibles.

  3. Redémarrez l’Agent.

Pour activer les logs pour les environnements Kubernetes, consultez la section Collecte de logs avec Kubernetes.

Validation

Dans Datadog, recherchez mesos.cluster depuis la page Metrics Explorer.

Données collectées

Métriques

Événements

Le check Mesos-master n’inclut aucun événement.

Checks de service

mesos_master.can_connect
Renvoie CRITICAL si l’Agent n’est pas capable de se connecter à l’API Master Mesos pour recueillir des métriques. Si ce n’est pas le cas, renvoie OK.
Statuses: ok, critical

Dépannage

Besoin d’aide ? Contactez l’assistance Datadog.

Pour aller plus loin

Intégration Mesos Slave

Dashboard Slave Mesos

Présentation

Ce check de l’Agent recueille des métriques des slaves Mesos pour :

  • la charge système ;
  • le nombre de tâches échouées, terminées, en cours d’exécution, etc. ;
  • le nombre d’exécuteurs en cours d’exécution, terminés, etc. ;

Et bien plus encore.

Ce check crée également un check de service pour chaque tâche d’exécuteur.

Configuration

Installation

Consultez la documentation relative à l’installation de Datadog sur Mesos avec DC/OS pour installer l’Agent Datadog sur chaque nœud d’Agent Mesos avec l’interface Web DC/OS.

Procédure à suivre

DC/OS

  1. Depuis l’interface Web DC/OS, cliquez sur l’onglet Universe. Recherchez le paquet datadog et cliquez sur le bouton d’installation.
  2. Cliquez sur le bouton Advanced Installation.
  3. Saisissez votre clé d’API Datadog dans le premier champ.
  4. Dans le champ Instances, indiquez le nombre de nœuds slave dans votre cluster (pour déterminer ce nombre, cliquez sur l’onglet Nodes sur le côté gauche de l’interface Web DC/OS).
  5. Cliquez sur Review and Install, puis sur Install.

Marathon

Si vous n’utilisez pas DC/OS, définissez l’Agent Datadog via l’interface Web Marathon ou en transmettant le JSON ci-dessous à l’URL de l’API. Vous devrez remplacer <VOTRE_CLÉ_API_DATADOG> par votre clé d’API, et le nombre d’instances par le nombre de nœuds slave sur votre cluster. De plus, vous devrez peut-être mettre à jour l’image Docker pour la faire correspondre à un tag plus récent. Pour obtenir la dernière version de l’image, accédez au Docker Hub.

{
  "id": "/datadog-agent",
  "cmd": null,
  "cpus": 0.05,
  "mem": 256,
  "disk": 0,
  "instances": 1,
  "constraints": [
    ["hostname", "UNIQUE"],
    ["hostname", "GROUP_BY"]
  ],
  "acceptedResourceRoles": ["slave_public", "*"],
  "container": {
    "type": "DOCKER",
    "volumes": [
      {
        "containerPath": "/var/run/docker.sock",
        "hostPath": "/var/run/docker.sock",
        "mode": "RO"
      },
      { "containerPath": "/host/proc", "hostPath": "/proc", "mode": "RO" },
      {
        "containerPath": "/host/sys/fs/cgroup",
        "hostPath": "/sys/fs/cgroup",
        "mode": "RO"
      }
    ],
    "docker": {
      "image": "datadog/agent:latest",
      "network": "BRIDGE",
      "portMappings": [
        {
          "containerPort": 8125,
          "hostPort": 8125,
          "servicePort": 10000,
          "protocol": "udp",
          "labels": {}
        }
      ],
      "privileged": false,
      "parameters": [
        { "key": "name", "value": "datadog-agent" },
        { "key": "env", "value": "DD_API_KEY=<VOTRE_CLÉ_API_DATADOG>" },
        { "key": "env", "value": "MESOS_SLAVE=true" }
      ],
      "forcePullImage": false
    }
  },
  "healthChecks": [
    {
      "protocol": "COMMAND",
      "command": { "value": "/probe.sh" },
      "gracePeriodSeconds": 300,
      "intervalSeconds": 60,
      "timeoutSeconds": 20,
      "maxConsecutiveFailures": 3
    }
  ],
  "portDefinitions": [
    { "port": 10000, "protocol": "tcp", "name": "default", "labels": {} },
    { "port": 10001, "protocol": "tcp", "labels": {} }
  ]
}

Vous n’avez rien d’autre à faire après avoir installé l’Agent, sauf si vous souhaitez modifier la configuration du fichier mesos_slave.d/conf.yaml (pour ajouter le paramètre disable_ssl_validation: true, par exemple).

Collecte de logs

  1. La collecte de logs est désactivée par défaut dans l’Agent Datadog. Vous devez l’activer dans datadog.yaml :

    logs_enabled: true
    
  2. Ajoutez ce bloc de configuration à votre fichier mesos_slave.d/conf.yaml pour commencer à recueillir vos logs Mesos :

    logs:
      - type: file
        path: /var/log/mesos/*
        source: mesos
    

    Modifiez la valeur du paramètre path en fonction de votre environnement, ou utilisez le stdout Docker standard :

    logs:
      - type: docker
        source: mesos
    

    Consultez le fichier d’exemple mesos_slave.d/conf.yaml pour découvrir toutes les options de configuration disponibles.

  3. Redémarrez l’Agent.

Pour activer les logs pour les environnements Kubernetes, consultez la section Collecte de logs avec Kubernetes.

Validation

DC/OS

L’Agent Datadog devrait maintenant s’afficher dans l’onglet Services de l’interface Web DC/OS. Dans Datadog, recherchez mesos.slave depuis la page Metrics Explorer.

Marathon

Si vous n’utilisez pas DC/OS, vous trouverez datadog-agent dans la liste des applications en cours d’exécution avec un statut sain. Dans Datadog, recherchez mesos.slave depuis la page Metrics Explorer.

Données collectées

Métriques

Événements

Le check Mesos-slave n’inclut aucun événement.

Checks de service

mesos_slave.can_connect
Renvoie CRITICAL si l’Agent n’est pas capable de se connecter au endpoint « Mesos slave metrics ». Si ce n’est pas le cas, renvoie OK.
Statuses: ok, critical

Dépannage

Besoin d’aide ? Contactez l’assistance Datadog.

Pour aller plus loin

PREVIEWING: may/embedded-workflows