OpenShift
Rapport de recherche Datadog : Bilan sur l'adoption de l'informatique sans serveur Rapport : Bilan sur l'adoption de l'informatique sans serveur

OpenShift

Agent Check Check de l'Agent

Supported OS: Linux

Présentation

Red Hat OpenShift est une plateforme d’applications de conteneur open source basée sur l’orchestrateur de conteneurs Kubernetes pour le développement et le déploiement d’applications d’entreprise.

Il n’existe actuellement aucun check openshift distinct. Cette page décrit la configuration nécessaire pour activer la collecte des métriques propres à OpenShift dans l’Agent. Les données décrites ici sont recueillies par le check kubernetes_apiserver. La configuration de ce check est nécessaire pour recueillir les métriques openshift.*.

Configuration

Installation

Pour installer l’Agent, consultez les instructions d’installation de l’Agent pour Kubernetes. La configuration par défaut a été conçue pour OpenShift 3.7.0+ et OpenShift 4.0+, car elle repose sur des fonctionnalités et des endpoints ajoutés dans ces versions.

Configuration

Depuis la version 6.1, l’Agent Datadog prend en charge la surveillance des clusters OpenShift Origin et Enterprise. En fonction de vos besoins et des contraintes de sécurité de votre cluster, trois scénarios de déploiement sont pris en charge :

Contraintes de contexte de sécurité (SCC)RestreintesRéseau hostPersonnalisées
Surveillance de la couche Kubernetes
Autodiscovery basé sur Kubernetes
Admission des données Dogstatsd🔶
Admission des traces d’APM🔶
Admission réseau des logs🔶
Métriques du réseau host
Surveillance de la couche Docker
Collecte des logs de conteneur
Surveillance des Live Containers
Surveillance des Live Processes
OpenShift 4.0+ : si vous avez utilisé le programme d'installation OpenShift sur un fournisseur de cloud pris en charge, vous devez déployer l'Agent avec hostNetwork: true dans le fichier de configuration datadog.yaml pour récupérer les tags et alias. L'accès aux serveurs de métadonnées à partir du réseau des POD est autrement impossible.

Collecte de logs

Reportez-vous à la documentation relative à la collecte de logs Kubernetes pour en savoir plus.

Opérations avec SCC restreintes

Ce mode ne nécessite pas l’octroi d’autorisations spéciales au daemonset datadog-agent, à l’exception des autorisations RBAC qui permettent d’accéder à Kubelet et à l’APIserver. Pour commencer, utilisez ce modèle destiné à Kubelet.

La méthode d’ingestion conseillée pour Dogstatsd, l’APM, et les logs consiste à binder l’Agent Datadog sur un port du host. Ainsi, l’IP cible reste fixe et peut facilement être identifiée par vos applications. Comme les SCC OpenShift restreintes par défaut ne permettent pas de binder sur un port du host, vous pouvez configurer l’Agent de façon à ce qu’il effectue l’écoute sur sa propre adresse IP. Toutefois, vous devrez vous-même configurer la détection de cette IP depuis votre application.

L’Agent peut être lancé en mode sidecar, ce qui vous permet de l’exécuter dans le pod de votre application pour une identification simplifiée.

Opérations avec SCC de réseau host

Ajoutez l’autorisation allowHostPorts au pod (via la SCC hostnetwork ou hostaccess standard, ou en créant votre propre SCC). Dans ce cas, vous pouvez ajouter les bindings de port appropriés dans les spécifications de vos pods :

ports:
  - containerPort: 8125
    name: dogstatsdport
    protocol: UDP
  - containerPort: 8126
    name: traceport
    protocol: TCP

SCC Datadog personnalisées pour un accès à toutes les fonctionnalités

Si SELinux est en mode permissif ou désactivé, activez la SCC hostaccess pour profiter de toutes les fonctionnalités. Si SELinux est en mode strict, il est conseillé d’accorder le type spc_t au pod datadog-agent. Pour déployer votre Agent, Datadog a créé une SCC datadog-agent que vous pouvez appliquer après la création du compte du service datadog-agent. Cette SCC accorde les autorisations suivantes :

  • allowHostPorts: true : permet de binder les admissions Dogstatsd/APM/Logs sur l’IP du nœud.
  • allowHostPID: true : permet la détection de l’origine des métriques DogStatsD envoyées par le socket Unix.
  • volumes: hostPath : accède au socket Docker et aux dossiers proc et cgroup du host afin de recueillir les métriques.
  • SELinux type: spc_t : accède au socket Docker et aux dossiers proc et cgroup de tous les processus afin de recueillir les métriques. Pour en savoir plus, lisez cet article de Red Hat (en anglais).
N'oubliez pas d'ajouter le compte de service datadog-agent à la SCC datadog-agent nouvellement créée en ajoutant system:serviceaccount:: à la section users.
OpenShift 4.0+ : si vous avez utilisé le programme d'installation OpenShift sur un fournisseur de cloud pris en charge, vous devez déployer l'Agent avec allowHostNetwork: true dans le fichier de configuration datadog.yaml pour récupérer les tags et alias. L'accès aux serveurs de métadonnées à partir du réseau des POD est autrement impossible.

Remarque : le socket Docker appartient au groupe root. Vous devez donc élever les privilèges de l’Agent pour pouvoir récupérer les métriques Docker. Pour exécuter le processus de l’Agent en tant qu’utilisateur root, vous pouvez configurer votre SCC de la façon suivante :

runAsUser:
  type: RunAsAny

Validation

Consultez kubernetes_apiserver

Données collectées

Métriques

