vlambda博客
学习文章列表

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