mtail - 从应用程序日志中提取内部监控数据,用于收集到时间序列数据库
mtail
是一种从应用程序日志中提取指标的工具,用于导出到时间序列数据库或时间序列计算器以进行告警和仪表盘展示。
它填补了监控领域的一个空白,作为不导出自身内部状态(除了通过日志)的应用程序与现有监控系统之间的粘合剂,使系统操作员无需修改这些应用程序来进行检测或为每个这样的应用程序编写自定义提取代码。
提取过程由定义模式和操作的 mtail 程序 控制:
# 简单的行计数器
counter lines_total
/$/ {
lines_total++
}
指标以 JSON 或 Prometheus 格式通过 HTTP 导出供收集器抓取,或者可以定期发送到 collectd、StatsD 或 Graphite 收集器套接字。
如果你想学习如何编写 mtail 程序,请阅读编程指南。
在用户邮件列表上提出一般性问题:https://groups.google.com/g/mtail-users
安装
有多种方式可以安装 mtail。
预编译二进制文件
Github 的 Releases 页面 上提供了已发布版本的预编译二进制文件。使用最新的生产版本二进制文件是安装 mtail 的推荐方式。
提供 Windows、OSX 和 Linux 的二进制文件。
从源代码构建
获取 mtail
最简单的方法是直接 go get
它。
go get github.com/google/mtail/cmd/mtail
这假设你有一个可用的 Go 环境,且 Go 版本较新。通常 mtail 经过测试可以在最近两个次要版本上工作(例如 Go 1.12 和 Go 1.11)。
如果你想获取所有内容,你需要启用 Go Modules 才能成功,因为 Go Modules 改变了 go get 处理顶层没有 Go 代码的源码树的方式。
GO111MODULE=on go get -u github.com/google/mtail
cd $GOPATH/src/github.com/google/mtail
make install
如果你开发编译器,你将需要一些额外的工具,如 goyacc
来重建解析器。
有关更多详细信息,请参阅构建说明。
本仓库中包含一个 Dockerfile
,作为在你的环境中安装 Go 的替代方案,用于本地开发,并处理所有构建依赖项的安装,如果你不关心这些的话。
部署
mtail
与基于时间序列的计算器和告警工具(如 Prometheus)配合使用效果最佳。
所以你是从日志文件中提取指标,然后将它们带到监控系统?
它处理仪表,这样工程师就不用处理了! 它具有提取技能!它擅长处理日志文件!!
了解更多
完整文档请访问 http://google.github.io/mtail/
阅读更多关于编写 mtail
程序的内容:
阅读更多关于改进 mtail
的内容
阅读更多关于在监控环境中部署 mtail
和你的程序的内容
获取更多帮助和报告缺陷
如果你有任何问题,请使用 GitHub Discussions Q&A。
我们还有一个电子邮件列表:https://groups.google.com/forum/#!forum/mtail-users
对于任何缺陷,请提交新的问题。