我正在运行一个 munin 设置,我想保持 munin-node 设置不变,同时获取更长更详细的记录数据视图。我想让所有记录的数据保持无限期。理想的解决方案是使用类似注释时间线小部件,以便我可以放大到历史记录中的任何点。
编辑:我已经发现 munin 使用有损数据库,所以我预计我需要一些东西来替代它;也就是说,除非我弄错了,任何不能替代 Munin 的答案对我来说很可能没用。
我希望能有一个 munin 的替代品,可以读取 munin 配置文件的相应部分(例如所有 munin-nodes 的地址),并且不需要对 munin-node 安装进行任何修改
答案1
Munin 和我所知的同类工具一样,使用循环数据库(RRD)文件来存储数据。下面是一个RRD 基础知识讲解。RRD 文件由 Round Robin Archives 或 RRA 组成。RRA 有两层含义,即“有损”,它将多个数据点合并为一个,并在收集到一定量的数据后覆盖数据。您可以指定如何执行此操作。例如,假设我使用以下命令创建了一个 RRD 文件
rrdtool create example.rrd \
[skip some necessary options]
--step 300
RRA:LAST:0.5:1:288 \
RRA:AVERAGE:0.5:12:168 \
RRA:AVERAGE:0.5:288:28
步骤300表示我们每 5 分钟收集一次指标,rrdtool 将其称为主要数据点或 PDP。每个 RRA 行指定四件事,CF:xff:步骤:行。
1)CF,即合并函数。这决定了 RRD 如何将多个主要数据点合并为合并数据点或 CDP。它可以平均的所有值,使用分钟最大值,使用最大限度最小值,或者直接使用最后的价值。
2)“x 文件因子”是指在 CF 返回以下值之前,数据必须缺失多少比例未知而不是对非缺失数据进行操作。
3)步骤,即使用多少个原始数据点来计算合并数据点。
4) 行数,即要保留的合并数据点的数量。
在我们的示例中,第一个 RRA 会将您主要的数据点保留一天,第二个 RRA 会每小时平均您主要的数据点并保留一周的每日平均值,第三个 RRA 会每天平均您主要的数据点并保留四周的每日平均值。
如果您希望 Munin 保留更长时间和更详细的数据,请使用具有较低步骤和较高行数的 RRA 的 RRD 文件。这由graph_data_size选项。Munin 有一个人类可读的语法以便于配置。我们前面示例中的选项将转换为
graph_data_size custom 5m for 1d, 1h for 1w, 1d for 4w
如果你想保留两年的主要数据点,你可以走捷径并设置graph_data_size到巨大的。
更改此选项后,您必须删除现有的 RRD 文件,以便 Munin 使用新的保留设置创建新文件
答案2
我最近评估了许多趋势/警报工具。
至少在他们的代理/收集器模型上,似乎有两种不同的模型,“nagios/请求模型”和“syslog/报告”模型。
因此在活动模型中
扎比克斯:趋势/警报相结合。将数据存储在后端 SQL 数据库中(因此数据不会像 RRD 数据库那样丢失/舍入)。
穆宁:趋势/使用插件将数据发送到 nagios(即,您使用 munin 收集数据,然后运行查看本地数据的 nagios 程序,因此您不需要远程系统上同时使用 munin 和 nagios 代理)。
“系统日志”模型使用多播或单播 UDP 模型,其中受监控系统每隔一段时间向收集器发送一个 UDP 数据包。流量是未经请求的;报告系统只是每隔一段时间发送一次,无论监控系统是否启动。
收集和神经节两者都遵循此模型。我从未使用过 ganglia,但 collectd 有一个小插件,可以向 nagios 报告启动 / 警告 / 紧急状态(并且它还会报告是否在 3 个时间间隔内未从主机看到数据,以便您查看系统是否因未回拨而崩溃)。
Collectd 具有开箱即用的可怕图形/报告工具,但它可以输出 RRD 和 CSV 文本文件(名称、time_t、值),因此您可以非常轻松地推出自己的仪表板。
我没怎么玩过 ganglia。
答案3
Munin 使用 RRDTool 来存储数据。使用 RRD 样式的数据存储,随着时间的推移,数据点分辨率会降低,因此“放大到历史记录中的任何点”这一要求将无法实现。
可能有办法让 munin 使用其他类型的后端存储,但我从来没有这种需要,所以无法确认这确实可行。
答案4
虽然 munin 已经过时了,但它仍然是当前使用的度量技术。我们公司使用一种称为 MuninMX 的技术。它是 Java 中的收集器替代品,带有基于 php 的前端。
很酷的是,我们不需要更换 munin,我们只需插入另一个收集器和前端。还有优点。它使用 tokumx 作为存储后端,而不是 rrd 文件。
我们在一台四核机器上跟踪了总共大约 1000 个节点和 50k 个插件,没有出现任何 io 问题。
此外,原始的 munin 似乎也转向了数据库配置和 json api。也许随着时间的推移,munin 也可以将数据存储在 influxdb 中。