En esta página, se muestra cómo configurar un clúster para los clústeres de Anthos en equipos físicos a fin de que las métricas y los registros personalizados de las aplicaciones de usuarios se envíen a Cloud Logging y Cloud Monitoring.
Habilita Logging y Monitoring para las aplicaciones de usuario
A fin de habilitar Logging y Monitoring para tus aplicaciones, usa el campo spec.clusterOperations.enableApplication
en el archivo de configuración del clúster.
Actualiza el archivo de configuración del clúster para establecer
enableApplication
entrue
:apiVersion: v1 kind: Namespace metadata: name: cluster-user-basic --- apiVersion: baremetal.cluster.gke.io/v1 kind: Cluster metadata: name: user-basic namespace: cluster-user-basic spec: type: user ... clusterOperations: projectID: project-fleet location: us-central1 enableApplication: true ...
Usa
bmctl update
para aplicar los cambios:bmctl update cluster -c CLUSTER_NAME --admin-kubeconfig=ADMIN_KUBECONFIG
Reemplaza lo siguiente:
CLUSTER_NAME
: el nombre del clúster que se actualizaráADMIN_KUBECONFIG
es la ruta al archivo kubeconfig del clúster de administrador.
Anota las cargas de trabajo
Para habilitar la recopilación de métricas personalizadas de una aplicación, agrega la anotación prometheus.io/scrape: "true"
al manifiesto de servicio o pod de la aplicación, o agrega la misma anotación a la sección spec.template
en el manifiesto de implementación o DaemonSet para pasar a sus pods.
Ejecuta una aplicación de ejemplo
En esta sección, crearás una aplicación que escriba registros personalizados y exponga una métrica personalizada.
Guarda los siguientes manifiestos de Service y Deployment en un archivo llamado
my-app.yaml
. Ten en cuenta que el Service tiene la anotaciónprometheus.io/scrape: "true"
:kind: Service apiVersion: v1 metadata: name: "monitoring-example" namespace: "default" annotations: prometheus.io/scrape: "true" spec: selector: app: "monitoring-example" ports: - name: http port: 9090 --- apiVersion: apps/v1 kind: Deployment metadata: name: "monitoring-example" namespace: "default" labels: app: "monitoring-example" spec: replicas: 1 selector: matchLabels: app: "monitoring-example" template: metadata: labels: app: "monitoring-example" spec: containers: - image: gcr.io/google-samples/prometheus-dummy-exporter:latest name: prometheus-example-exporter imagePullPolicy: Always command: - /bin/sh - -c - ./prometheus-dummy-exporter --metric-name=example_monitoring_up --metric-value=1 --port=9090 resources: requests: cpu: 100m
Crea el Deployment y el Service:
kubectl --kubeconfig CLUSTER_KUBECONFIG apply -f my-app.yaml
Ver los registros de la aplicación
Consola
Ve al Explorador de registros en la consola de Google Cloud.
Haz clic en Recurso. En ALL_RESOURCE_TYPES, selecciona
Kubernetes Container
.En CLUSTER_NAME, selecciona el nombre de tu clúster de usuario.
En NAMESPACE_NAME, selecciona
default
.Haz clic en Agregar y, luego, en Ejecutar consulta.
En Resultados de la consulta, puedes ver las entradas de registro del Deployment
monitoring-example
. Por ejemplo:{ "textPayload": "2020/11/14 01:24:24 Starting to listen on :9090\n", "insertId": "1oa4vhg3qfxidt", "resource": { "type": "k8s_container", "labels": { "pod_name": "monitoring-example-7685d96496-xqfsf", "cluster_name": ..., "namespace_name": "default", "project_id": ..., "location": "us-west1", "container_name": "prometheus-example-exporter" } }, "timestamp": "2020-11-14T01:24:24.358600252Z", "labels": { "k8s-pod/pod-template-hash": "7685d96496", "k8s-pod/app": "monitoring-example" }, "logName": "projects/.../logs/stdout", "receiveTimestamp": "2020-11-14T01:24:39.562864735Z" }
gcloud
Ejecuta este comando:
gcloud logging read 'resource.labels.project_id="PROJECT_ID" AND \ resource.type="k8s_container" AND resource.labels.namespace_name="default"'
Reemplaza
PROJECT_ID
por el ID de tu proyecto.En el resultado, puedes ver las entradas de registro del Deployment
monitoring-example
. Por ejemplo:insertId: 1oa4vhg3qfxidt labels: k8s-pod/app: monitoring-example k8s- pod/pod-template-hash: 7685d96496 logName: projects/.../logs/stdout receiveTimestamp: '2020-11-14T01:24:39.562864735Z' resource: labels: cluster_name: ... container_name: prometheus-example-exporter location: us-west1 namespace_name: default pod_name: monitoring-example-7685d96496-xqfsf project_id: ... type: k8s_container textPayload: | 2020/11/14 01:24:24 Starting to listen on :9090 timestamp: '2020-11-14T01:24:24.358600252Z'
Ve las métricas de la aplicación en la consola de Google Cloud
Tu aplicación de ejemplo expone una métrica personalizada llamada example_monitoring_up
.
Puedes ver los valores de esa métrica en la consola de Google Cloud.
Ve al Explorador de métricas en la consola de Google Cloud.
En Resource type (Tipo de recurso), selecciona
Kubernetes Pod
oKubernetes Container
.En metric, selecciona
external.googleapis.com/prometheus/example_monitoring_up
.En el gráfico, puedes ver que
example_monitoring_up
tiene un valor repetido de 1.