我已经构建了我的第一个 Munin 插件来为我们提供 Redis 队列的大小,但由于某种原因它不会报告。节点上的所有其他插件,包括其他以 Redis 为中心的插件都可以正常工作。
这是插件代码:
#!/bin/sh
case $1 in
config)
cat <<'EOM'
multigraph redis_queue_size
graph_title Redis Queue Size
graph_info The size of Redis queue
graph_category redis
graph_vlabel Messages
redisqueue.label redisqueue
redisqueue.type GAUGE
redisqueue.min 0
EOM
exit 0;;
esac
queuelength=`redis-cli llen mykeyname`
printf "redisqueue.value "
echo $queuelength
该插件位于 /usr/share/munin/plugins/redis_queue_
该插件符号链接到 /etc/munin/plugins/redis_queue_
我确保重新启动服务
$ sudo service munin-node force-reload
如果我运行 sudo munin-run redis_queue_ 我得到正确的输出:
redisqueue.value 1567595
如果我运行 munin-node-config 我得到以下信息:
redis_queue_ | yes |
如果我使用 telnet 从主服务器连接到实例以获取插件,我会得到:
$ telnet 10.101.21.56 4949
Trying 10.101.21.56...
Connected to 10.101.21.56.
Escape character is '^]'.
# munin node at redis01.example.com
fetch redis_queue_
redisqueue.value 1035336
主人为它显示一个空图,但“最后更新”时间没有增加。我最初对插件的配置略有不同(它没有产生好的输出)所以所有的值都是-nan。一旦我修复了输出,我希望插件开始工作,但所有的努力都失败了。
一切看起来都正确,但图表中仍然没有值。
编辑:穆宁 v1.4.6