我正在尝试将一个节点添加到现有的 munin master(我没有设置它,但它似乎运行良好,因为它显示了 8 个现有节点的图表),但遇到了一些问题。以下是我遵循的步骤:
掌握
已将节点添加到/etc/munin/munin.conf
[server.example.org]
address private.server.example.org
master 的 html 目录是(与 apache 配置匹配):
htmldir /opt/munin
该目录包含以下文件和文件夹:
ls -lh /opt/munin/
drwxr-xr-x 20 munin munin 4.0K 2011-11-07 16:15 example.org <= FOLDER NAMED AFTER OUR DOMAIN
-rw-r--r-- 1 munin munin 2.5K 2010-08-03 14:11 definitions.html
-rw-r--r-- 1 munin munin 3.0K 2010-08-03 14:11 favicon.ico
-rw-r--r-- 1 munin munin 15K 2011-11-07 16:21 index.html <= MAIN MUNIN PAGE
-rw-r--r-- 1 munin munin 1.8K 2010-08-03 14:11 logo-h.png
-rw-r--r-- 1 munin munin 473 2010-08-03 14:11 logo.png
-rw-r--r-- 1 munin munin 5.6K 2010-11-03 14:07 style.css
页脚索引.html表示该文件是由 munin 动态生成的,所以我知道我不必触碰该文件。
This page was generated by <a href='http://munin-monitoring.org/'>Munin</a> version 1.4.4 at 2011-11-07 16:21:30+0000 (UTC)
域目录包含所有节点的文件夹。我最终为新节点创建了一个文件夹,希望这会有所帮助,但并没有什么区别
mkdir /opt/munin/example.org/server.example.org
chown munin:munin -R /opt/munin/example.org/server.example.org
我杀死了 munin-cron 并重新启动了它,但还是没有什么区别。
$ sudo su munin munin-cron start
$ sudo ps aux | grep munin-cron
munin 26566 0.0 0.2 4092 584 ? Ss 16:35 0:00 /bin/sh -c if [ -x /usr/bin/munin-cron ]; then /usr/bin/munin-cron; fi
munin 26567 0.0 0.2 4092 576 ? S 16:35 0:00 /bin/sh /usr/bin/munin-cron
Munin 节点
已安装 munin-node 包
apt-get install munin-node
修改了/etc/munin/munin-node.conf文件允许来自 munin master 的访问
host *
allow ^A\.B\.C\.D$ # master IP address
port 4949
重新启动 munin 节点
service munin-node start
如果我在新节点上运行 tcpdump,我可以看到一些数据正在与主节点交换,所以我相信此时问题在于配置主节点。
您知道我遇到了什么问题或该如何进一步排除故障吗?
其他故障排除
根据建议,我检查了日志
$ grep server.example.org /var/log/munin/munin-update.log
2011/11/08 08:40:03 [WARNING] Config node server.example.org listed no services for server.example.org. Please see http://munin-monitoring.org/wiki/FAQ_no_graphs for further information.
2011/11/08 09:10:02 [INFO] Reaping Munin::Master::UpdateWorker<example.org;server.example.org>. Exit value/signal: 0/0
警告将我带到此页面http://munin-monitoring.org/wiki/FAQ_no_graphs。我按照给出的建议一步一步进行操作。虽然符号链接似乎已正确创建,但我确实运行了命令munin-node-configure --shell | sh -x
,相信该命令已解决问题。上述页面还建议更改设置host_name
,我照做了(尽管我不认为这有帮助,因为其他工作节点没有配置它)。
当我到达时,telnet 故障排除已经成功
$ telnet private.server.example.org 4949
Trying A.B.C.D...
Connected to private.server.example.org.
Escape character is '^]'.
# munin node at server.example.org
> nodes
server.example.org
.
> list server.example.org
cpu df df_inode entropy forks fw_conntrack fw_forwarded_local fw_packets if_err_eth0 if_err_eth1 if_eth0 if_eth1 interrupts iostat iostat_ios ip_A.B.C.D irqstats load memory open_files open_inodes postfix_mailqueue postfix_mailvolume proc_pri processes swap threads uptime users vmstat
> fetch df
_dev_sda1.value 23.1295909196156
_dev.value 1.2890625
_dev_shm.value 0
_var_run.value 0.00782368542525642
_var_lock.value 0
_lib_init_rw.value 0
答案1
我看不出你的设置有什么明显问题。我建议两点;
阅读 munin-master 上的日志。
/var/log/munin/munin-update.log
这是开始的地方。如果您有确认更新成功的条目,并且您获得了 rrd 文件/var/lib/munin/
- 继续munin-graph.log
并munin-html.log
验证主节点是否能够连接到 munin-node 的地址。请使用
netcat
或类似命令进行测试:nc private.server.example.org 4949
。预期输出应为:# munin node at hostname
。可能的错误是数据包被防火墙丢弃(而 nc 将挂起在connect()
,如果使用 strace 则可见),或无法解析名称(而 netcat 输出nc: getaddrinfo: Name or service not known
)。
如果在尝试上述操作后您仍找不到任何内容,请从主机粘贴完整的 munin.conf(如果需要,请使用数字匿名化数字 IP 地址,并使用一些虚假文本匿名化主机名)。
不太罕见的错误;cron-job 可能在某个时候由 root 调用,其中某些文件具有 root 所有权,并且无法由 munin 用户更新,而 munin 用户通常需要对 /var/lib/munin 和 html 目录中的所有文件的写权限。
答案2
嘿,我遇到了同样的问题。
检查主机上的 /etc/hosts 文件,并仔细检查第一个主机名是否与您在服务器上的 munin conf 文件中指定的主机名相同。
直到我们发现这一点,这才彻底破坏了我们的设置。
我们的 /etc/host 设置为:1.2.3.4 hostname hostname.domain
Munin conf 设置为 hostname.domain。服务器认为它被命名为 hostname 而不是 hostname.domain。
答案3
有时使用 use_node_name 覆盖节点提供的主机名会有所帮助:
[server.example.org]
address private.server.example.org
use_node_name yes