mtail日志监控方案
mtail使用流式读取日志,通过正则表达式匹配的方式从日志中提取metrics指标,这种方式可以利用目标机器的算力,不过如果量太大,可能会影响目标机器上的业务程序
下载:https://github.com/google/mtail/releases
wget https://github.com/google/mtail/releases/download/v3.0.0-rc48/mtail_3.0.0-rc48_Linux_x86_64.tar.gz
tar mtail_3.0.0-rc48_Linux_x86_64.tar.gz
mv mtail /usr/bin
编辑配置文件(统计日志中包含INFO的数量,并写入mtail_info_total)
serverlog.mtail
counter mtail_info_total
/INFO/ {
mtail_info_total++
}
运行mtail
通过 --progs 参数指定一个目录,这个目录里放置一堆的*.mtail文件,每个mtail文件就是描述的正则提取规则,通过 --logs 参数来指定要监控的日志目录,可以写通配符,--logs 可以写多次,上例中只是指定了 --progs 和 --logs ,没有其他参数,mtail启动之后会自动监听一个端口3903,在3903的/metrics接口暴露符合Prometheus协议的监控数据,Prometheus(或者Telegraf)就可以从 /metrics 接口提取监控数据。
nohup mtail -logtostderr --progs serverlog.mtail --logs Server.log &> stdout.log &
查看metrics
curl -s localhost:3903/metrics
修改telegraf配置获取metrics
[[inputs.prometheus]]
urls = ["http://localhost:3903/metrics"]
重启telegraf
systemctl restart telegraf
在n9e中查看mtail_info_total_counter的值
更多样例:https://github.com/google/mtail/tree/main/examples