Joh*_*Mee 6 munin ubuntu-12.04
为了密切关注我们的生产服务器发生了什么,我最近发现了Munin。安装很简单,但我在计算如何添加/删除图表时遇到了很多麻烦。
我发现一些文档建议我可以重新排序它们,但很少讨论如何管理插件配置。大部分插件文档讨论了如何创建插件;而不是使用它们。
这个问题非常基本:我如何使用庞大的插件库,以便我可以看到发生了什么,例如,nginx、mysql 和 memcache。
Joh*_*Mee 19
通过/etc/munin/plugins/
节点目录中的符号链接添加和删除图形。
要删除图形,您必须删除符号链接并重新启动节点:
rm /etc/munin/plugins/diskstats
service munin-node restart
Run Code Online (Sandbox Code Playgroud)
要添加图形,您必须在插件目录中将符号链接添加到可执行文件。例如:
ln -s /usr/share/munin/plugins/diskstats /etc/munin/plugins/diskstats
service munin-node restart
Run Code Online (Sandbox Code Playgroud)
当您重新启动 munin-node 时,它会立即运行,并且插件的任何问题都会出现在/var/log/munin/munin-node.log
. 如果一切顺利,您会看到每个周期都记录了一个 CONNECT;这记录了 master 连接以收集最新数据的事实。
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"
Run Code Online (Sandbox Code Playgroud)
但也可能是事情不顺利。运行插件时的错误也记录在此处,并且是使插件工作的关键线索。这里我们看到 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.
Run Code Online (Sandbox Code Playgroud)
插件是可执行程序——主要是用 Perl 编写的。/usr/share/munin/plugins/
(Ubuntu) 上安装了一个大集合。由于主要由用户贡献,它们的质量似乎差别很大,但所有这些都需要查询系统以获取所需的数据,然后将其排列为 munin 可以使用的格式。
它们中的大多数依赖于您可能已经或可能尚未安装的 Perl 库,或者用于感兴趣的服务的诊断程序。例如,varnish插件需要 varnishstat。类似的 memcached 插件。
但是回到上面的问题……幸运的是,我在我的时间里已经做了一点 Perl,并做出了一个有根据的猜测,该插件需要一个 perl 模块 LWP::Useragent。如果您打开抛出错误的插件,它可能会为您提供一些关于它的要求的线索。其中一些您可以从命令行运行以查看会发生什么/它们是否有效。
要继续上面的示例,这可能会消除上面显示的 nginx_request 错误:
apt-get install libwww-perl
Run Code Online (Sandbox Code Playgroud)
或者它可能不会...
举个例子,nginx,如果你看一下插件的 src,它会发现它从中收集了它的数据,http://localhost/nginx-status
所以你需要启用它。或者,如前所述varnishstat
是一个例子。
或者按原样走可能是正确的。
此外,您可能需要为插件提供一些环境/配置变量。这是通过编辑/etc/munin/plugin-conf.d/munin-node
和添加它需要的任何东西来完成的。例如:
[mysql_innodb]
env.warning 0
env.critical 0
Run Code Online (Sandbox Code Playgroud)
您也可以通过创建具有此类内容的新文件来实现此目的,因为它将处理该目录中的任何文件;但我没有尝试。
为了测试插件以使其实际读取环境变量,有一个工具munin-run
。只需在插件目录中命名文件即可使用它
% munin-run nginx_request
request.value 10275
%
Run Code Online (Sandbox Code Playgroud)
目录中相当多的插件/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_
Run Code Online (Sandbox Code Playgroud)
主节点轮询节点以获取数据,因此,如果您使用的是远程主/etc/munin/munin-node.conf
节点,请不要忘记通过节点授予它访问权限。
您可以在同一台主机上运行 master 和 node。或者您可以将 master 放在其他地方 - 如果您正在观看繁忙的生产服务器,这是可取的,因为每隔几分钟生成一次图表是一项相当多的工作。
使用标准文档并将节点添加到/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'
Run Code Online (Sandbox Code Playgroud)
这也是查找与传入数据相关的警告和错误的地方。
最后一个问题是,默认情况下,节点数据收集每两分钟发生一次,而远程轮询每 5 分钟发生一次。此外,将数据转换为图形可能需要 60 秒,最后第一个条目可能是不可见的单个数据点。因此,除非您摆弄周期时间,否则在正确配置插件和数据出现在图表上之间可能需要 15 分钟。
我没劲了 如果这对其他人没有帮助,它至少会帮助我记住我到底做了什么。
最终的结果是很棒的信息色情...
我可以删除一些图表并添加其他图表吗?这一切都修复了吗?
从您的配置中删除插件munin-node
,该插件的图表将被删除。
我如何添加插件来显示发生了什么,例如 nginx、mysql 和 memcache。
您可以在munin-node
.
归档时间: |
|
查看次数: |
7212 次 |
最近记录: |