答案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
。