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 :
Configurez Calico sur votre cluster.
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.
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
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
.
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 :
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.
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
.
Redémarrez l’Agent.
Collecte de métriques
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.
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
:
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ètre | Valeur |
---|
<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ètre | Valeur |
---|
<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.