在每个节点上启用和禁用插件

在每个节点上启用和禁用插件

为了密切关注我们的生产服务器的运行情况,我最近发现了穆宁。安装很简单,但我在如何添加/删除图表方面遇到了很多麻烦。

我发现一些文档建议我可以重新排序,但关于如何管理插件配置的讨论很少。插件文档的大部分内容都是讨论如何创建插件,而不是使用插件。

问题很简单:如何使用庞大的插件库,以便了解 nginx、mysql 和 memcache 等的情况。

答案1

在每个节点上启用和禁用插件

/etc/munin/plugins/通过节点目录中的符号链接添加和删除图表。

要删除图表,您必须删除符号链接并重新启动节点:

rm /etc/munin/plugins/diskstats
service munin-node restart

要添加图表,您必须在插件目录中添加指向可执行文件的符号链接。例如:

ln -s /usr/share/munin/plugins/diskstats /etc/munin/plugins/diskstats
service munin-node restart

当您重新启动 munin-node 时,它​​会立即运行,并且插件的任何问题都会出现在 中/var/log/munin/munin-node.log。如果一切顺利,您将看到每个周期记录一个 CONNECT;这记录了主服务器连接以收集最新数据的事实。

Process Backgrounded
2014/03/10-15:59:47 Munin::Node::Server (type Net::Server::Fork) starting! pid(32231)
Resolved [*]:4949 to [::]:4949, IPv6
Not including resolved host [0.0.0.0] IPv4 because it will be handled by [::] IPv6
Binding to TCP port 4949 on host :: with IPv6
2014/03/10-16:00:04 CONNECT TCP Peer: "[::ffff:203.28.51.227]:45965" Local: "[::ffff:50.23.111.122]:4949"
2014/03/10-16:05:04 CONNECT TCP Peer: "[::ffff:203.28.51.227]:46109" Local: "[::ffff:50.23.111.122]:4949"
2014/03/10-16:10:04 CONNECT TCP Peer: "[::ffff:203.28.51.227]:46109" Local: "[::ffff:50.23.111.122]:4949"

在节点上配置插件

安装必备模块

但事情可能不太顺利。运行插件时的错误也会记录在这里,这是让插件正常工作的关键线索。在这里我们看到 nginx_request 插件存在问题...

2014/03/10-11:25:05 CONNECT TCP Peer: "[::ffff:203.28.51.227]:38474" Local: "[::ffff:50.23.111.122]:4949"
2014/03/10-11:25:19 [22482] Error output from nginx_request:
2014/03/10-11:25:19 [22482]     Use of uninitialized value $LWP::VERSION in sprintf at /etc/munin/plugins/nginx_request line 109.
2014/03/10-11:25:19 [22482]     Can't locate object method "new" via package "LWP::UserAgent" at /etc/munin/plugins/nginx_request line 109.
2014/03/10-11:25:19 [22482] Service 'nginx_request' exited with status 2/0.

插件是可执行程序 - 大部分用 Perl 编写。Ubuntu 上安装了大量插件/usr/share/munin/plugins/。由于大部分插件都是用户贡献的,因此质量似乎差别很大,但它们都需要查询系统以获取所需的数据,然后将其整理成 munin 可以使用的格式。

它们中的大多数都依赖于您可能已经安装或尚未安装的 Perl 库,或针对相关服务的诊断程序。例如需要 varnishstat。memcached 插件也类似。

但回到上面的问题...幸运的是,我曾经做过一点 Perl,并有根据地猜测该插件需要 perl 模块 LWP::Useragent。如果您打开抛出错误的插件,它可能会为您提供一些有关其要求的线索。您可以从命令行运行其中一些,以查看会发生什么/它们是否有效。

继续上面的例子,这可能会消除上面显示的 nginx_request 错误:

apt-get install libwww-perl

或者可能不会...

启用数据源

以 nginx 为例,如果您查看插件的 src,就会发现它从中收集数据,http://localhost/nginx-status因此您需要启用它。或者,如前所述,varnishstat这是一个例子。

或者按原样继续下去可能是正确的。

提供环境变量

此外,你可能需要为插件提供一些环境/配置变量。这可以通过编辑/etc/munin/plugin-conf.d/munin-node和添加所需的内容来完成。例如:

[mysql_innodb]
env.warning 0
env.critical 0

您也可以通过创建具有此类内容的新文件来执行此操作,因为它将处理该目录中的任何文件;但我没有尝试过。

要测试插件是否真正读取环境变量,有一个工具munin-run。只需在插件目录中命名文件即可使用它

% munin-run nginx_request
request.value 10275
% 

这些带有悬挂下划线文件名的插件怎么样?

目录中的很多插件都/usr/share/munin/plugins/包含无法正常工作的插件,如果您只是符号链接到它们的话。这些插件的最后一个字符以下划线结尾。例如:memcached_diskstat_if_。它们保留了悬挂的下划线,因此可以使用不同的参数重复使用它们。

要使用它们,请从符号链接开始/etc/munin/plugins/,但要附加一个参数,该参数 (a) 可以是关键字,例如memcached_bytes,或 (b) 可以引用参数,例如:if_eth0。了解其期望的最佳方法是阅读插件的内容。一些构造更好的插件甚至可能对您有所帮助。例如:/usr/share/munin/plugins/mysql_ suggest输出合适后缀的列表。

lrwxrwxrwx 1 root root 36 Mar 10 11:45 mysql_bytes -> /usr/share/munin/plugins/mysql_bytes
lrwxrwxrwx 1 root root 31 Mar 10 11:47 mysql_commands -> /usr/share/munin/plugins/mysql_
lrwxrwxrwx 1 root root 31 Mar 10 11:45 mysql_connections -> /usr/share/munin/plugins/mysql_
lrwxrwxrwx 1 root root 31 Mar 10 11:46 mysql_qcache -> /usr/share/munin/plugins/mysql_

配置远程访问

主机轮询节点以获取数据,因此,如果您使用远程主机,请不要忘记通过/etc/munin/munin-node.conf节点授予其访问权限。

配置主服务器

您可以在同一台主机上运行主服务器和节点。或者,您可以将主服务器放在其他地方 - 如果您正在观察一台繁忙的生产服务器,则建议这样做,因为每隔几分钟生成一次图表是一项相当繁重的工作。

使用标准文档并将节点添加到其中,没有任何问题/etc/munin/munin.conf

要了解轮询的进展情况,请密切关注/var/log/munin/munin-update.log。当首次看到来自新插件的数据时,您应该会得到一堆记录新 rrd 数据库构建的日志条目:

2014/03/10 12:45:15 [INFO] creating rrd-file for mysql_innodb->free: '/var/lib/munin/caradvice.com.au/syd.caradvice.com.au-mysql_innodb-free-g.rrd'

这也是查找与传入数据相关的警告和错误的地方。

最后一个问题是,默认情况下,节点数据收集每两分钟才进行一次,远程轮询每 5 分钟才进行一次。此外,将数据转换成图表可能需要 60 秒,最后第一个条目可能是一个不可见的数据点。因此,除非您调整周期时间,否则从正确配置插件到数据出现在图表上可能需要 15 分钟的时间。

我精疲力竭了。如果这不能帮助别人,至少能让我记住我到底做了什么。

最终的结果是精彩的信息色情......

在此处输入图片描述

答案2

我可以删除一些图表并添加其他图表吗?一切都解决了吗?

从您的配置中删除一个插件munin-node,那么该插件的图表也将被删除。

我如何添加插件来显示 nginx、mysql 和 memcache 等的运行情况。

您可以在 上安装这些产品的 munin 插件munin-node

相关内容