Cette page explique comment utiliser Stackdriver, Prometheus et Grafana pour la journalisation et la surveillance. Pour obtenir un récapitulatif des options de configuration disponibles, consultez la page Présentation de la journalisation et de la surveillance.
Utiliser Stackdriver
Les sections suivantes expliquent comment utiliser Stackdriver avec les clusters GKE On-Prem.
Ressources surveillées
Les ressources surveillées correspondent à la manière dont Google représente les ressources, telles que les clusters, les nœuds, les pods et les conteneurs. Pour en savoir plus, consultez la documentation Types de ressources surveillées de Cloud Monitoring.
Pour interroger des journaux et des métriques, vous devez au moins connaître les libellés de ressources suivants :
project_id
: ID du projet associé au cluster GKE On-Prem.location
: emplacement du cluster que vous avez fourni lors de l'installation.cluster_name
: nom du cluster défini lors de la création du cluster.Vous pouvez récupérer la valeur
cluster_name
du cluster d'administrateur ou d'utilisateur en inspectant la ressource personnalisée Stackdriver :kubectl -n kube-system get stackdrivers stackdriver -o yaml | grep 'clusterName:'
Accéder aux données des journaux
Vous pouvez accéder aux journaux à l'aide de l'explorateur de journaux de la console Google Cloud. Par exemple, pour accéder aux journaux d'un conteneur, procédez comme suit :
- Dans la console Google Cloud, ouvrez l'explorateur de journaux pour votre projet.
- Pour rechercher les journaux d'un conteneur, procédez comme suit :
- Cliquez sur la boîte déroulante du catalogue de journaux dans l'angle supérieur gauche, puis sélectionnez Conteneur Kubernetes.
- Sélectionnez le nom du cluster, l'espace de noms et un conteneur de la hiérarchie.
Accéder aux données des métriques
Vous pouvez accéder aux métriques via l'explorateur de métriques dans la console Google Cloud. Vous pouvez choisir parmi plus de 3 000 métriques.
Accéder aux métadonnées Stackdriver
Les métadonnées sont utilisées indirectement via les métriques. Dans l'explorateur de métriques Stackdriver, des options vous permettent de filtrer les métriques par metadata.systemLabels
et metadata.userLabels
. Les libellés système correspondent à des libellés tels que le nom du nœud et le nom du service pour les pods. Les libellés utilisateur sont des libellés attribués aux pods dans les fichiers YAML Kubernetes dans la section "Métadonnées" de la spécification du pod.
Prometheus et Grafana
Les sections suivantes expliquent comment utiliser Prometheus et Grafana avec des clusters GKE On-Prem.
Accéder aux métriques de surveillance à partir des tableaux de bord Grafana
Grafana affiche les métriques collectées à partir de vos clusters. Pour les consulter, vous devez accéder aux tableaux de bord de Grafana :
Obtenez le nom du pod Grafana qui s'exécute dans l'espace de noms
kube-system
d'un cluster d'utilisateur :kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] -n kube-system get pods
Où [USER_CLUSTER_KUBECONFIG] est le fichier kubeconfig du cluster d'utilisateur.
Le conteneur du pod Grafana écoute sur le port TCP 3000. Transférez un port local vers le port 3000 du pod afin de pouvoir afficher les tableaux de bord de Grafana depuis un navigateur Web.
Par exemple, supposons que le nom du pod soit
grafana-0
. Pour transférer le port 50000 vers le port 3000 du pod, saisissez la commande suivante :kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] -n kube-system port-forward grafana-0 50000:3000
Dans votre navigateur Web, accédez à la page
http://localhost:50000
. Le tableau de bord du cluster d'utilisateur doit se charger sur la page d'accueil de Grafana.Pour accéder à d'autres tableaux de bord, cliquez sur le menu déroulant Home (Accueil) dans l'angle supérieur gauche de la page.
Pour obtenir un exemple d'utilisation de Grafana, consultez Créer un tableau de bord Grafana.
Accéder aux alertes
Prometheus Alertmanager collecte les alertes du serveur Prometheus. Vous pouvez afficher ces alertes dans un tableau de bord Grafana. Pour ce faire, vous devez accéder au tableau de bord :
Le conteneur du pod
alertmanger-0
écoute sur le port TCP 9093. Transférez un port local vers le port 9093 du pod :kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] port-forward \ -n kube-system alertmanager-0 50001:9093
Dans votre navigateur Web, accédez à la page
http://localhost:50001
.
Modifier la configuration de Prometheus Alertmanager
Vous pouvez modifier la configuration par défaut de Prometheus Alertmanager en modifiant le fichier monitoring.yaml
de votre cluster d'utilisateur. Vous devez effectuer cette opération si vous souhaitez diriger les alertes vers une destination spécifique au lieu de les conserver dans le tableau de bord. Pour apprendre à configurer Alertmanager, consultez la documentation sur la configuration de Prometheus.
Pour modifier la configuration d'Alertmanager, procédez comme suit :
Créez une copie du fichier manifeste
monitoring.yaml
du cluster d'utilisateur :kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] -n kube-system \ get monitoring monitoring-sample -o yaml > monitoring.yaml
Pour configurer Alertmanager, modifiez les champs sous
spec.alertmanager.yml
. Lorsque vous avez terminé, enregistrez le fichier manifeste modifié.Appliquez le fichier manifeste à votre cluster :
kubectl apply --kubeconfig [USER_CLUSTER_KUBECONIFG] -f monitoring.yaml
Effectuer le scaling des ressources Prometheus
La configuration de la surveillance par défaut accepte jusqu'à cinq nœuds. Pour les clusters plus volumineux, vous pouvez ajuster les ressources du serveur Prometheus. Nous vous recommandons d'utiliser des cœurs de processeur de 50 milliCPU et 500 Mio de mémoire par nœud de cluster. Assurez-vous que votre cluster contient deux nœuds, chacun disposant de suffisamment de ressources pour s'adapter à Prometheus. Pour en savoir plus, consultez Redimensionner un cluster d'utilisateur.
Pour modifier les ressources du serveur Prometheus, procédez comme suit :
Créez une copie du fichier manifeste
monitoring.yaml
du cluster d'utilisateur :kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] -n kube-system get monitoring monitoring-sample -o yaml > monitoring.yaml
Pour remplacer des ressources, modifiez les champs sous
spec.resourceOverride
. Lorsque vous avez terminé, enregistrez le fichier manifeste modifié. Exemple :spec: resourceOverride: - component: Prometheus resources: requests: cpu: 300m memory: 3000Mi limits: cpu: 300m memory: 3000Mi
Appliquez le fichier manifeste à votre cluster :
kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] apply -f monitoring.yaml
Créer un tableau de bord Grafana
Vous avez déployé une application qui expose une métrique et vérifié que celle-ci est exposée et que Prometheus l'extrait. Vous pouvez désormais ajouter la métrique au niveau de l'application dans un tableau de bord Grafana personnalisé.
Pour créer un tableau de bord Grafana, procédez comme suit :
- Si nécessaire, accédez à Grafana.
- Dans le tableau de bord de la page d'accueil, cliquez sur le menu déroulant Home (Accueil) dans l'angle supérieur gauche de la page.
- Dans le menu de droite, cliquez sur New dashboard (Nouveau tableau de bord).
- Dans la section New panel (Nouveau panneau), cliquez sur Graph (Graphique). Un tableau de bord de graphique vide s'affiche.
- Cliquez sur Panel title (Titre du panneau), puis sur Edit (Modifier). Le panneau Graph (Graphique) du bas s'ouvre dans l'onglet Metrics (Métriques).
- Dans le menu déroulant Data Source (Source de données), sélectionnez user (utilisateur). Cliquez sur Add query (Ajouter une requête), puis saisissez
foo
dans le champ search (recherche). - Cliquez sur le bouton Back to dashboard (Revenir au tableau de bord) dans l'angle supérieur droit de l'écran. Votre tableau de bord s'affiche.
- Pour enregistrer le tableau de bord, cliquez sur Save dashboard (Enregistrer le tableau de bord) dans l'angle supérieur droit de l'écran. Choisissez un nom pour le tableau de bord, puis cliquez sur Save (Enregistrer).
Désactiver la surveillance au sein du cluster
Pour désactiver la surveillance au sein du cluster, saisissez la commande suivante :
kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] -n kube-system delete monitoring monitoring-sample
Exemple : Ajouter des métriques au niveau de l'application dans un tableau de bord Grafana
Les sections suivantes vous expliquent comment ajouter des métriques pour une application. Dans cette section, vous allez effectuer les tâches suivantes :
- Déployer un exemple d'application qui expose une métrique nommée
foo
- Vérifier que Prometheus expose et extrait la métrique
- Créer un tableau de bord Grafana personnalisé
Déployer l'exemple d'application
L'exemple d'application s'exécute dans un seul pod. Le conteneur du pod affiche une métrique, foo
, avec une valeur constante de 40
.
Créez le fichier manifeste de pod suivant, pro-pod.yaml
:
apiVersion: v1
kind: Pod
metadata:
name: prometheus-example
annotations:
prometheus.io/scrape: 'true'
prometheus.io/port: '8080'
prometheus.io/path: '/metrics'
spec:
containers:
- image: k8s.gcr.io/prometheus-dummy-exporter:v0.1.0
name: prometheus-example
command:
- /bin/sh
- -c
- ./prometheus_dummy_exporter --metric-name=foo --metric-value=40 --port=8080
Appliquez ensuite le fichier manifeste du pod à votre cluster d'utilisateur :
kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] apply -f pro-pod.yaml
Vérifier que la statistique est exposée et extraite
Le conteneur du pod
prometheus-example
écoute sur le port TCP 8080. Transférez un port local vers le port 8080 du pod :kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] port-forward prometheus-example 50002:8080
Pour vérifier que l'application expose la métrique, exécutez la commande suivante :
curl localhost:50002/metrics | grep foo
La commande renvoie le résultat suivant :
# HELP foo Custom metric # TYPE foo gauge foo 40
Le conteneur du pod
prometheus-0
écoute sur le port TCP 9090. Transférez un port local vers le port 9090 du pod :kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] port-forward prometheus-0 50003:9090
Pour vérifier que Prometheus extrait la métrique, accédez à la page http://localhost:50003/targets qui doit vous rediriger vers le pod
prometheus-0
du groupe cibleprometheus-io-pods
.Pour afficher les métriques dans Prometheus, accédez à la page http://localhost:50003/graph. Dans le champ search (recherche), saisissez
foo
, puis cliquez sur Execute (Exécuter). La page doit afficher la métrique.