Introducción
Prometheus es un software de monitoreo de eventos de código abierto para aplicaciones distribuidas de gran volumen. Cuenta con métricas y alertas en tiempo real, consultas flexibles, un modelo de extracción HTTP y es una buena opción para monitorear clústeres de Kubernetes.
Si bien Prometheus es una aplicación independiente, su uso con un panel de visualización ayuda a mantener una mejor visión general de un clúster de Kubernetes. Una opción popular para este escenario es Grafana, un software de visualización de código abierto, que admite Prometheus como fuente de datos lista para usar.
Este tutorial le mostrará cómo instalar Grafana en su clúster de Kubernetes, conectarlo a Prometheus y organizar los datos en paneles.
Requisitos previos
- Clúster de Kubernetes
- herramienta de línea de comandos kubectl instalada
- Prometheus instalado y configurado
Instalar Grafana
Para instalar Grafana en un clúster de Kubernetes, cree y aplique una serie de yaml
archivos.
1. Comienza creando un ConfigMap en un archivo titulado grafana-datasource-config.yaml
:
nano grafana-datasource-config.yaml
El archivo consta de las siguientes declaraciones:
apiVersion: v1
kind: ConfigMap
metadata:
name: grafana-datasources
namespace: default
data:
prometheus.yaml: |-
{
"apiVersion": 1,
"datasources": [
{
"access":"proxy",
"editable": true,
"name": "prometheus",
"orgId": 1,
"type": "prometheus",
"url": "http://prometheus-service.monitoring.svc:9090",
"version": 1
}
]
}
2. Ajuste el contenido del archivo para que se ajuste a sus necesidades especificando el espacio de nombres en el que desea instalar Grafana.
3. Guarde y salga del archivo.
4. Aplique cambios a su clúster usando kubectl:
kubectl create -f grafana-datasource-config.yaml
El resultado confirma la creación del ConfigMap:
5. A continuación, cree un yaml
archivo para la implementación de Grafana:
nano deployment.yaml
El archivo contiene la configuración de implementación de Grafana:
apiVersion: apps/v1
kind: Deployment
metadata:
name: grafana
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: grafana
template:
metadata:
name: grafana
labels:
app: grafana
spec:
containers:
- name: grafana
image: grafana/grafana:latest
ports:
- name: grafana
containerPort: 3000
resources:
limits:
memory: "1Gi"
cpu: "1000m"
requests:
memory: 500M
cpu: "500m"
volumeMounts:
- mountPath: /var/lib/grafana
name: grafana-storage
- mountPath: /etc/grafana/provisioning/datasources
name: grafana-datasources
readOnly: false
volumes:
- name: grafana-storage
emptyDir: {}
- name: grafana-datasources
configMap:
defaultMode: 420
name: grafana-datasources
6. Guarde el archivo y luego aplíquelo al clúster:
kubectl create -f deployment.yaml
El resultado confirma la creación de la implementación:
7. Por último, crea el service.yaml
archivo para configurar el servicio Grafana:
nano service.yaml
El archivo consta de las siguientes declaraciones:
apiVersion: v1
kind: Service
metadata:
name: grafana
namespace: default
annotations:
prometheus.io/scrape: 'true'
prometheus.io/port: '3000'
spec:
selector:
app: grafana
type: NodePort
ports:
- port: 3000
targetPort: 3000
nodePort: 32000
8. Ajuste el archivo a las necesidades de su clúster, luego guárdelo y aplíquelo:
kubectl create -f service.yaml
El resultado confirma que el servicio se creó correctamente:
9. Use el comando kubectl port-forward para reenviar el servicio de Grafana al puerto 3000
:
kubectl port-forward svc/grafana 3000
10. Ahora abra un navegador y vaya a http://localhost:3000/
.
11. Aparece la pantalla de inicio de sesión de Grafana, que le solicita su nombre de usuario y contraseña. Escriba admin
en ambos campos y haga clic en Iniciar sesión .
12. Grafana le pide que establezca una nueva contraseña, después de lo cual se muestra la página de inicio.
Agregar Prometheus como fuente de datos de Grafana
Para comenzar a trabajar con Prometheus en Grafana, agregue Prometheus como fuente de datos.
1. En la barra lateral de la izquierda, pase el cursor sobre el icono de la rueda dentada para mostrar el submenú de configuración.
2. Haga clic en Fuentes de datos .
2. Se abre una página de configuración. Haga clic en Añadir fuente de datos. botón.
3. Seleccione Prometheus como tipo de fuente de datos haciendo clic en Seleccionar botón a la derecha.
4. Se abre la página de configuración de Prometheus. Aquí especifica el nombre de la fuente, la URL y el puerto para el servicio de Prometheus, y el tipo de acceso (el acceso al servidor es la opción predeterminada).
5. Una vez que haya terminado, desplácese hacia abajo hasta la parte inferior de la página y haga clic en Guardar y probar botón.
Grafana prueba la conexión con Prometheus y termina de agregar la fuente de datos.
Importar estadísticas de Prometheus como un tablero en Grafana
Grafana es compatible con Prometheus desde el primer momento y puede acceder fácilmente al panel de Prometheus prediseñado.
1. Vuelva a navegar a las Fuentes de datos y selecciona Prometheus .
2. Abra la Configuración menú desplegable.
3. Luego haga clic en Paneles de control .
4. Aparece una lista de paneles disponibles. Importe el tablero que desee haciendo clic en Importar botón a la derecha del nombre del tablero.
5. Para acceder al panel, pase el cursor sobre el icono de cuatro cuadrados en la barra lateral izquierda para revelar los Paneles. menú.
6. Haga clic en Administrar .
7. Seleccione el Prometeo tablero que desea administrar de la lista.
Estadísticas de su servidor Prometheus
El tablero de Prometheus consta de varios gráficos de estadísticas individuales que se describen a continuación.
Gráficos de estadísticas individuales
Después de seleccionar las Estadísticas de Prometheus panel en la Administración del panel página, las estadísticas aparecen organizadas en paneles.
La primera fila consta de los siguientes paneles:
- Tiempo de actividad :cuánto tiempo ha pasado desde que se inició el servidor Prometheus
- Serie de memoria de almacenamiento local :El número de series que Prometheus tiene actualmente en la memoria
- Longitud de la cola de almacenamiento interno :Cuanto menor sea este número, mejor. El mensaje "Vacío" significa que el número de cola es cero.
Las muestras ingeridas El panel proporciona información sobre la cantidad de mensajes de muestra que Prometheus ingirió a razón de 5 minutos.
Métricas de raspado de Prometheus
Métricas de scraping Los paneles se encuentran justo debajo del panel Muestras ingeridas.
- Los objetivos raspados El panel muestra la frecuencia de raspar el objetivo, es decir, Prometheus, medido en los últimos cinco minutos, por serie de tiempo en el vector de rango.
- La duración de raspado El panel muestra la duración de las raspaduras, medida durante el mismo período de cinco minutos.
Duración de las evaluaciones
La Duración de la evaluación de la regla El panel que se encuentra debajo de los paneles de métricas de Scrape proporciona información sobre la duración de todas las evaluaciones para ejecutar.
Crear un nuevo panel
Para crear un nuevo panel de Grafana:
1. Navegue a los Paneles de control y haga clic en Nuevo panel botón.
2. Aparece una pantalla donde puede agregar nuevos paneles y filas vacíos.
3. Aparece una nueva pantalla con un solo panel ficticio.
Personalizar el panel con el editor de consultas de Prometheus
Para editar un panel Grafana específico:
1. Haga clic en el título del panel para abrir un menú desplegable.
2. En el menú, haga clic en Editar .
3. Aparece la ventana de edición. Personaliza los paneles introduciendo nuevas consultas o modificando las actuales. La consulta se realiza utilizando el lenguaje de consulta de Prometheus.
4. Las siguientes métricas no aparecen en el panel de Prometheus prefabricado de Grafana, pero son útiles para monitorear Prometheus:
prometheus_local_storage_memory_chunks
– Supervisa los fragmentos de memoria que Prometheus almacena en la memoria.prometheus_local_storage_memory_series
– Supervisa las series de memoria que Prometheus almacena en la memoria.prometheus_local_storage_ingested_samples_total
– Mide la tasa de ingestión de las muestras.prometheus_target_interval_length_seconds
– Mide la cantidad de tiempo entre raspaduras objetivo.prometheus_local_storage_chunk_ops_total
– Supervisa la tasa por segundo de todas las operaciones de fragmentos de almacenamiento de Prometheus.
Usar paneles y complementos prediseñados
Grafana ofrece una gran selección de paneles y complementos prefabricados disponibles para descargar en su sitio web. Para instalar un tablero prediseñado:
1. Descarga el json
del complemento archivo.
2. Haga clic en Importar y sigue las instrucciones para subir el archivo a Grafana.
3. Para instalar complementos, inicie sesión en el pod de Grafana en el clúster mediante kubectl exec
.
kubectl exec -it [grafana-pod] -- [shell]
4. Ahora usa el grafana-cli
herramienta de línea de comandos para instalar el complemento:
grafana-cli plugins install grafana-worldmap-panel
El complemento se instala en el directorio de complementos de Grafana. La ubicación predeterminada es /var/lib/grafana/plugins
. Una vez que el complemento se instala correctamente, está disponible automáticamente en Grafana.