mtail 监控日志

mtail的核心功能

日志解析:mtail能够读取应用程序的日志文件,并通过用户定义的正则表达式和规则来解析日志内容,提取出关键信息。

指标生成:基于解析出的日志内容,mtail可以生成各种监控指标,如计数器、直方图等,这些指标能够实时反映系统的状态和性能。

数据导出:mtail支持将生成的监控指标以多种格式导出,包括HTTP上的JSON/Prometheus接口,以及collectd、StatsD和Graphite等协议的直接推送,方便与其他监控系统集成。

mtail的使用场景

微服务监控:对于没有内置监控功能的微服务,mtail可以从其日志中收集QPS、错误率等关键指标,帮助开发人员了解服务的运行状态。

遗留系统监控:在无法修改源码的老系统上,mtail提供了无侵入的监控解决方案,无需修改系统代码即可实现监控。

容器化环境监控:在Kubernetes等容器环境中,mtail可以处理Pod的日志并暴露容器级别的监控数据,帮助运维人员更好地管理容器。

mtail的优势

轻量级:mtail的设计非常轻量级,资源占用低,适合大规模部署。

灵活性:mtail支持多种配置选项和输出格式,能够适应不同的监控需求。

易用性:mtail使用简单易懂的编程语言,允许快速编写和调试监控规则。

社区支持:mtail有详细的文档和活跃的社区支持,遇到问题能得到及时的帮助。

mtail的部署

下载

wget https://github.com/google/mtail/releases/download/v3.0.0-rc51/mtail_3.0.0-rc51_Linux_x86_64.tar.gz

tar xf mtail_3.0.0-rc51_Linux_x86_64.tar.gz

cp mtail /usr/local/bin

查看mtail版本

mtail --version

mtail后台启动

nohup mtail -port 3903 -logtostderr -progs test.mtail -logs test.log &

# 默认端口是3903

查看是否启动成功

ps -aux | grep mtail

查看mtail的帮助文档

mtail -h

单日志采集

把本次操作的脚本都放到/mtail目录中

# 创建proj1,里面用于保存日志处理的规则脚本
mkdir proj1

# 在proj1里创建proj.mtail文件并写入以下内容
cat proj1.mtail
counter foo_count
/foo/{
  foo_count++
}

# 创建log目录
mkdir log

# 在log中创建test1.log文件
touch test1.log

# 启动mtail
mtail -progs /mtail/proj1 -logs /mtail/log/test1.log

# 向test1.log中写入foo
echo "foo" > /mtail/log/test1.log

# 查看指标明细
curl 127.0.0.1:3903/metrics

foo_count{prog="proj.mtail"} 1 # 可以看到foo_count指标数为1了

多日志采集

# 在log目录中创建test2.log
touch test2.log

# 然后为test2.log重新创建一个指标脚本
cat proj1/proj2.mtail
counter bar_count
/bar/{
  bar_count++
}

# 启动mtail
mtail -progs /mtail/proj1 -logs /mtail/log/test1.log -logs /mtail/log/test2.log

# 向test2.log写入日志
echo "bar" >>  /mtail/log/test2.log

# 查看指标
curl 127.0.0.1:3903/metrics

bar_count{prog="proj2.mtail"} 2

foo_count{prog="proj1.mtail"} 0

# 向test1.log写入日志
echo "bar" >>  /mtail/log/test1.log

# 查看指标
curl 127.0.0.1:3903/metrics

bar_count{prog="prog2.mtail"} 3

foo_count{prog="prog1.mtail"} 0

Categraf 操作

进入input.mtail文件夹,编辑mtail.toml并增加如下配置:

[[instances]]
progs = "/categraf-v0.2.38-linux-amd64/conf/input.mtail/proj1"
logs = ["/categraf-v0.2.38-linux-amd64/conf/input.mtail/log/test1.log"]
# override_timezone = "Asia/Shanghai"
# emit_metric_timestamp = "true" #string type

[[instances]]
progs = "/categraf-v0.2.38-linux-amd64/conf/input.mtail/proj2"
logs = ["/categraf-v0.2.38-linux-amd64/conf/input.mtail/log/test2.log"]
# override_timezone = "Asia/Shanghai"
# emit_metric_timestamp = "true" # string type

创建文件夹、文件

# 创建文件夹
mkdir {proj1,proj2,log}

# 增加规则文件
cat prog1/a.mtail
counter foo_count
/foo/ {
  foo_count++
}

cat prog2/b.mtail
counter bar_count
/bar/ {
  bar_count++
}

# 增加日志文件
touch {log/test1.log,log/test2.log}

使用测试模式启动

./categraf -test -inputs mtail

往test1.log写入foo日志

echo "foo" >> log/test1.log

往test2.log写入bar日志

echo "bar" >> log/test2.log

向test1.log增加bar的日志

echo "bar" >> log/test1.log
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

韩未零

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值