我有一台 Munin 服务器(2.72)可以很好地监控很多服务器。
我有一个 haproxy 服务器,其中 munin-node (2.0.73)对于每个插件都运行良好,除了 haproxy_* (haproxy_sessions_frontend、haproxy_bytes_frontend、haproxy_rate_frontend 等),它给我 NaN 值。
当我在 haproxy 服务器上本地测试插件时,我得到相关值:
# Skipping systemd properties simulation due to required systemd version (999)
# Processing plugin configuration from /etc/munin/plugin-conf.d/00-default
# Processing plugin configuration from /etc/munin/plugin-conf.d/haproxy
# Processing plugin configuration from /etc/munin/plugin-conf.d/munin-node
# Setting /rgid/ruid/ to /982/0/
# Setting /egid/euid/ to /982 982/0/
# Setting up environment
# Environment frontend = https_front haproxy-monitoring fe-letsencrypt
# Environment url = http://127.0.0.1:8080/haproxy_stats;csv;norefresh
# Environment backend = app-main haproxy-monitoring letsencrypt-backend
# About to run '/etc/munin/plugins/haproxy_sessions_frontend'
scurea490f35148af7011c03b86177948440.value 3
smaxea490f35148af7011c03b86177948440.value 25
scur4dc7a8e588e9bb787fe6e39c1c96957a.value 1
smax4dc7a8e588e9bb787fe6e39c1c96957a.value 2
scura92191189150289a82c2c4464351178c.value 0
smaxa92191189150289a82c2c4464351178c.value 5
当我从 Munin 服务器远程连接时,我得到的是:
bash-4.4$ /usr/share/munin/munin-update --debug --nofork --host servxxx.domain.tld --service haproxy_session_frontend
2023/10/05 17:12:57 [DEBUG] Creating new lock file /var/run/munin/munin-update.lock
2023/10/05 17:12:57 [DEBUG] Creating lock : /var/run/munin/munin-update.lock succeeded
2023/10/05 17:12:57 [INFO]: Starting munin-update
2023/10/05 17:12:58 [DEBUG] Creating new lock file /var/run/munin/munin-datafile.lock
2023/10/05 17:12:58 [DEBUG] Creating lock : /var/run/munin/munin-datafile.lock succeeded
2023/10/05 17:12:58 [DEBUG] Writing state to /var/lib/munin/datafile.storable
2023/10/05 17:12:58 [DEBUG] about to write '/var/lib/munin/datafile.storable'
2023/10/05 17:12:58 [INFO]: Munin-update finished (1.47 sec)
但我的 rrd 文件充满了 NaN,并且在 munin-update.log 中,每次 Munin 尝试从节点更新数据时我都会收到此警告:
2023/10/05 17:15:13 [WARNING] 6 lines had errors while 0 lines were correct (100.00%) in data from 'fetch haproxy_sessions_frontend' on haproxy.captcha/x.x.x.x:4949
我已经尝试了此页面https://guide.munin-monitoring.org/en/latest/tutorial/troubleshooting.html中的几乎所有内容,但我一无所知。相同的插件在另一个 haproxy 服务器上运行良好。主要区别是另一台服务器运行的是 Rocky Linux 8,而有问题的服务器运行的是 Rocky Linux 9
我该怎么做才能让这个插件运行?
我在 /var/log/messages 中找到了罪魁祸首
一些调用被 SELinux 拒绝。添加下面建议的规则后,一切都按预期进行。
日志摘录:
server setroubleshoot[681531]:SELinux 正在阻止 /usr/bin/curl 在 tcp_socket 端口 8080 上进行 name_connect 访问。
***** 插件包罗万象(100. 置信度)建议 **************************
如果您认为默认情况下应该允许curl在端口8080 tcp_socket上进行name_connect访问。那么您应该将此报告为错误。您可以生成本地策略模块以允许此访问。现在请执行以下命令来允许此访问: