【问题标题】:Zabbix - Web Service timeoutZabbix - Web 服务超时
【发布时间】:2021-10-05 18:13:07
【问题描述】:

我正在尝试创建计划报告,但我的 zabbix Web 服务无法正常工作。我总是收到这条消息:

Cannot connect to web service: timeout was reached

我在带有 docker 的 Ubuntu 服务器上使用 Zabbix Composed 安装。以下是我现在正在使用的图片:

zabbix\zabbix-web-service:ubuntu-latest
zabbix\zabbix-web-nginx-mysql:ubuntu-latest
zabbix\zabbix-server-mysql:ubuntu-latest
zabbix\zabbix-agent:ubuntu-latest
mysql:8.0
busybox:latest

我非常绝望,我将整个解决方案升级到 5.4 版的 :latest 图片,并希望它能解决我的问题 - 没有帮助。

我使用了 wireshark 检查 TCP 流量但没有帮助 - 我的 zabbix web 服务不会响应我的 zabbix 服务器(1 分钟超时)。

由于数据量大,我尝试从空仪表板生成报告 - 没有帮助。

我尝试将调试日志设置为 5 级并通过 docker 读取日志 - 没有帮助。

我发现只有在我重新启动我的 zabbix web service docker 容器时才会生成计划报告,并且在容器启动后立即生成报告。这是我能够生成报告的唯一方法。容器启动后一点点,我会再次收到错误

【问题讨论】:

    标签: docker zabbix


    【解决方案1】:

    我也在docker中部署zabbix,可以正常使用定时报告。

    我在 docker 中部署了以下容器:

    • mysql:5.7
    • zabbix/zabbix-server-mysql:alpine-latest
    • zabbix/zabbix-web-nginx-mysql:alpine-latest
    • zabbix/zabbix-web-service:alpine-latest

    zabbix-server-mysql

    docker run --name zabbix-server -d --restart always \
        --link mysql:zabbix-mysql \
    // ...
        -e ZBX_STARTREPORTWRITERS="2" \
        -e ZBX_WEBSERVICEURL="http://docker:10053/report" \
        -p 10051:10051 \
        -d zabbix/zabbix-server-mysql:alpine-latest
    

    zabbix-web

    docker run --name zabbix-web -d --restart always \
      --link mysql:zabbix-mysql \
      --link zabbix-server:zabbix-server \
    // ...
      -p 80:8080 \
      zabbix/zabbix-web-nginx-mysql:alpine-latest
    

    zabbix-web-服务

    docker run --name zabbix-web-service -d --restart always \
        -e ZBX_ALLOWEDIP="127.0.0.1,192.168.1.0/24,172.17.0.0/16" \
        -e ZBX_TLSACCEPT=unencrypted \
        -e ZBX_DEBUGLEVEL=5 \
        -v zabbix_agent2_enc:/var/lib/zabbix/enc \
        --cap-add=SYS_ADMIN \
        -p 10053:10053 \
        zabbix/zabbix-web-service:alpine-latest
    

    这里需要注意设置ZBX_ALLOWEDIP

    • 容器的ip地址池为172.17.0.4/16
    • docker主机的ip地址为192.168.1.2/24

    配置 Zabbix 前端

    我的zabbix web interface url是http://docker/zabbix.php,我将Frontend URL设置为http://docker。 不要按照文档中的图片,将Frontend URL设置为http://docker/zabbix

    您可以尝试访问http://docker/zabbix.php?action=dashboard.print&dashboardid=1,它应该可以正确显示仪表板。

    如果按照文档设置Frontend URLhttp://docker/zabbix,则访问http://docker/zabbix/zabbix.php?action=dashboard.print&dashboardid=1,得到File not found.

    【讨论】:

    • 我试着按照你写的设置我的网络服务和我的 zabbix 服务器。毫无疑问,它有所帮助,因为第二天我收到了报告。无论如何,当我单击计划报告中的测试按钮时,它再次失败。今天我收到关于我的 Zabbix 服务器上 CPU 和磁盘 IO 使用率高的警报。我发现这个问题是我的网络服务耗尽了我服务器上的资源。当我停止 Web 服务容器时,一切都恢复正常。我认为至少在 docker 解决方案中,这项服务存在一些实际问题。
    猜你喜欢
    • 1970-01-01
    • 2011-04-24
    • 2014-02-25
    • 1970-01-01
    • 1970-01-01
    • 2019-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多