我第一次按照官方文档在 CentOS7.2 上设置 sensu 一次又一次,但我无法让它工作:
我似乎无法连接到 API。Uchiwa 给出错误:
ALERT
Datacenter site1 returned:
Connection error. Is the Sensu API running?`
我已尝试过:curl -I http://localhost:4567/clients
...但我没有得到回应。
这是 /var/log/sensu/sensu-api.log http://pastebin.com/wHEHE0bH
我一直在创建一个脚本以使设置可重复。请参阅下面的脚本,其中显示了我的配置:http://pastebin.com/QEt5Msku 如果您在 CentOS7 上运行该脚本,它会重复此问题。
使固定:
问题在下面的答案中。在按照非官方指南成功在新的虚拟机上安装 sensu 后,我比较了两个设置步骤,在新的虚拟机上构建了几个版本后,一点一点地交换了步骤,我发现用非官方指南中的 repo 替换 repo 可以解决我的问题(repo 适用于 CentOS6,但它可以在 7 上运行,它只安装非当前版本 0.20.3)。
echo '[sensu]
name=sensu-main
baseurl=http://repos.sensuapp.org/yum/el/6/x86_64/
gpgcheck=0
enabled=1' > /etc/yum.repos.d/sensu.repo
答案1
问题是 sensu 0.23 将 localhost 解析为 ipv6 地址,但 redis 没有监听 ipv6 地址。解决办法是"host": "localhost"
改为"host": "127.0.0.1"
。Sensus git 页面
供您参考,您也应该查看 sesu-server 日志并将其发布到这里。
答案2
如果你想了解更多信息,可以查看Sensu 问题与此错误有关。对我来说,问题是我的操作系统上的默认主机解析与从存储库安装的默认 Redis 配置之间存在冲突。我的解决方案是:
更新 /etc/hosts 以将 localhost 解析为 127.0.0.1 而不是 ::1。
或者
更新 redis.conf 以除了 127.0.0.1 之外还绑定到 ::1。
如果您正在运行支持 IPv6 的主机,后一种选择可能是最佳选择。希望这对您有所帮助!