Cómo configurar TOBS, la pila de observabilidad, para la monitorización de Kubernetes

Estado: obsoleto

Índice
  1. Estado: obsoleto
    1. Razón
    2. Ver en su lugar
    3. Introducción
  2. Prerrequisitos
  3. Paso 1: Verificación de la configuración de Kubernetes
  4. Paso 2: Instalación de TOBS y prueba de los puntos finales
  5. Paso 3: Edición de configuraciones de TOBS y actualización
  6. Conclusión

Este artículo está obsoleto y ya no se mantiene.

Razón

El instalador TOBS ha quedado obsoleto en sentido ascendente.

Ver en su lugar

La documentación oficial de TOBS .

Introducción

TOBS , abreviatura de The Observability Stack, es una distribución preempaquetada de herramientas de monitoreo e interfaces de panel que se pueden instalar en cualquier clúster de Kubernetes existente. Incluye muchas de las herramientas de observación de código abierto más populares con Prometheus y Grafana como base, incluidas Promlens, TimescaleDB, Alertmanager y otras. En conjunto, brindan una solución sencilla y fácil de mantener para analizar el tráfico del servidor e identificar posibles problemas con una implementación a una escala muy grande.

TOBS utiliza gráficos Helm de Kubernetes estándar para configurar y actualizar implementaciones. Se puede instalar en cualquier clúster de Kubernetes, pero se puede demostrar de manera más efectiva si se ejecuta para administrar el clúster desde una máquina local en lugar de un nodo remoto. Managed Kuberneteskubectl de DigitalOcean le proporcionará una configuración como esta de forma predeterminada.

En este tutorial, instalará TOBS en un clúster de Kubernetes existente y aprenderá a actualizar, configurar y explorar sus paneles de componentes.

Prerrequisitos

Para seguir este tutorial, necesitarás:

  • Un clúster de Kubernetes con control de acceso basado en roles (RBAC) habilitado. Esta configuración utilizará un clúster de Kubernetes de DigitalOcean , pero usted puede crear un clúster con otro método . Su versión de Kubernetes debe coincidir con una versión de TOBS compatible .

  • La kubectlherramienta de línea de comandos instalada en su máquina local y configurada para conectarse a su clúster. Puede leer más sobre la instalación kubectl en la documentación oficial . Si está utilizando un clúster Kubernetes de DigitalOcean, consulte Cómo conectarse a un clúster Kubernetes de DigitalOcean para obtener información sobre cómo conectarse a su clúster mediante kubectl.

Paso 1: Verificación de la configuración de Kubernetes

Para instalar TOBS, primero debe tener una configuración válida de Kubernetes configurada kubectldesde la cual pueda hacer ping a sus nodos de trabajo. Puede probar esto ejecutando kubectl get nodes:

  1. kubectl get nodes

Si kubectlpuede conectarse a su clúster de Kubernetes y está funcionando como se esperaba, este comando devolverá una lista de nodos con el Readyestado:

OutputNAME                   STATUS   ROLES    AGE   VERSIONpool-uqv8a47h0-ul5a7   Ready    none   22m   v1.21.5pool-uqv8a47h0-ul5am   Ready    none   21m   v1.21.5pool-uqv8a47h0-ul5aq   Ready    none   21m   v1.21.5

Si esto funciona correctamente, puede continuar con el paso 2. De lo contrario, debe revisar los detalles de configuración para ver si hay algún problema.

De forma predeterminada, kubectlbuscará un archivo en ~/.kube/configpara comprender su entorno. Para verificar que este archivo existe y contiene una sintaxis YAML válida, puede ejecutarlo headpara ver sus primeras líneas:

  1. head ~/.kube/config
OutputapiVersion: v1clusters:- cluster:    certificate-authority-data:…

Si el archivo no existe, asegúrese de haber iniciado sesión con el mismo usuario con el que configuró Kubernetes. ~/Las rutas reflejan los directorios de inicio de los usuarios individuales y las configuraciones de Kubernetes se guardan por usuario de forma predeterminada.

Si utiliza Kubernetes administrado de DigitalOcean, asegúrese de haber ejecutado el doctl kubernetes cluster kubeconfig savecomando después de configurar un clúster para que su máquina local pueda autenticarse en él. Esto creará un ~/.kube/configarchivo:

  1. doctl kubernetes cluster kubeconfig save your-cluster-name

Si usa esta máquina para acceder a varios clústeres, debe revisar la documentación de Kubernetes sobre el uso de variables de entorno y varios archivos de configuración para evitar conflictos. Después de configurar su kubectlentorno, puede continuar con la instalación de TOBS en el siguiente paso.

Paso 2: Instalación de TOBS y prueba de los puntos finales

