calico

Supported OS Linux Mac OS Windows

Intégration1.1.0

Présentation

Ce check permet de surveiller Calico avec l’Agent Datadog.

Le check Calico envoie des métriques relatives au réseau et à la sécurité d’un cluster Kubernetes configuré avec Calico.

Configuration

Installation

Le check Calico est inclus avec le package de l’Agent Datadog.

Installation avec un Agent basé sur un cluster Kubernetes

Avec des annotations :

  1. Configurez Calico sur votre cluster.

  2. Activez les métriques Prometheus en suivant les instructions fournies sur la page Surveiller les métriques des composants Calico (en anglais). Une fois ces métriques activées, le service felix-metrics-svc, ainsi que le service prometheus-pod, devraient s’exécuter dans votre cluster.

  3. Pour utiliser Autodiscovery, modifiez prometheus-pod. Ajoutez l’extrait de code suivant dans votre fichier de configuration YAML Prometheus :

    metadata:
      [...]
      annotations:
       ad.datadoghq.com/prometheus-pod.check_names: |
       ["openmetrics"]
       ad.datadoghq.com/prometheus-pod.init_configs: |
       [{}]
       ad.datadoghq.com/prometheus-pod.instances: |
         [
            {
               "prometheus_url": "http://<FELIX-SERVICE-IP>:<FELIX-SERVICE-PORT>/metrics",
               "namespace": "calico",
               "metrics": ["*"]
            }
         ]
      spec:
        [....]
    

Pour trouver des valeurs pour <FELIX-SERVICE-IP> et <FELIX-SERVICE-PORT>, exécutez kubectl get all -all-namespaces.

Installation avec un Agent basé sur le système d’exploitation

  1. Suivez les instructions de la page Surveiller les métriques des composants Calico (en anglais) jusqu’à ce que le service felix-metrics-svc s’exécute à l’aide de la commande kubectl get all --all-namespaces.

  2. Si vous utilisez minikube, vous devez transmettre le port 9091 à felix-metrics-svc. Exécutez la commande kubectl port-forward service/felix-metrics-svc 9091:9091 -n kube-system.

    Si vous n’utilisez pas minikube, vérifiez que felix-metrics-svc possède une adresse IP externe. Si ce n’est pas le cas, utilisez kubectl edit svc afin de remplacer son type ClusterIP par LoadBalancer.

Configuration

Suivez les instructions ci-dessous pour configurer ce check lorsque l’Agent est exécuté sur un host. Consultez la section Environnement conteneurisé pour en savoir plus sur les environnements conteneurisés.

Host

Pour configurer ce check lorsque l’Agent est exécuté sur un host :

  1. Modifiez le fichier calico.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 Calico. Le seul paramètre requis est l’URL openmetrics_endpoint. Consultez le fichier d’exemple calico.d/conf.yaml pour découvrir toutes les options de configuration disponibles.

  2. Si vous utilisez minikube, utilisez ‘http://localhost:9091/metrics’ comme URL openmetrics_endpoint. Si vous n’utilisez pas minikube, utilisez http://<IP-EXTERNE-FELIX-METRICS-SVC>:<PORT>/metrics comme URL openmetrics_endpoint.

  3. Redémarrez l’Agent.

Collecte de métriques
  1. La configuration par défaut de votre fichier cassandra.d/conf.yaml active la collecte de vos métriques Calico. Consultez le fichier d’exemple calico.d/conf.yaml pour découvrir toutes les options de configuration disponibles.

  2. Redémarrez l’Agent.

Collecte de logs

Étant donné que la structure Calico est configurée dans un cluster Kubernetes, elle est constituée de déploiements, de pods et de services. L’intégration Kubernetes récupère des logs à partir de conteneurs.

Après avoir configuré l’intégration Kubernetes, les logs Calico s’affichent dans le Log Explorer de Datadog.

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

Environnement conteneurisé

Consultez la documentation relative aux modèles d’intégration Autodiscovery pour découvrir comment appliquer les paramètres ci-dessous à un environnement conteneurisé.

Collecte de métriques
ParamètreValeur
<NOM_INTÉGRATION>calico
<CONFIG_INIT>vide ou {}
<CONFIG_INSTANCE>{openmetrics_endpoint: <ENDPOINT_OPENMETRICS>}
Collecte de logs

La collecte des logs est désactivée par défaut dans l’Agent Datadog. Pour l’activer, consultez la section Collecte de logs Kubernetes.

ParamètreValeur
<CONFIG_LOG>{"source": "calico", "service": "<NOM_SERVICE>"}

Validation

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

Métriques

calico.felix.active.local_endpoints
(gauge)
Number of active endpoints on this host
calico.felix.active.local_policies
(gauge)
Number of policies on this host
calico.felix.active.local_selectors
(gauge)
Number of active selectors on this host
calico.felix.active.local_tags
(gauge)
Number of active tags on this host [versions < Calico v3.23]
calico.felix.cluster.num_host_endpoints
(gauge)
Total number of host endpoints cluster-wide
calico.felix.cluster.num_hosts
(gauge)
Total number of Calico hosts in the cluster
calico.felix.cluster.num_workload_endpoints
(gauge)
Total number of workload endpoints cluster-wide
calico.felix.int_dataplane_failures.count
(count)
Number of dataplane failures.
calico.felix.ipset.calls.count
(count)
Number of ipset commands executed
calico.felix.ipset.errors.count
(count)
Number of ipset command failures
calico.felix.ipsets.calico
(gauge)
Number of active Calico IP sets.
calico.felix.ipsets.total
(gauge)
Total number of active IP sets.
calico.felix.iptables.chains
(gauge)
Number of active iptables chains.
calico.felix.iptables.restore_calls.count
(count)
Number of iptables-restore calls.
calico.felix.iptables.restore_errors.count
(count)
Number of iptables-restore errors.
calico.felix.iptables.rules
(gauge)
Number of active iptables rules.
calico.felix.iptables.save_calls.count
(count)
Number of iptables-save calls.
calico.felix.iptables.save_errors.count
(count)
Number of iptables-save errors.

Événements

L’intégration Calico n’inclut aucun événement.

Checks de service

Dépannage

Besoin d’aide ? Contactez l’assistance Datadog.