k8s上搭建loki日志服务并通过prometheus进行错误日志告警

zunwen zunwen     2022-12-12     348

关键词:

1. 前言

prometheus 和 loki的基础概念就不赘述了,如需查看请先移步到官网
prometheus -> https://prometheus.io/
loki -> https://grafana.com/oss/loki/

2. 要解决的问题

之前测试环境搭建Loki采集日志没有设置ERROR级别告警的需求,现在正式环境需要添加日志告警了,最开始是直接通过grafana面板自带的告警,但是感觉不太好使(也许是我配置的问题,很多本该告警的时候没有告警),所以还是通过prometheus结合自己写的hook来进行告警

这里也简单说下grafana上添加Loki日志告警需要注意的一点:

  1. 添加datasource 选择prometheus 但是在填写路径的时候并不是直接 http://loki地址:3100 而是 http://loki地址:3100/loki
  2. 规则什么的比较简单 eg: count_over_time(container="xy-xxxx" |= "INFO"[1m]) 就是查询一分钟container="xy-xxxx"日志中包含了INFO关键字的个数

3. 进入正题

loki 和 Prometheus-operator 的安装可以参考 https://www.infracloud.io/blogs/grafana-loki-log-monitoring-alerting/

这篇只说在过程中需要注意的问题

  1. 我按照https://www.infracloud.io/blogs/grafana-loki-log-monitoring-alerting/ 教程中自定义的values.yaml文件会出现一些错误,所以我直接修改的helm包里面具体的字段 ,然后安装没有问题
  2. 需要增加自定义应用日志筛选

自定义应用日志筛选思路

首先要理清日志从打印到告警的整个过程是怎样的

  1. 日志是loki中的promtail来负责的,所以如果需要对日志做筛选的工作那么就要在promtail这里来完成
  2. prometheus要获取到日志的告警指标,我们知道prometheus是通过抓取目标的/metrics来获取数据的,所以在promtail这里做日志筛选时就需要将自定义的指标暴露给prometheus
    在loki的官网中会发现有个pipeline_stages 和metrics两个配置(我们的参考链接中也有提到这个,但并没有说为什么要这么做,我也是看了官网才知道),可以满足我们的需求
  3. prometheus通过promtail的/metrics获取到信息后,需要设置告警rules ,因为之前我们是用prometheus-operator来搭建的,所以直接edit对应的rules文件是不能达到目的的,所以这里又涉及到自定义prometheus rules的步骤 这个可以参照我之前写的笔记 https://www.cnblogs.com/zunwen/p/14023248.html
  4. 到这里应该就差不多了哈哈



loki搭建记录

参考技术A需要有k8s集群本机安装有helm,kubectl,docker用于存储loki的index和chunk通过如下命令获取admin密码访问k8sip:30086,k8sip为k8s节点的ip输入admin,和上面获取的密码然后先后点击identity,users,createuser,输入accesskey,secretkey,勾选所有policy,点... 查看详情

日志系统新贵——loki详解

...,解决思路应该如下:我们的监控使用的是基于Prometh 查看详情

kubernetes日志系统新贵loki-stack

参考技术AGrafanaLoki是可以组成功能齐全的日志记录堆栈的一组组件。与其他日志记录系统不同,Loki是基于仅索引有关日志的元数据的想法而构建的:标签(就像Prometheus标签一样)。然后,日志数据本身被压缩并存储在对象存储... 查看详情

分布式日志系统graylog、loki及elk的分析和对比

参考技术A日志系列:企业级日志平台新秀Graylog,比ELK轻量多了日志系统新贵Loki,比ELK轻量多了1.为什么需要集中的日志系统?在分布式系统中,众多服务分散部署在数十台甚至是上百台不同的服务器上,要想快速方便的实现查... 查看详情

k8s通过heml安装loki

通过heml去部署Loki,要先安装heml:12345678wget https://get.helm.sh/helm-v2.16.9-linux-amd64.tar.gz tar -xf helm-v2.16.9-linux-amd64.tar.gz -C /usr/local/mv linux-amd64/ he 查看详情

Loki 不收集短寿命 pod 的日志

】Loki不收集短寿命pod的日志【英文标题】:Lokidoesn\'tcollectlogsofshort-livedpods【发布时间】:2021-05-2711:20:07【问题描述】:我正在k8s集群中试验jenkins。我的环境是minikube。我在ubuntu中设置了一个独立的jenkins服务器,然后我使用k8splu... 查看详情

