首页 > 其他分享 >今日实践:利用Grafana为你的Loki添加告警

今日实践:利用Grafana为你的Loki添加告警

时间:2022-10-08 20:02:29浏览次数:53  
标签:查询 小白 Loki 告警 Grafana 日志

正文共:2119字
预计阅读时间:6分钟

做过运维的同学都知道,服务的可观测性是一个非常重要的渠道,能够让我们掌控线上服务运行时的状态。一个好的监控系统,其价值在于一旦出现故障能够让我们运维的同学能够快速收到服务异常的通知以及定位问题。也就是我们常说的告警的两大衡量指标,即实时性和有效性。

1

 Loki 的鸡汤

那么,今天小白请出第一个云原生里负责日志存储的便是Loki。这里可能有同学就说了:"我的日志存储和分析一直用elasticsearch也可以啊,为什么要用Loki"。别急,等小白慢慢说道说道

  • 首先Loki采用Golang开发,相比ES,Loki它更加轻量也更容易部署
  • 其次Loki仅索引日志的元数据部分,日志部分全部压缩存储,这样在方便操作的同时又节能节省我们存储空间
  • Loki采用和Prometheus一样的标签建立索引,这意味我们可以通过标签将metrics和logging监控数据联动起来

另外Loki也是由三部分构成,分别是负责采集的Promtail、负责存储的Loki和负责展示的Grafana。这里又有同学要问了:"我自己有了日志采集客户端了,难道还要再加一个Promtail吗?"。其实不然,Loki的日志收集有四种方法,除了Promtail外,还可以使用 ​​Fluentd​​​、 ​​Fluent​Bit​​​和 ​​Docker​Driver​​的方式。

今天,小白的实践就是利用Grafana给Loki日志系统添加告警功能。

2

进入正题

假设小白认为大家已经使用上Loki并在Grafana上查询日志了。那么小白在自己的环境内操作一次通过将内核OOM的故障告警出来,向大家展示此次告警的实践。

1.小白通过标签定位到需要查看的服务,并使用关键字过滤出想要查看的日志内容

今日实践:利用Grafana为你的Loki添加告警_服务器

2.这时小白想看下过去一段时间内服务器上出现OOM的趋势

今日实践:利用Grafana为你的Loki添加告警_服务器_02

可以看到,这里小白的服务器每过段时间都会出现零零散散的OOM事件,那么有运维的同学就要问了:"这么多OOM怎么办,Grafana好像也没地方可以配置Loki告警啊",小白先按下不表,让我们先来看看Prometheus和Loki的查询接口:

Prometheus的查询接口

  1. ​# 及时查询​
  2. ​$ curl 'http://localhost:9090/api/v1/query?query=up&time=2015-07-01T20:10:51.781Z'​
  3. ​# 范围查询​
  4. ​$ curl 'http://localhost:9090/api/v1/query_range?query=up&start=2015-07-01T20:10:30.781Z&end=2015-07-01T20:11:00.781Z&step=15s'​​

Loli的查询接口

  1. ​# 及时查询​
  2. ​$ curl -G -s  "http://localhost:3100/loki/api/v1/query" --data-urlencode 'query=sum(rate({job="varlogs"}[10m])) by (level)'​​
  3. ​# 范围查询​
  4. ​$ curl -G -s  "http://localhost:3100/loki/api/v1/query_range" --data-urlencode 'query=sum(rate({job="varlogs"}[10m])) by (level)' --data-urlencode 'step=300'​​

小白先问大家有没有发现点奇怪东西呢?没错!眼尖的同学可能看出来Prometheus和Loki在查询的URL上几乎一样,并且参数基本也是兼容的。那么我们可不可以将Grafana的上Loki数据源改成类Prometheus的格式呢?

答案是当然可以!事实上在Github上我们也可以找到相关的问题#1422和#1222

得益于prometheus和loki是一个开发团队出品,我们只需简单的配置一步,在数据源中添加一个Prometheus类型,并在地址栏中填写上 http://loki:3100/loki,这样我们就能通过像查询prometheus一样查询日志的趋势图了

今日实践:利用Grafana为你的Loki添加告警_查询接口_03

这时候小白再创建一个pannel来查询内核的OOM趋势就可以得到如下结果:

今日实践:利用Grafana为你的Loki添加告警_查询接口_04接下来的工作,小白就是在Grafana上添加一个Alert小铃铛,让它每分钟去Loki里面查询有没有出现OOM的日志生成,如果计算出来的结果大于0,小白就让Grafana通过邮件告警出来。

今日实践:利用Grafana为你的Loki添加告警_查询接口_05

配置完成后不急保存,我们先Test Rule看看是否生效。

今日实践:利用Grafana为你的Loki添加告警_查询接口_06

看到 state:"ok",小白长舒一口,终于可以设置告警了

标签:查询,小白,Loki,告警,Grafana,日志
From: https://blog.51cto.com/u_15820126/5738630

相关文章

  • 听说,你的Loki还是单体?(上篇)
    正文共:1923字预计阅读时间:5分钟很多时候我们把Loki部署成一个单体应用,这样能够让我们快速的将它在开发、测试环境中应用起来。不过最终大家都还是逃不过真香定律,这个时候大......
  • 听说,你的Loki还是单体?(下篇)
    正文共729字预计阅读时间:2分钟......
  • 巧用缓存加速Loki查询
    正文共:1053字预计阅读时间:3分钟缓存在当下已被广泛的应用到大型业务系统当中合理的使用缓存可有效加快应用速度、提升应用的可扩展性和降低对后端数据的性能依赖。那么对于......
  • 今日实践:Loki丝滑般的数据切换
    正文共:2463字预计阅读时间:7分钟用过Loki的同学都知道,日志存储在Loki里主要分为两部分,日志原始文件以及日志索引。按照Loki数据的设计思路,日志原始文件可以存放在任何文件系......
  • Grafana监控java应用以及vCenter的方法
    Grafana监控java应用以及vCenter的方法背景最开始弄过vCenter的监控.但是发现很多地方已经不合适了.今天看了下jmx监控java的应用.顺便监控了下vCenter.这里简单记录一下,......
  • vCenter 6.7 使用Grafana监控失败的处理
    背景国庆处理的vCenter监控.老的vCenter6.0的平台很正常.但是新的vCenter6.7就经常出现断连的情况.花费了快一个多小时才搞定,这里记录一下.问题现象vCenter......
  • Skywalking应用实战 Agent探针、Rocketbot以及告警
    3Skywalking应用相关术语:skywalking-collector:链路数据归集器,数据可以落地ElasticSearch/H2skywalking-ui:web可视化平台,用来展示落地的数据skywalking-agent:探针,用来收......
  • lokijs
    ​​http://lokijs.org/#/​​ 500,000+ 1.1Mops/s. Afast,in-memorydocument-orienteddatastorefornode.js,browserandcordovaIn-memoryJavascriptDatastor......
  • 【.NET 6+Loki+Grafana】实现轻量级日志可视化服务功能
    前言:日志功能是几乎所有程序或系统都必备的一个功能。该文章通过使用Loki+Grafana来实现日志记录与可视化查询,欢迎围观。有关环境:操作系统:WIN10.NET环境:.NET6开发环......
  • 通过grafana展示prometheus的node和pod数据
    安装grafanagrafana介绍  grafana是⼀个可视化组件,⽤于接收客户端浏览器的请求并连接到prometheus查询数据,最后经过渲染并在浏览器进⾏体系化显示,需要注意的是,grafan......