Consulta la documentación de una versión anterior de GKE On-Prem. Consulta la documentación más reciente.

Usar registro y supervisión

En esta página, se explica cómo usar Stackdriver, Prometheus y Grafana para el registro y la supervisión. Consulta la Descripción general de Registro y supervisión para ver un resumen de las opciones de configuración disponibles.

Usa Stackdriver

En las siguientes secciones, se explica cómo usar Stackdriver con clústeres de GKE On-Prem.

Recursos supervisados

Los recursos supervisados son la forma en que Google representa recursos como clústeres, nodos, Pods y contenedores. Para obtener más información, consulta la documentación de los tipos de recursos supervisados de Cloud Monitoring.

Para consultar los registros y las métricas, debes conocer al menos estas etiquetas de recursos:

  • project_id: Es el ID del proyecto para el proyecto asociado con el clúster de GKE On-Prem.
  • location: una región de GCP en la que deseas almacenar registros de Stackdriver Te recomendamos que elijas una región cercana a tu centro de datos local. Proporcionaste este valor durante la instalación.
  • cluster_name: Es el nombre del clúster que elegiste cuando lo creaste.

    Puedes recuperar el valor cluster_name para el clúster de administrador o de usuario si inspeccionas el recurso personalizado de Stackdriver:

      kubectl -n kube-system get stackdrivers stackdriver -o yaml | grep 'clusterName:'

Accede a los datos de registro

Puedes acceder a los registros a través del Visor de registros en Cloud Console. Por ejemplo, para acceder a los registros de un contenedor, sigue estos pasos:

  1. Abre el Visor de registros en Cloud Console de tu proyecto.
  2. Busca los registros para un contenedor de la siguiente manera:
    1. Haz clic en el cuadro desplegable de catálogo de registros en la parte superior izquierda y selecciona Contenedor de Kubernetes.
    2. Selecciona el nombre del clúster, el espacio de nombres y un contenedor de la jerarquía.

Accede a los datos de las métricas

Puedes elegir entre más de 3,000 métricas mediante el Explorador de métricas. Para acceder al Explorador de métricas, sigue estos pasos:

  1. En Google Cloud Console, selecciona Monitoring o usa el siguiente botón:

    Ir a Monitoring

  2. Selecciona Recursos > Explorador de métricas.

Accede a los metadatos de Stackdriver

Los metadatos se usan de forma indirecta a través de las métricas. Cuando filtras las métricas en el Explorador de métricas de Stackdriver, verás opciones para filtrar métricas por metadata.systemLabels y metadata.userLabels. Las etiquetas del sistema son etiquetas, como el nombre del nodo y el nombre del servicio de Pods. Las etiquetas de usuario son etiquetas asignadas a los Pods en los archivos YAML de Kubernetes en la sección “metadatos” de la especificación del Pod.

Prometheus y Grafana

En las siguientes secciones, se explica cómo usar Prometheus y Grafana con clústeres de GKE On-Prem.

Accede a las métricas de supervisión desde los paneles de Grafana

Grafana muestra las métricas recopiladas de tus clústeres. Para ver estas métricas, debes acceder a los paneles de Grafana:

  1. Obtén el nombre del Pod de Grafana que se ejecuta en el espacio de nombres kube-system de un clúster de usuario:

    kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] -n kube-system get pods

    En el ejemplo anterior, [USER_CLUSTER_KUBECONFIG] es el archivo kubeconfig del clúster de usuario.

  2. El contenedor en el Pod de Grafana escucha en el puerto TCP 3000. Reenvía un puerto local al puerto 3000 en el Pod, para que puedas ver los paneles de Grafana desde un navegador web.

    Por ejemplo, supongamos que el nombre del Pod es grafana-0. Para reenviar el puerto 50000 al puerto 3000 en el Pod, ingresa este comando:

    kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] -n kube-system port-forward grafana-0 50000:3000
  3. Desde un navegador web, ve a http://localhost:50000. Se debe cargar el panel principal de Grafana del clúster de usuario.

  4. Para acceder a otros paneles, haz clic en el menú desplegable Página principal en la esquina superior izquierda de la página.

Para ver un ejemplo del uso de Grafana, consulta Crea un panel de Grafana.

Accede a las alertas

Prometheus Alertmanager recopila alertas del servidor de Prometheus. Puedes ver estas alertas en un panel de Grafana. Para ver las alertas, debes acceder al panel:

  1. El contenedor en el Pod alertmanger-0 escucha en el puerto TCP 9093. Reenvía un puerto local al puerto 9093 en el Pod:

    kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] port-forward \
       -n kube-system alertmanager-0 50001:9093
  2. Desde un navegador web, ve a http://localhost:50001.

Cambia la configuración de Prometheus Alertmanager

Puedes cambiar la configuración predeterminada de Prometheus Alertmanager si editas el archivo monitoring.yaml de tu clúster de usuario. Debes hacerlo si deseas enviar alertas a un destino específico, en lugar de mantenerlos en el panel. Puedes obtener información sobre cómo configurar Alertmanager en la documentación de Configuration de Prometheus.

