前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Prometheus 集成 mtail 日志采集

Prometheus 集成 mtail 日志采集

作者头像
Kevin song
发布2023-02-22 21:37:05
1.8K0
发布2023-02-22 21:37:05
举报

mtail

mtail日志处理器是由Google的SRE人员编写的,其采用Apache 2.0许可证,并且使用Go语言。mtail日志处理器专门用于从应用程序日志中提取要导出到时间序列数据库中的指标。mtail日志处理器通过运行“程序”(program)来工作,它定义了日志匹配模式,并且指定了匹配后要创建和操作的指标。Prometheus可以对mtail暴露任何要抓取的指标,也可以配置为将指标发送到collectd、StatsD或Graphite等工具。

mtail

https://github.com/google/mtail

二进制文件部署mtail

代码语言:javascript
复制
wget  https://github.com/google/mtail/releases/download/v3.0.0-rc50/mtail_3.0.0-rc50_Linux_x86_64.tar.gz
tar -zvxf mtail_3.0.0-rc50_Linux_x86_64.tar.gz
mv mtail /usr/local/

查看mtail版本

代码语言:javascript
复制
./mtail --version

创建一个mtail程序目录

代码语言:javascript
复制
mkdir -p /etc/mtail/prog

创建采集prog文件

cd /etc/mtail/prog

vim error_count.mtail

代码语言:javascript
复制
counter error_count
 
/ERROR|error|Failed|faild/ {
  error_count++
}

说明:error_count变量值统计了包含/ERROR|error|Failed|faild/字串的行

启动mtail

代码语言:javascript
复制
mtail --logtostderr -progs /etc/mtail/prog/error_count.mtail --logs '/var/log/error11.log' 2>&1 &

--progs 指定progs程序

--logs 指定解析的日志文件

--logtostderr 直接输出标准错误信息

重启mtail

代码语言:javascript
复制
ps aux | grep mtail |grep -v grep | awk '{print $2}' |xargs kill -HUP

检查启动是否成功

代码语言:javascript
复制
ss -lntp | grep mtail

查看mtail的相关信息

http://192.168.100.221:3903/

查看mtail输出的metrics

http://192.168.100.221:3903/metrics

Prometheus 集成 mtail

vim /usr/local/prometheus/prometheus.yml

代码语言:javascript
复制
- job_name: "mtail"
    scrape_interval: 60s
    static_configs:
      - targets: ['192.168.100.221:3903']
        labels:
          project: mtail

检查Prometheus配置文件

代码语言:javascript
复制
/usr/local/prometheus/promtool  check config /usr/local/prometheus/prometheus.yml

热加载Prometheus配置文件

代码语言:javascript
复制
curl  -X POST http://127.0.0.1:9090/-/reload

Prometheus Web UI 查看

Prometheus Web 指标查询

代码语言:javascript
复制
error_count{prog="error_count.mtail"} - error_count{prog="error_count.mtail"} offset 3m

Prometheus mtail Rule 文件

vim /usr/local/prometheus/rules/mtail.yml

代码语言:javascript
复制
groups:
- name: 日志监控
  rules:
  - alert: ErrorlogStatus
    expr: error_count{prog="error_count.mtail"} - error_count{prog="error_count.mtail"} offset 3m >= 2
    for: 10s
    labels:
      severity: "critical"
    annotations:
      description: "{{ $labels.instance }} file [/var/log/error11.log] error >=2 current value: {{ $value }}"
      summary: "{{ $labels.instance }} file [/var/log/error11.log] error >=2 current value: {{ $value }}"

error_count offset 3m 当前指标-一分钟之前指标大于等于2触发告警,告警触发后自动恢复

7-5 ≥2

检查rule文件正确性

代码语言:javascript
复制
/usr/local/prometheus/promtool  check rules  mtail.yml

热加载Prometheus配置文件

代码语言:javascript
复制
curl  -X POST http://127.0.0.1:9090/-/reload

Prometheus 告警

mtail官方示例

https://github.com/google/mtail/tree/master/examples

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-12-03,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 开源搬运工宋师傅 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
Prometheus 监控服务
Prometheus 监控服务(TencentCloud Managed Service for Prometheus,TMP)是基于开源 Prometheus 构建的高可用、全托管的服务,与腾讯云容器服务(TKE)高度集成,兼容开源生态丰富多样的应用组件,结合腾讯云可观测平台-告警管理和 Prometheus Alertmanager 能力,为您提供免搭建的高效运维能力,减少开发及运维成本。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com