使用 InfluxDB 重新构想 nmon
作者:Jason Myers / 产品
2022 年 10 月 04 日
导航至
IBM 工程师 Nigel Griffiths 在 1990 年代构建了 nmon,用于监控 AIX 的操作系统性能数据。自最初发布以来,Griffiths 重新审视并改进了 nmon。例如,他为 Linux 构建了一个开源版本。尽管计算的本质发生了巨大变化,存储、内存和计算能力呈指数级增长,但直到 2018 年,Griffiths 才寻求完全重写该工具,使其与现代计算机系统保持一致。
nmon 的局限性
旧版本的 nmon 在屏幕上显示压缩数据,或将其保存到 CSV 文件中,用户随后可以使用这些文件进行绘图和分析。但是用户还必须等到小时结束或一天结束才能获得这些文件,然后才能绘制它们。因此,它远非实时。Griffiths 还为数据创建了自己的文件格式,他将其描述为“古怪”。虽然该工具为用户提供了有用的信息,但它并不总是最容易使用的工具。尽管如此,它仍然被证明是一个受欢迎的工具,下载量超过 100 万次。
重写 nmon
从 2018 年开始,Griffiths 从头开始重建 nmon。他确定了该工具的四个方面需要现代化:1. 文件格式,2. 该工具收集的指标集,3. 数据存储,以及 4. 数据可视化。
前两个方面非常简单明了。他将该工具独特的文件格式替换为标准 JSON 和 InfluxDB 行协议。他将该工具收集的指标数量从有限的一组系统性能统计信息扩展到几乎所有可能的统计信息。
他询问了关于数据库和绘图选项,用于该工具收集的所有时间序列数据,并很快确定了 InfluxDB 和 Grafana 分别作为数据库和绘图工具。实际上,nmon 有两个不同的版本,每个版本都有不同的架构,用于将数据发送到 InfluxDB。
一个版本 njmon 使用 JSON 文件格式,并利用 Python 守护程序和 InfluxDB Python 客户端库将数据发送到 InfluxDB。另一个版本 nimon 使用 InfluxDB 行协议作为其文件格式,并使用 Telegraf 收集并将数据发送到 InfluxDB。
一旦数据进入 InfluxDB,用户就可以使用 Grafana 实时绘制这些数据。这些更新使 nmon 在现代技术堆栈中更加强大和有用。
要了解有关 nmon 及其如何使用 InfluxDB 的更多信息,请查看完整的案例研究。