求助:在Thruk中显示Nagios XI主机与服务的配置问题
Thruk连接Nagios XI不显示条目问题解决
一、当前statusjson.cgi后端配置修正
- 修正URL路径:Nagios XI的
statusjson.cgi默认路径为https://<你的XI域名>/nagiosxi/cgi-bin/statusjson.cgi,而非配置中的/nagios/,需调整路径至正确的XI CGI目录。 - 确认用户权限:确保
thruk_user在Nagios XI中被分配Nagios XI Super User角色,且在Admin > Manage Users的CGI Access选项中勾选所有必要权限(含statusjson.cgi访问权限)。 - 测试CGI可用性:直接在浏览器访问调整后的
statusjson.cgiURL,输入用户名密码,验证是否返回JSON格式的监控数据。若返回403/404,说明路径或权限配置有误。 - 完善Thruk后端配置:添加
auth_method basic明确认证方式,Nagios XI默认使用Basic Auth,修改后的配置如下:
backendtype nagios name Nagios XI url https://<你的XI域名>/nagiosxi/cgi-bin/statusjson.cgi username thruk_user password <你的密码> verify_ssl 0 auth_method basic
修改后重启Thruk服务:systemctl restart thruk
二、Livestatus安装方法(补充)
若后续考虑使用Livestatus,适配RHEL9的安装步骤如下:
- 安装编译依赖:
dnf install gcc make glibc-devel -y
- 获取Livestatus源码:可从Nagios XI自带的源码目录(通常为
/usr/local/nagios/src/)找到Livestatus模块,或从Nagios社区资源获取。 - 编译安装:
cd /usr/local/nagios/src/livestatus ./configure --prefix=/usr/local/nagios make && make install
- 配置Nagios Core加载Livestatus模块:编辑
/usr/local/nagios/etc/nagios.cfg,添加:
broker_module=/usr/local/nagios/bin/livestatus.o /usr/local/nagios/var/rw/live
- 创建socket目录并设置权限:
mkdir -p /usr/local/nagios/var/rw chown nagios:nagios /usr/local/nagios/var/rw chmod 770 /usr/local/nagios/var/rw
- 重启Nagios Core与Thruk服务,配置Thruk Livestatus后端:
backendtype livestatus name Nagios XI Livestatus socket /usr/local/nagios/var/rw/live
三、额外排查方向
- 查看Thruk日志:检查
/var/log/thruk/thruk.log,搜索后端连接相关错误(如认证失败、连接超时),定位具体问题。 - 验证SELinux设置:RHEL9默认开启SELinux,可能阻止Thruk访问Nagios XI资源,可临时执行
setenforce 0测试,若生效需配置SELinux规则允许访问。
内容的提问来源于stack exchange,提问作者Stéphane PEYNAUD
相关产品推荐
相关产品推荐