TOBS incluye los siguientes componentes:

  • Prometheus es una herramienta de monitoreo y base de datos de series temporales que funciona mediante el sondeo de puntos finales de métricas y el rastreo y procesamiento de los datos expuestos por estos puntos finales. Le permite consultar estos datos mediante PromQL , un lenguaje de consulta de datos de series temporales.
  • Alertmanager , que suele implementarse junto con Prometheus, forma la capa de alertas de la pila, ya que maneja las alertas generadas por Prometheus y las deduplica, agrupa y enruta a integraciones como el correo electrónico o PagerDuty . Para obtener más información sobre Alertmanager, consulte la documentación de Prometheus sobre alertas .
  • Grafana es una herramienta de análisis y visualización de datos que le permite crear paneles y gráficos para sus datos de métricas.
  • kube-state-metrics es un agente complementario que escucha al servidor de API de Kubernetes y genera métricas sobre el estado de los objetos de Kubernetes, como implementaciones y pods. Estas métricas se proporcionan como texto sin formato en los puntos finales HTTP y Prometheus las consume.
  • Por último, se encuentra node-exporter , un exportador de Prometheus que se ejecuta en nodos de clúster y proporciona métricas de hardware y SO, como uso de CPU y memoria, a Prometheus. Estas métricas también se proporcionan como texto sin formato en los puntos finales HTTP y Prometheus las consume.

Para instalar TOBS, primero debe ejecutar el instalador de TOBS en su plano de control. Esto configurará los tobsdirectorios de comandos y configuración. Como se mencionó en los requisitos previos, el tobscomando solo está diseñado para funcionar en sistemas Linux/macOS/BSD (como los binarios oficiales de Kubernetes), por lo que si ha estado usando Windows hasta ahora, debería estar trabajando en el Subsistema de Windows para el entorno de Linux.

Recupere y ejecute el instalador TOBS:

  1. curl --proto '=https' --tlsv1.2 -sSLf https://tsdb.co/install-tobs-sh |sh
Outputtobs 0.7.0 was successfully installed  Binary is available at /root/.local/bin/tobs.

Ahora puedes enviar TOBS a tu clúster de Kubernetes. Esto se hace con un tobscomando de una sola línea que acabas de proporcionar:

  1. tobs install

Esto generará varias líneas de salida y puede tardar unos minutos. Según la versión exacta de Kubernetes que tengas, puede haber varias advertencias en la salida, pero puedes ignorarlas siempre que recibas el Welcome to tobsmensaje:

OutputWARNING: Using a generated self-signed certificate for TLS access to TimescaleDB.         This should only be used for development and demonstration purposes.         To use a signed certificate, use the "--tls-timescaledb-cert" and "--tls-timescaledb-key"         flags when issuing the tobs install command.Creating TimescaleDB tobs-certificate secretCreating TimescaleDB tobs-credentials secretskipping to create TimescaleDB s3 backup secret as backup option is disabled.2022/01/10 11:25:34 Transport: unhandled response frame type *http.http2UnknownFrame2022/01/10 11:25:35 Transport: unhandled response frame type *http.http2UnknownFrame2022/01/10 11:25:35 Transport: unhandled response frame type *http.http2UnknownFrameInstalling The Observability Stack2022/01/10 11:25:37 Transport: unhandled response frame type *http.http2UnknownFrameW0110 11:25:55.438728   75479 warnings.go:70] policy/v1beta1 PodSecurityPolicy is deprecated in v1.21+, unavailable in v1.25+W0110 11:25:55.646392   75479 warnings.go:70] policy/v1beta1 PodSecurityPolicy is deprecated in v1.21+, unavailable in v1.25+…  Welcome to tobs, The Observability Stack for Kubernetes…

A partir de este punto, el resultado contendrá instrucciones para conectarse a cada uno de los puntos finales web de Prometheus, TimescaleDB, PromLens y Grafana en su navegador. Se reproduce en su totalidad a continuación como referencia:

Output###############################################################################  PROMETHEUS NOTES:###############################################################################Prometheus can be accessed via port 9090 on the following DNS name from within your cluster:tobs-kube-prometheus-prometheus.default.svc.cluster.localGet the Prometheus server URL by running these commands in the same shell:  tobs prometheus port-forwardThe Prometheus alertmanager can be accessed via port 9093 on the following DNS name from within your cluster:tobs-kube-prometheus-alertmanager.default.svc.cluster.localGet the Alertmanager URL by running these commands in the same shell:  export POD_NAME=$(kubectl get pods --namespace default -l "app=alertmanager,alertmanager=tobs-kube-prometheus-alertmanager" -o jsonpath="{.items[0].metadata.name}")  kubectl --namespace default port-forward $POD_NAME 9093WARNING! Persistence is disabled on AlertManager.         You will lose your data when the AlertManager pod is terminated.###############################################################################  TIMESCALEDB NOTES:###############################################################################TimescaleDB can be accessed via port 5432 on the following DNS name from within your cluster:tobs.default.svc.cluster.localTo get your password for superuser run:    tobs timescaledb get-password -U userTo connect to your database, chose one of these options:1. Run a postgres pod and connect using the psql cli:    tobs timescaledb connect -U user2. Directly execute a psql session on the master node   tobs timescaledb connect -m###############################################################################  PROMLENS NOTES:###############################################################################   PromLens is a PromQL query builder, analyzer, and visualizer.   You can access PromLens via a local browser by executing:    tobs promlens port-forward   Then you can point your browser to http://127.0.0.1:8081/.###############################################################################  GRAFANA NOTES:###############################################################################1. The Grafana server can be accessed via port 80 on   the following DNS name from within your cluster:   tobs-grafana.default.svc.cluster.local   You can access grafana locally by executing:    tobs grafana port-forward   Then you can point your browser to http://127.0.0.1:8080/.2. The 'admin' user password can be retrieved by:    tobs grafana get-password3. You can reset the admin user password with grafana-cli from inside the pod.    tobs grafana change-password password-you-want-to-set