loki日志收集单进程模式部署

...、Loki架构图四、Loki部署五、与EFK比较一、Loki特点1.1围绕日志标签构建索引,而不是像es一样进行全文索引1.2多租户   通过tenantID实现多租户,如果关闭多租户,则默认唯一租户为fake1.3部署模式   1.1单进程模式  ... 查看详情

k8s搭建efk日志管理系统(代码片段)

efk就是目前比较受欢迎的日志管理系统。kubernetes可以实现efk的快速部署和使用,通过statefulset控制器部署elasticsearch组件,用来存储日志数据,还可通过volumenclaimtemplate动态生成pv实现es数据的持久化。通过deployment部署kibana组件,... 查看详情

轻量级日志系统plg(**promtail+loki+grafana**)架构技术调研(代码片段)

开源的容器云日志方案1、PromtailPromtail是代理,负责收集日志并将其发送给loki。对标ELK中的Logstash。Promtail是一个日志收集的代理,它的主要工作模式是发现存储在磁盘上的日志文件,并将其与一组标签关联的日志文... 查看详情

从 Loki 下载日志

】从Loki下载日志【英文标题】:DownloadLogsfromLoki【发布时间】:2021-02-1723:09:24【问题描述】:我的集群中有一个grafanaLoki日志。我可以看到我的日志,但目前集群已不再使用,我想删除它,但我仍然有一些日志我想提取Loki并可能... 查看详情

在 Grafana 上排序日志(来自 Loki)

】在Grafana上排序日志(来自Loki)【英文标题】:Sortinglogs(fromLoki)onGrafana【发布时间】:2022-01-0919:05:04【问题描述】:场景:日志格式如下:<SequenceID><Level><Message>我需要根据Grafana的SequenceID对日志进行排序。背景:... 查看详情

在kubernetes中从0打造可观测性

...Kubernetes中使用Grafana、Prometheus、Loki、Tempo、OpenTelemetry来搭建可观测性平台。其中Grafana作为操作面板,Prometheus、Loki、Tempo作为数据源,分别用来获取指标、日志以及跟踪数据。同时,我们还将使用Exemplars将trace_id与Java指标相关联... 查看详情

Loki 保留期 s3 + dynamo

...】:我对grafana-loki中的保留机制有疑问我需要存储一年的日志并能够查询它们使用官方Loki图表在k8s中进行设置下面是我的配置auth_enabled:falseingester:chunk_idle_period:5mchunk_block_size:262144 查看详情

loki日志收集系统部署(代码片段)

loki日志收集系统loki简介一、promtail部署二、loki部署三、配置grafanaloki简介介绍:Loki由以下3个部分组成:loki是主服务器,负责存储日志和处理查询。promtail是代理,负责收集日志并将其发送给loki。Grafana用于UI展示... 查看详情

loki能支撑多大数据量

参考技术A没有上限。loki是主服务器,负责存储日志和处理查询。通过存储压缩非结构化日志和仅索引元数据,Loki操作起来会更简单,更省成本。 查看详情

评测loki日志工具(代码片段)

评测Loki日志工具目录评测Loki日志工具部署Loki配置grafana总结:优势:劣势:本文仅对Loki进行简单评测,不涉及原理和细节。部署LokiLoki是grafana团队开发一个日志采集工具。使用推荐使用helm方式安装loki,官方推荐的tanka需要使用... 查看详情

grafana官方使用文档_使用loki采集微服务日志

参考技术Ahelm快速生效方法wgethttps://get.helm.sh/helm-v3.2.1-linux-amd64.tar.gztar-zxvfhelm-v3.2.1-linux-amd64.tar.gzcdlinux-amd64/cphelm/usr/local/binchmoda+x/usr/local/bin/helmkubectlgetpods-nlokihelmupgrade--installmy-release--namespace=lokiloki/grafana安装完成后查看Pod的状态... 查看详情

「开源摘星计划」loki实现harbor日志的高效管理

...加入。​​​​​​​​前言在Harbor的使用Loki实现Harbor日志的管理,在Grafana页面查询Harbor的日志。环境:已通过Helm在Kubernetes集群中安装Harbor,Harbor服务部署在Harbor命名空间中。Helm部署Harbor的文档请阅读:Helm部署Harbor,实现高... 查看详情