Generated with sparks and insights from 8 sources

img6

img7

img8

img9

img10

img11

Introduction

  • 步骤 1: 添加 Grafana Helm 仓库。使用命令 helm repo add grafana https://grafana.github.io/helm-charts

  • 步骤 2: 更新 Helm 仓库。使用命令 helm repo update

  • 步骤 3: 安装 Loki。使用命令 helm upgrade --install loki --namespace=loki grafana/loki-stack

  • 步骤 4: 安装 Grafana。使用命令 helm install loki-grafana --namespace=<YOUR-NAMESPACE> grafana/grafana

  • 步骤 5: 获取 Grafana 管理员密码。使用命令 kubectl get secret --namespace <YOUR-NAMESPACE> loki-grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo

  • 步骤 6: 端口转发 Grafana 服务。使用命令 kubectl port-forward --namespace <YOUR-NAMESPACE> service/loki-grafana 3000:80

  • 步骤 7: 在 Grafana 中添加 Loki 数据源。地址输入 http://loki:3100

Loki 简介 [1]

  • Loki 是由 Grafana 开发的轻量级日志收集和分析工具。

  • Loki 采用 Promtail 方式获取日志内容并存储在 Loki 中。

  • 最终在 Grafana 的数据源中添加 Loki 进行日志展示和查询。

  • Loki 支持多种持久化存储类型,如 Azure、GCS、S3、Swift 和本地存储。

  • Loki 支持多种日志收集类型,如 Logstash、Fluentbit。

img6

img7

img8

Loki 的优点 [1]

  • 支持多种客户端,如 Promtail、Fluentbit、Fluentd、Vector、Logstash 和 Grafana Agent。

  • Promtail 可以从多种来源提取日志,包括本地日志文件、systemd、Windows 事件日志、Docker 日志记录驱动程序等。

  • 没有日志格式要求,包括 JSON、XML、CSV、logfmt、非结构化文本。

  • 使用与查询指标相同的语法查询日志。

  • 日志查询时允许动态筛选和转换日志行。

  • 可以轻松地计算日志中的需要的指标。

  • 引入时的最小索引意味着可以在查询时动态地对日志进行切片和切块。

  • 云原生支持,使用 Prometheus 形式抓取数据。

img6

img7

Loki 的工作方式 [1]

  • Loki 在解析日志时以 index 为主,index 包括时间戳和 pod 的部分 label。

  • 其余的是日志内容。

  • 官方推荐使用 Promtail 作为 agent 以 DaemonSet 方式部署在 Kubernetes 的 worker 节点上收集日志。

  • Loki 由许多组件微服务构建而成,微服务组件有 5 个。

  • 在这 5 个组件中添加缓存用来加快查询。

  • 数据放在共享存储中并在实例之间共享状态,将 Loki 进行无限横向扩展。

  • 官方把所有的微服务编译成一个二进制,可以通过命令行参数 -target 控制,支持 all、read、write。

  • 在部署时根据日志量的大小可以指定不同模式。

img6

Loki 的部署模式 [1]

  • All 模式:服务启动后,数据查询和写入都来自一个节点。

  • Read/Write 模式:读写分离模式下,查询会将流量转发到 read 节点上。

  • 微服务模式:通过不同的配置参数启动为不同的角色,每一个进程都引用它的目标角色服务。

  • AllInOne 部署模式:适用于小规模部署,所有组件在一个实例中运行。

  • Kubernetes 部署:需要准备好一个 k8s 集群,创建 ConfigMap 和持久化存储。

  • 裸机部署:将 Loki 放到系统的 /bin/ 目录下,准备 grafana-loki.service 控制文件。

  • 在 Kubernetes 中,Loki 的数据需要进行持久化,可以使用多种存储类型。

  • 在 Kubernetes 中,Loki 的配置文件需要写入 configmap 中。

img6

Promtail 部署

  • Promtail 是 Loki 的日志收集工具。

  • Promtail 可以以 DaemonSet 方式部署在 Kubernetes 的 worker 节点上。

  • Promtail 需要配置文件,指定日志内容 push 到 Loki 服务端。

  • Promtail 支持多种日志来源,如本地日志文件、systemd、Windows 事件日志等。

  • Promtail 的配置文件需要写入 configmap 中。

  • 在 Kubernetes 中,Promtail 的配置文件需要指定 Loki 服务的 URL。

  • Promtail 可以通过 relabel_configs 配置日志标签。

  • Promtail 可以通过 pipeline_stages 配置日志处理流程。

Related Videos

<br><br>

<div class="-md-ext-youtube-widget"> { "title": "How to Setup Up Grafana Loki with Promtail Using Helm", "link": "https://www.youtube.com/watch?v=hAlQ1TV_-Vw", "channel": { "name": ""}, "published_date": "May 30, 2024", "length": "" }</div>