Loki 数据源

夜莺( Nightingale Loki 数据源

接入 Loki 数据源

在数据源管理—>右上角点击新增—>选择 Loki

l01

根据要求填写相关信息即可,如果 Loki 服务没有配置多租户模式就不用填写下面的 Header 和 Value,租户 ID 可以联系 Loki 管理员。

l02

URL 部分通常是需要带有 /loki urlpath 的,请注意!

如何确认是否开启多租户呢?其实很简单,不带租户 ID 请求一下服务,看返回结果就可以知道了。 返回no org id,那就是需要租户 ID,如下图所示。

l03

正常返回数据就不需要租户 ID ,如下图所示。

l04

查询数据

场景一:查询每个具有 401 状态的日志行{container="evaluate-loki-flog-1"} | json | status="401"

l05

场景二:查询最近5分钟状态码是401的日志数量count_over_time({container="evaluate-loki-flog-1"} |= "401" [5m])

l06

配置报警

告警场景:如果查询最近5分钟状态码是401的日志数量大于0 触发报警

这个告警场景可以灵活替换日志关键词,比如 ERROR 出现的次数或者xxx错误码出现的次数等。

在告警配置中选择 Loki 告警源,配置告警表达式。

l07

配置完成后在历史告警中可以查看告警详情。

l08

排错分析

告警配置完成未能正常告警,可以通过查看 DEBUG.log 查看相关报错,关键词可以查询rule_eval和告警 ID 。

l09

常见问题

Q1:Loki URL 怎么填?

A:填 Loki Distributor / Query Frontend 的 HTTP 地址(如 http://loki:3100)。注意不要带 /loki/api/v1/... 路径,只填到端口这一级,n9e 会自己拼接 API path。

Q2:保存成功但查不到日志?

A:

  • 租户头:Loki 启用了 multi-tenancy 模式时需要传 X-Scope-OrgID 头,在数据源的 Header 配置里加;
  • 标签选择器:LogQL 查询必须带至少一个 {label="value"} 选择器,不能空查;
  • 时间范围:默认查最近 1 小时,Loki 长期日志要主动扩大;
  • Promtail / Vector / Fluentd 是否真的在写入 Loki — 直接用 logcli 命令行确认。

Q3:LogQL 跟 PromQL 有什么差异?

A:

  • 选择器:LogQL {job="nginx"} vs PromQL node_load1{job="nginx"}(LogQL 无 metric name);
  • 管道:LogQL 支持 |=(包含)、!=(不含)、|~(正则)、!~(正则反向)过滤日志;
  • 解析:用 | json| logfmt| pattern 从日志里提取字段做后续聚合;
  • 数值聚合:rate({...}[1m]) 类似 PromQL 但作用于日志条数。

Q4:和 ES / SLS / CLS 选哪个?

A:

  • Loki:K8s 场景 + 想跟 Grafana 系统集成 + 不想运维 ES → 首选;
  • ES:日志要做全文搜索 + 复杂聚合分析;
  • SLS / CLS:用阿里云 / 腾讯云生态、不想运维存储层。

参考资料

更新时间 2025-03-12

快猫星云 联系方式 快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云