Cada uno de ellos cuenta con un nombre DNS interno en su clúster para que se pueda acceder a ellos desde cualquiera de sus nodos de trabajo, por ejemplo, tobs-kube-prometheus-alertmanager.default.svc.cluster.localpara Prometheus. Además, hay un comando de reenvío de puertos configurado para cada uno que le permite acceder a ellos desde un navegador web local.

En una nueva terminal, ejecute tobs prometheus port-forward:

  1. tobs prometheus port-forward

Esto ocupará la terminal mientras el proceso de reenvío de puertos esté activo. Puede presionar Ctrl+Cpara salir sin problemas de un proceso de bloqueo como este cuando desee detener el reenvío del puerto. A continuación, en un navegador web, vaya a la URL http://127.0.0.1:9090/. Debería ver la interfaz completa de Prometheus ejecutándose y generando métricas desde su clúster:

Puedes hacer lo mismo con Grafana, al que se puede acceder siempre http://127.0.0.1:8080/que el reenvío de puertos esté activo en otro proceso. Primero, tendrás que usar el get-passwordcomando proporcionado por la salida del instalador:

  1. tobs grafana get-password
Outputyour-grafana-password

Luego puede usar esta contraseña para iniciar sesión en la interfaz de Grafana ejecutando su comando de reenvío de puerto y abriéndola http://127.0.0.1:8080/en su navegador.

  1. tobs grafana port-forward

Ahora tienes una pila TOBS en funcionamiento en tu clúster de Kubernetes. Puedes consultar la documentación de cada componente para conocer sus respectivas funciones. En el último paso de este tutorial, aprenderás a realizar actualizaciones en la configuración de TOBS.

Paso 3: Edición de configuraciones de TOBS y actualización

La configuración de TOBS contiene algunos parámetros para las aplicaciones individuales en la pila, así como algunos parámetros para la implementación de TOBS en sí. Se genera y almacena como un gráfico de Helm de Kubernetes . Puede generar su configuración actual ejecutando tobs helm show-values. Sin embargo, esto generará la configuración completa en su terminal, lo que puede ser difícil de leer. En cambio, puede redirigir la salida a un archivo con la .yamlextensión , ya que todos los gráficos de Helm tienen una sintaxis YAML válida:

  1. tobs helm show-values values.yaml

El contenido del archivo se verá así:

~/valores.yaml

2022/01/10 11:56:37 Transport: unhandled response frame type *http.http2UnknownFrame# Values for configuring the deployment of TimescaleDB# The charts README is at:#    https://github.com/timescale/timescaledb-kubernetes/tree/master/charts/timescaledb-single# Check out the various configuration options (administration guide) at:#    https://github.com/timescale/timescaledb-kubernetes/blob/master/charts/timescaledb-single/admin-guide.mdcli: false# Override the deployment namespacenamespaceOverride: ""…

Puede revisar los parámetros adicionales disponibles para la configuración de TOBS leyendo la documentación de TOBS

Si alguna vez modifica este archivo para actualizar su implementación, puede volver a instalar TOBS sobre sí mismo utilizando la configuración actualizada. Simplemente pase la -fopción al tobs installcomando con el archivo YAML como argumento adicional:

  1. tobs install -f values.yaml

Finalmente, puedes actualizar TOBS con el siguiente comando:

  1. tobs upgrade

Esto realiza el equivalente helm upgradea obtener el gráfico ascendente más reciente.

Conclusión

En este tutorial, aprendió a implementar y configurar TOBS, The Observability Stack, en un clúster de Kubernetes existente. TOBS es particularmente útil porque elimina la necesidad de mantener individualmente los detalles de configuración para cada una de estas aplicaciones, al mismo tiempo que proporciona una supervisión estandarizada para las aplicaciones que se ejecutan en su clúster.

A continuación, es posible que desee aprender a usar Cert-Manager para gestionar el ingreso HTTPS a su clúster de Kubernetes.

SUSCRÍBETE A NUESTRO BOLETÍN 
No te pierdas de nuestro contenido ni de ninguna de nuestras guías para que puedas avanzar en los juegos que más te gustan.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir

Este sitio web utiliza cookies para mejorar tu experiencia mientras navegas por él. Este sitio web utiliza cookies para mejorar tu experiencia de usuario. Al continuar navegando, aceptas su uso. Mas informacion