mtail
mtail日志处理器是由Google的SRE人员编写的,其采用Apache 2.0许可证,并且使用Go语言。mtail日志处理器专门用于从应用程序日志中提取要导出到时间序列数据库中的指标。mtail日志处理器通过运行“程序”(program)来工作,它定义了日志匹配模式,并且指定了匹配后要创建和操作的指标。Prometheus可以对mtail暴露任何要抓取的指标,也可以配置为将指标发送到collectd、StatsD或Graphite等工具。
mtail
https://github.com/google/mtail
二进制文件部署mtail
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版本
./mtail --version
创建一个mtail程序目录
mkdir -p /etc/mtail/prog
创建采集prog文件
cd /etc/mtail/prog
vim error_count.mtail
counter error_count
/ERROR|error|Failed|faild/ {
error_count++
}
说明:error_count变量值统计了包含/ERROR|error|Failed|faild/字串的行
启动mtail
mtail --logtostderr -progs /etc/mtail/prog/error_count.mtail --logs '/var/log/error11.log' 2>&1 &
--progs 指定progs程序
--logs 指定解析的日志文件
--logtostderr 直接输出标准错误信息
重启mtail
ps aux | grep mtail |grep -v grep | awk '{print $2}' |xargs kill -HUP
检查启动是否成功
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
- job_name: "mtail"
scrape_interval: 60s
static_configs:
- targets: ['192.168.100.221:3903']
labels:
project: mtail
检查Prometheus配置文件
/usr/local/prometheus/promtool check config /usr/local/prometheus/prometheus.yml
热加载Prometheus配置文件
curl -X POST http://127.0.0.1:9090/-/reload
Prometheus Web UI 查看
Prometheus Web 指标查询
error_count{prog="error_count.mtail"} - error_count{prog="error_count.mtail"} offset 3m
Prometheus mtail Rule 文件
vim /usr/local/prometheus/rules/mtail.yml
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文件正确性
/usr/local/prometheus/promtool check rules mtail.yml
热加载Prometheus配置文件
curl -X POST http://127.0.0.1:9090/-/reload
Prometheus 告警
mtail官方示例
https://github.com/google/mtail/tree/master/examples