概述
创立一个简略的 Grafana 仪表板, 以实现对日志的疾速搜寻.
有教训的间接用 Grafana 的 Explore 性能就能够了.
然而对于没有教训的人, 他们如何能有一个曾经预设了简略的标签搜寻的仪表板,以帮忙一些团队在排除故障时疾速找到他们正在寻找的货色。尽管 Explore 很适宜这个用例,但对于第一次应用的人,或者中午收到告警的人来说,也可能有点令人生畏。
所以, 尝试通过一些模板变量来创立一个展现日志的 Grafana 仪表板.
步骤
实现概述
创立个 Logs Panel 的仪表板, 而后增加几个变量, Logs Panel 的 LogQL 表达式引入这些变量.
创立变量
因为 Loki 和 Prometheus 共享一套 Label, 所以能够通过 Prometheus 的 Label 来作为 Loki 的变量. 如下图:
这里创立一个能够通过: namespace
, pod
, 日志过滤条件
筛选日志的仪表板:
-
namespace
变量, 通过该变量获取所有的namespace
作为变量筛选条件:- Type:
Query
- DataSource: Prometheus
- Query:
label_values(kube_pod_info, namespace)
- Type:
-
pod
变量, 通过该变量获取对应namespace
下的pod
作为变量筛选条件以放大日志搜寻空间:- Type:
Query
- DataSource: Prometheus
- Query:
label_values(container_network_receive_bytes_total{namespace=~"$namespace"},pod)
- Multi-value: 勾选;
- Include All option: 勾选
- Custom all value:
.*
- 🐾留神,应用
container_network_receive_bytes_total
作为指标名称来寻找可用的 pod,但你能够应用任何指标来代表你环境中的所有 pod。
- Type:
-
search
变量, 通过该变量作为 LogQL 的管道过滤条件, 它被用来理论执行搜寻:- Type:
Text Box
- Default value:
rror
(命中Error
或error
)
- Type:
执行 LogQL
最初, 把下面的变量串联起来, 增加 Logs Panel, 应用 Loki 作为数据源, 并应用{namespace="$namespace", instance=~"$pod"} |~ "$search"
作为 LogQL. 如下:
所有这些加在一起,提供了一个丑陋而简略的搜寻日志的界面 – 不相熟的人甚至不须要写一个 LogQL 查问!
如果你想查看的话,这里是仪表板 json
再做一个查看 Journal 日志的
同样, 再做一个查看 Journal 日志的:
创立变量
这里间接应用 Loki 的 Label.
这里创立一个能够通过: hostname
, unit
, 日志过滤条件
筛选日志的仪表板:
-
hostname
变量, 通过该变量获取所有的hostname
作为变量筛选条件:- Type:
Query
- DataSource: Loki
- Query:
label_values(hostname)
- Multi-value: 勾选
- Include All option: 勾选
- Custom all value:
.+
- Type:
-
unit
变量, 通过该变量获取对应hostname
下的unit
作为变量筛选条件以放大日志搜寻空间:- Type:
Query
- DataSource: Loki
- Query:
label_values({hostname=~"$hostname"}, unit)
- Multi-value: 勾选;
- Include All option: 勾选
- Custom all value:
.+
- 🐾留神,应用
container_network_receive_bytes_total
作为指标名称来寻找可用的 pod,但你能够应用任何指标来代表你环境中的所有 pod。
- Type:
-
search
变量, 通过该变量作为 LogQL 的管道过滤条件, 它被用来理论执行搜寻:- Type:
Text Box
- Default value:
rror
(命中Error
或error
)
- Type:
执行 LogQL
最初, 把下面的变量串联起来, 增加 Logs Panel, 应用 Loki 作为数据源, 并应用{hostname=~"$hostname", unit=~"$unit"} |~ "$search"
作为 LogQL. 如下:
最终成果
最终成果如下:
和如下:
🎉🎉🎉
Grafana 系列文章
Grafana 系列文章
三人行, 必有我师; 常识共享, 天下为公. 本文由东风微鸣技术博客 EWhisper.cn 编写.