openshift.clusterquota.cpu.used
(gauge)
Observed cpu usage by cluster resource quota for all namespaces
Shown as cpu
openshift.clusterquota.cpu.limit
(gauge)
Hard limit for cpu by cluster resource quota for all namespaces
Shown as cpu
openshift.clusterquota.cpu.remaining
(gauge)
Remaining available cpu by cluster resource quota for all namespaces
Shown as cpu
openshift.clusterquota.memory.used
(gauge)
Observed memory usage by cluster resource quota for all namespaces
Shown as byte
openshift.clusterquota.memory.limit
(gauge)
Hard limit for memory by cluster resource quota for all namespaces
Shown as byte
openshift.clusterquota.memory.remaining
(gauge)
Remaining available memory by cluster resource quota for all namespaces
Shown as byte
openshift.clusterquota.pods.used
(gauge)
Observed pods usage by cluster resource quota for all namespaces
openshift.clusterquota.pods.limit
(gauge)
Hard limit for pods by cluster resource quota for all namespaces
openshift.clusterquota.pods.remaining
(gauge)
Remaining available pods by cluster resource quota for all namespaces
openshift.clusterquota.services.used
(gauge)
Observed services usage by cluster resource quota for all namespaces
openshift.clusterquota.services.limit
(gauge)
Hard limit for services by cluster resource quota for all namespaces
openshift.clusterquota.services.remaining
(gauge)
Remaining available services by cluster resource quota for all namespaces
openshift.clusterquota.persistentvolumeclaims.used
(gauge)
Observed persistent volume claims usage by cluster resource quota for all namespaces
openshift.clusterquota.persistentvolumeclaims.limit
(gauge)
Hard limit for persistent volume claims by cluster resource quota for all namespaces
openshift.clusterquota.persistentvolumeclaims.remaining
(gauge)
Remaining available persistent volume claims by cluster resource quota for all namespaces
openshift.clusterquota.services.nodeports.used
(gauge)
Observed service node ports usage by cluster resource quota for all namespaces
openshift.clusterquota.services.nodeports.limit
(gauge)
Hard limit for service node ports by cluster resource quota for all namespaces
openshift.clusterquota.services.nodeports.remaining
(gauge)
Remaining available service node ports by cluster resource quota for all namespaces
openshift.clusterquota.services.loadbalancers.used
(gauge)
Observed service load balancers usage by cluster resource quota for all namespaces
openshift.clusterquota.services.loadbalancers.limit
(gauge)
Hard limit for service load balancers by cluster resource quota for all namespaces
openshift.clusterquota.services.loadbalancers.remaining
(gauge)
Remaining available service load balancers by cluster resource quota for all namespaces
openshift.appliedclusterquota.cpu.used
(gauge)
Observed cpu usage by cluster resource quota and namespace
Shown as cpu
openshift.appliedclusterquota.cpu.limit
(gauge)
Hard limit for cpu by cluster resource quota and namespace
Shown as cpu
openshift.appliedclusterquota.cpu.remaining
(gauge)
Remaining available cpu by cluster resource quota and namespace
Shown as cpu
openshift.appliedclusterquota.memory.used
(gauge)
Observed memory usage by cluster resource quota and namespace
Shown as byte
openshift.appliedclusterquota.memory.limit
(gauge)
Hard limit for memory by cluster resource quota and namespace
Shown as byte
openshift.appliedclusterquota.memory.remaining
(gauge)
Remaining available memory by cluster resource quota and namespace
Shown as byte
openshift.appliedclusterquota.pods.used
(gauge)
Observed pods usage by cluster resource quota and namespace
openshift.appliedclusterquota.pods.limit
(gauge)
Hard limit for pods by cluster resource quota and namespace
openshift.appliedclusterquota.pods.remaining
(gauge)
Remaining available pods by cluster resource quota and namespace
openshift.appliedclusterquota.services.used
(gauge)
Observed services usage by cluster resource quota and namespace
openshift.appliedclusterquota.services.limit
(gauge)
Hard limit for services by cluster resource quota and namespace
openshift.appliedclusterquota.services.remaining
(gauge)
Remaining available services by cluster resource quota and namespace
openshift.appliedclusterquota.persistentvolumeclaims.used
(gauge)
Observed persistent volume claims usage by cluster resource quota and namespace
openshift.appliedclusterquota.persistentvolumeclaims.limit
(gauge)
Hard limit for persistent volume claims by cluster resource quota and namespace
openshift.appliedclusterquota.persistentvolumeclaims.remaining
(gauge)
Remaining available persistent volume claims by cluster resource quota and namespace
openshift.appliedclusterquota.services.nodeports.used
(gauge)
Observed service node ports usage by cluster resource quota and namespace
openshift.appliedclusterquota.services.nodeports.limit
(gauge)
Hard limit for service node ports by cluster resource quota and namespace
openshift.appliedclusterquota.services.nodeports.remaining
(gauge)
Remaining available service node ports by cluster resource quota and namespace
openshift.appliedclusterquota.services.loadbalancers.used
(gauge)
Observed service load balancers usage by cluster resource quota and namespace
openshift.appliedclusterquota.services.loadbalancers.limit
(gauge)
Hard limit for service load balancers by cluster resource quota and namespace
openshift.appliedclusterquota.services.loadbalancers.remaining
(gauge)
Remaining available service load balancers by cluster resource quota and namespace

Événements

Le check OpenShift n’inclut aucun événement.

Checks de service

Le check OpenShift n’inclut aucun check de service.

Dépannage

Besoin d’aide ? Contactez l’assistance Datadog.