Para cambiar la configuración de Alertmanager, sigue estos pasos:

  1. Realiza una copia del archivo de manifiesto monitoring.yaml del clúster de usuario:

    kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] -n kube-system \
       get monitoring monitoring-sample -o yaml > monitoring.yaml
  2. Para configurar Alertmanager, realiza los cambios en los campos de spec.alertmanager.yml. Cuando termines, guarda el manifiesto que cambiaste.

  3. Aplica el manifiesto a tu clúster:

    kubectl apply --kubeconfig [USER_CLUSTER_KUBECONIFG] -f monitoring.yaml

Escala recursos de Prometheus

La configuración de supervisión predeterminada admite hasta cinco nodos. Para clústeres más grandes, puedes ajustar los recursos del servidor de Prometheus. La recomendación es de 50m núcleos de CPU y 500Mi de memoria por nodo de clúster. Asegúrate de que tu clúster contenga dos nodos, cada uno con recursos suficientes para ajustarse a Prometheus. Para obtener más información, consulta Cambia el tamaño de un clúster de usuario.

Para cambiar los recursos del servidor de Prometheus, sigue estos pasos:

  1. Realiza una copia del archivo de manifiesto monitoring.yaml del clúster de usuario:

    kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] -n kube-system get monitoring monitoring-sample -o yaml > monitoring.yaml
  2. Para anular los recursos, realiza cambios en los campos de spec.resourceOverride. Cuando termines, guarda el manifiesto que cambiaste. Ejemplo:

    spec:
      resourceOverride:
      - component: Prometheus
        resources:
          requests:
            cpu: 300m
            memory: 3000Mi
          limits:
            cpu: 300m
            memory: 3000Mi
    
  3. Aplica el manifiesto a tu clúster:

    kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] apply -f monitoring.yaml

Crea un panel de Grafana

Implementaste una aplicación que extrae una métrica, verificaste que la métrica se expone y verificaste que Prometheus recopila la métrica. Ahora puedes agregar la métrica a nivel de la aplicación a un panel personalizado de Grafana.

Para crear un panel de Grafana, sigue estos pasos:

  1. Si es necesario, obtén acceso a Grafana.
  2. En el Panel principal, haz clic en el menú desplegable Página principal en la esquina superior izquierda de la página.
  3. En el menú del lado derecho, haz clic en Panel nuevo.
  4. En la sección Panel nuevo, haz clic en Grafo. Aparecerá un panel de grafo vacío.
  5. Haz clic en Título del panel y, luego, en Editar. En el panel Grafo inferior, se abrirá en la pestaña Métricas.
  6. En el menú desplegable Fuente de datos, selecciona usuario. Haz clic en Agregar consulta y, luego, ingresa foo en el campo búsqueda.
  7. Haz clic en el botón Volver al panel en la esquina superior derecha de la pantalla. Se muestra tu panel.
  8. Para guardar el panel, haz clic en Guardar panel en la esquina superior derecha de la pantalla. Elige un nombre para el panel y, luego, haz clic en Guardar.

Inhabilita la supervisión en el clúster

Para inhabilitar la supervisión en el clúster, ingresa el siguiente comando:

kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] -n kube-system delete monitoring monitoring-sample

Ejemplo: agrega métricas a nivel de la aplicación a un panel de Grafana

En las siguientes secciones, se explica cómo agregar métricas en una aplicación. En esta sección, completarás las siguientes tareas:

  • Implementa una aplicación de ejemplo que exponga una métrica llamada foo.
  • Verifica que Prometheus exponga y extraiga la métrica.
  • Crea un panel de Grafana personalizado.

Implementa la aplicación de ejemplo

La aplicación de ejemplo se ejecuta en un Pod único. El contenedor del Pod expone una métrica, foo, con un valor constante de 40.

Crea el siguiente manifiesto de Pod, 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

Luego, aplica el manifiesto del Pod a tu clúster de usuario:

kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] apply -f pro-pod.yaml

Verifica que la métrica esté expuesta y recopilada

  1. El contenedor en el pod prometheus-example escucha en el puerto TCP 8080. Reenvía un puerto local al puerto 8080 en el Pod:

    kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] port-forward prometheus-example 50002:8080
  2. Para verificar que la aplicación exponga la métrica, ejecuta el siguiente comando:

    curl localhost:50002/metrics | grep foo
    

    El comando muestra el siguiente resultado:

    # HELP foo Custom metric
    # TYPE foo gauge
    foo 40
  3. El contenedor en el Pod prometheus-0 escucha en el puerto TCP 9090. Reenvía un puerto local al puerto 9090 en el Pod:

    kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] port-forward prometheus-0 50003:9090
  4. Para verificar que Prometheus copie la métrica, navega a http://localhost:50003/targets, que te llevará al Pod prometheus-0 en el grupo de destino prometheus-io-pods.

  5. Para ver las métricas en Prometheus, navega a http://localhost:50003/graph. En el campo de búsqueda, ingresa foo y, luego, haz clic en Ejecutar. La página debe mostrar la métrica.