正文共:2119字
预计阅读时间:6分钟
做过运维的同学都知道,服务的可观测性是一个非常重要的渠道,能够让我们掌控线上服务运行时的状态。一个好的监控系统,其价值在于一旦出现故障能够让我们运维的同学能够快速收到服务异常的通知以及定位问题。也就是我们常说的告警的两大衡量指标,即实时性和有效性。
Loki 的鸡汤
那么,今天小白请出第一个云原生里负责日志存储的便是Loki。这里可能有同学就说了:"我的日志存储和分析一直用elasticsearch也可以啊,为什么要用Loki"。别急,等小白慢慢说道说道
-
首先Loki采用Golang开发,相比ES,Loki它更加轻量也更容易部署
-
其次Loki仅索引日志的元数据部分,日志部分全部压缩存储,这样在方便操作的同时又节能节省我们存储空间
-
Loki采用和Prometheus一样的标签建立索引,这意味我们可以通过标签将metrics和logging监控数据联动起来
另外Loki也是由三部分构成,分别是负责采集的Promtail、负责存储的Loki和负责展示的Grafana。这里又有同学要问了:"我自己有了日志采集客户端了,难道还要再加一个Promtail吗?"。其实不然,Loki的日志收集有四种方法,除了Promtail外,还可以使用 Fluentd
、 FluentBit
和 DockerDriver
的方式。
今天,小白的实践就是利用Grafana给Loki日志系统添加告警功能。
进入正题
假设小白认为大家已经使用上Loki并在Grafana上查询日志了。那么小白在自己的环境内操作一次通过将内核OOM的故障告警出来,向大家展示此次告警的实践。
1.小白通过标签定位到需要查看的服务,并使用关键字过滤出想要查看的日志内容