博客/工程

Loki快速提示:如何创建一个Grafana仪表板搜索日志使用Loki和普罗米修斯

2020年4月8日4分钟

问候!这里是埃尔丁和罗纳德,他们来自Grafana实验室的解决方案工程团队。bob电竞频道bob彩票中奖计划你可能见过一些以前的职位我们的同事克里斯汀和安古斯或者一些很棒的洛基视频沃德在YouTube上的视频.本周,Ronald和我将介绍如何利用Prometheus和Loki作为数据源来创建一个简单但很棒的Grafana仪表板,可以快速搜索日志。

我们都爱洛基!它模仿了大规模部署和管理Cortex的经验教训,所以它自然具有高可用性和水平可扩展性。此外,它重用了与Prometheus非常相似的查询语言,使您能够使用具有相同变量和查询的日志和Prometheus度量。当您在凌晨3点被呼叫时,如果您试图找出事故的根本原因,最后一部分可能是真正的救星!

洛基在这么小的空间里拥有惊人的搜索能力。但是并不是每个人都知道LogQL,有时您需要一种尽可能少考虑的快速访问日志数据的方法。

我们为什么要做仪表盘

在我们深入研究如何构建这个仪表盘之前,让我们先谈谈它背后的历史。

在去年洛杉矶的GrafanaCon上,我们发布了Grafana 6.0。这个版本中最重要的特性之一是一个叫做探索.它非常适合于特定的查询、测试、故障排除,以及当您正在寻找某个东西但还不太知道如何找到它时的一般查找和刺激。

我们的一个客户问我们,他们如何能有一个简单的标签搜索仪表板,以帮助一些团队在故障排除时快速找到他们正在寻找的东西。虽然Explore非常适合这个用例,但对于第一次使用它的用户,或者在半夜接收页面的人来说,它也可能有点令人生畏。

因此,我们想知道:我们是否可以利用一些模板变量来利用新的日志面板?

经过几次尝试,是的,我们可以!

日志面板
日志面板

一步一步的指示

让我们分析一下这个仪表板,看看我们是如何创建它的。

首先,您将注意到一个面板和几个模板变量。这里的神奇之处在于最后一个称为“文本框”的模板变量。这让我们选择要搜索的日志的特定子集(基于Prometheus度量标签),然后提供了一种简单的方法来对日志运行搜索(通过Loki)。

要构建这个,首先我们需要把一些串在一起普罗米修斯变量:

将普罗米修斯变量串在一起
将普罗米修斯变量串在一起

我们总共使用了三个变量。

第一个变量是美元的命名空间它包含:label_values (kube_pod_info、名称空间).这将用于选择要搜索的集群。

以下是美元的豆荚,其中包括:label_values (container_network_receive_bytes_total{名称空间= ~“美元命名空间”},pod).这将选择实际的pod并缩小日志搜索空间。(注意,我们正在使用container_network_receive_bytes_total作为一个指标名称来查找可用的pod,但是您可以使用任何指标来表示您的环境中的所有pod。)

最后一个是a文本框输入命名搜索。正如您可能已经猜到的那样,这将用于实际执行搜索。

唷!现在我们已经将几个变量串在一起,让我们添加日志面板并使用{名称空间= " $名称空间",实例= ~“pod”美元}| ~“搜索”美元作为Loki数据源的查询。

日志面板
日志面板

所有这些都为搜索日志提供了一个漂亮而简单的界面——您的用户甚至不需要编写一个LogQL查询!

这是仪表盘json如果你想看看的话。

最后,一个小彩蛋!洛基团队更进一步增强这个用例包含在最近发布的Loki v1.4.0中。一定要升级!

这就是我们今天的全部内容,但请在推特上告诉我们你想让我们写什么!下次见,仪表盘快乐!

想了解更多关于洛基的事吗?

报名参加我们定于4月22日上午9:30 PT/16:30 UTC举行的Loki介绍网络研讨会。议程包括Loki如何工作的概述,运行Loki并测试它的基本配置和设置,如何从Grafana使用Loki,查询的介绍,以及与Loki团队成员的问答埃德•韦尔奇而且西里尔Tovena