Sistema de registro de Kubernetes advenedizo Loki-Stack

Sistema de registro de Kubernetes advenedizo Loki-Stack

Charla de operación y mantenimiento para principiantes de Scofield

Introducción a Loki


Grafana Loki es un conjunto de componentes que pueden formar una pila de registro completamente funcional.
A diferencia de otros sistemas de registro, Loki se basa en la idea de indexar solo metadatos sobre registros: etiquetas (al igual que las etiquetas Prometheus). Luego, los datos de registro en sí se comprimen y almacenan en bloques en el almacenamiento de objetos (como S3 o GCS), o incluso se almacenan localmente en el sistema de archivos. Los índices pequeños y los bloques altamente comprimidos simplifican las operaciones y reducen en gran medida el costo de Loki.
Comparado con EKL, Loki es muy ligero; ¡después de usar Loki, ELK pierde repentinamente su fragancia! Jaja ~~~

Componentes de Loki-stack


Pon dos fotos primero

Sistema de registro de Kubernetes advenedizo Loki-Stack

Sistema de registro de Kubernetes advenedizo Loki-Stack

  • Promtail
    Promtail es una herramienta de recopilación de registros que se utiliza para enviar registros de contenedores a los servicios de Loki o Grafana. Esta herramienta incluye principalmente descubrir destinos de recopilación y agregar etiquetas de etiquetas a los flujos de registros, y luego enviarlos a Loki. Además, el descubrimiento de servicios de Promtail se basa en Prometheus Se implementa el mecanismo de descubrimiento de servicios.
  • Loki
    Loki es un sistema de agregación de registros que puede escalar horizontalmente, tiene una alta disponibilidad y admite tenencia múltiple. Utiliza el mismo mecanismo de descubrimiento de servicios que Prometheus, agregando etiquetas al flujo de registros en lugar de crear un índice de texto completo. Por lo tanto, los registros recibidos de Promtail y las métricas aplicadas tienen el mismo conjunto de etiquetas. No solo proporciona un mejor cambio de contexto entre registros e indicadores, sino que también evita la indexación de registros de texto completo.
  • Grafana
    Grafana es una plataforma de código abierto para monitoreo y observación visual. Es compatible con una fuente de datos muy rica. En la pila de tecnología Loki, se usa específicamente para mostrar datos de series de tiempo de fuentes de datos como Prometheus y Loki. También permite operaciones como consulta, visualización, alarma, etc., que se pueden usar para crear, explorar y compartir el panel de datos.
    A continuación, comencemos y experimentemos Loki-stack.

Usa helm para implementar loki-stack


1. Requisito previo, debe tener un clúster k8s e instalar la herramienta de timón
2. Agregar la fuente de timón


helm repo add loki https://grafana.github.io/loki/charts

下载到本地,也可以直接安装,因为需要修改存储类及其他一些配置,我习惯下载到本地,方便修改调试
helm fetch loki/loki-stack
tar -zxf loki-stack-0.38.1.tgz
cd loki-stack/
[root@ loki-stack]# ls -al
drwxr-xr-x.  7 root root   85 Jul  2 07:25 charts
-rwxr-xr-x.  1 root root  369 Jul  1 01:46 Chart.yaml
-rwxr-xr-x.  1 root root  342 Jul  1 01:46 .helmignore
-rwxr-xr-x.  1 root root 1662 Jul  1 01:46 README.md
-rwxr-xr-x.  1 root root  533 Jul  1 01:46 requirements.lock
-rwxr-xr-x.  1 root root  595 Jul  1 01:46 requirements.yaml
drwxr-xr-x.  3 root root   80 Jul  2 08:46 templates
-rwxr-xr-x.  1 root root  206 Jul 16 00:53 values.yaml

3. Modifique el archivo values.yaml de loki-stack, solo instalé loki y promtail aquí, y uso el operador prometheus que el clúster ha implementado para grafana y prometheus


[root@ ]# cat values.yaml
loki:
  enabled: true
promtail:
  enabled: true

4. Modifique los valores de loki.yaml,
principalmente modifique la clase de almacenamiento y el tamaño de persistencia, y abra serviceMonitor para monitorear loki.


[root@  loki-stack]# cd charts/loki/
[root@  loki]# ll
total 20
-rw-r--r-- 1 root root  367 Nov 28 00:31 Chart.yaml
-rw-r--r-- 1 root root 1846 Nov 28 00:31 README.md
drwxr-xr-x 2 root root 4096 Dec  1 09:14 templates
-rw-r--r-- 1 root root 6695 Dec  1 09:15 values.yaml

persistence:
  enabled: true
  storageClass: "rbd"
  accessModes:
  - ReadWriteOnce
  size: 100Gi
  annotations: {}

serviceMonitor:
  enabled: true
  interval: ""
  additionalLabels: {}
  annotations: {}
  # scrapeTimeout: 10s

5. Modifique el archivo values.yaml de promtail.
Si desea agregar más directorios de registro, puede agregarlos aquí


# Extra volumes to scrape logs from
volumes:
- name: docker
  hostPath:
    path: /var/lib/docker/containers
- name: pods
  hostPath:
    path: /var/log/pods

6. Realice la implementación


cd loki-stack
kubectl create ns loki
helm install loki -n loki -f values.yaml .

[root@ loki-stack]# helm ls -n loki
NAME    NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                   APP VERSION
loki    loki            1               2020-12-01 09:15:22.971437761 +0800 CST deployed        loki-stack-2.1.0        v2.0.0

7. Inicie sesión en la interfaz grafana existente, agregue la fuente de loki,
primero obtenga la dirección de servicio de loki


[root@ loki-stack]# kubectl get svc -n loki
NAME            TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
loki            NodePort    10.101.129.255   <none>        3100:30439/TCP   92m
loki-headless   ClusterIP   None             <none>        3100/TCP         92m

Sistema de registro de Kubernetes advenedizo Loki-Stack

Después de completar la información, haga clic en Guardar y probar para confirmar que grafana puede conectarse a loki
8. Haga clic en Explorar, puede usar LogQL para consultar el registro, como se muestra a continuación.

Sistema de registro de Kubernetes advenedizo Loki-Stack

Por supuesto, también puede importar plantillas creadas por otros. Se pueden ver más
Sistema de registro de Kubernetes advenedizo Loki-Stack
paneles en el sitio web oficial https://grafana.com/grafana/dashboards. PD: Los artículos se sincronizarán con dev.kubeops.net

Supongo que te gusta

Origin blog.51cto.com/15060545/2657215
Recomendado
Clasificación