首页 > 解决方案 > 如何使 Nixos 上的 Zabbix 在本地网络中可用

问题描述

我的笔记本电脑和我的 nixos-server (hostname= nixos) 都连接到我的路由器 ( fritz.box)。我可以通过 ping ( ping nixos.fritz.box) 和 ssh ( ssh username@nixos.fritz.box) 访问 rooter。

组网图

在服务器上,我已将 nixos 配置为同时运行zabbix-serverzabbix-web

  services.zabbixServer.enable = true;
  services.zabbixWeb = {
    enable = true;
    virtualHost = {
      hostName = "zabbix.fritz.box"; # doesn't work
      adminAddr = "webmaster@localhost";
    };
  };

这似乎工作正常。在我看到的服务器上:

systemctl list-units | grep zabbix
  phpfpm-zabbix.service   loaded active     running      PHP FastCGI Process Manager service for pool zabbix
  zabbix-server.service   loaded active     running      Zabbix Server 

不幸的是,我无法通过网络浏览器从我的计算机访问 zabbix zabbix.fritz.box

我曾希望只是设置services.zabbixWeb.virtualHost.hostName就足够了。我尝试将其设置为zabbix.localhost并从服务器本身访问它。那工作得很好。

在 nixos 中 zabbix-web有很多选择,但是我对网络不太了解,所以不知道如何解决这个问题。我没有在 nixos 上找到任何关于 zabbix 的文档。

但我不知道如何zabbix-web在本地网络中使用它。有人可以帮我吗?

编辑:

网络统计-an | grep LISTEN 给了我这个:

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN     
tcp6       0      0 :::80                   :::*                    LISTEN     
tcp6       0      0 :::22                   :::*                    LISTEN     
tcp6       0      0 ::1:5432                :::*                    LISTEN     
unix  2      [ ACC ]     STREAM     LISTENING     60682    /run/zabbix/zabbix_server_alerter.sock
unix  2      [ ACC ]     STREAM     LISTENING     60690    /run/zabbix/zabbix_server_preprocessing.sock
unix  2      [ ACC ]     STREAM     LISTENING     60693    /run/zabbix/zabbix_server_lld.sock
unix  2      [ ACC ]     STREAM     LISTENING     114750   /run/phpfpm/zabbix.sock
unix  2      [ ACC ]     SEQPACKET  LISTENING     37697    /run/udev/control
unix  2      [ ACC ]     STREAM     LISTENING     41031    /var/run/nscd/socket
unix  2      [ ACC ]     STREAM     LISTENING     44221773 /run/user/1001/systemd/private
unix  2      [ ACC ]     STREAM     LISTENING     22618    /run/user/1000/systemd/private
unix  2      [ ACC ]     STREAM     LISTENING     22624    /run/user/1000/bus
unix  2      [ ACC ]     STREAM     LISTENING     12900    /run/systemd/private
unix  2      [ ACC ]     STREAM     LISTENING     12904    /run/systemd/userdb/io.systemd.DynamicUser
unix  2      [ ACC ]     SEQPACKET  LISTENING     12914    /run/systemd/coredump
unix  2      [ ACC ]     STREAM     LISTENING     36216    /var/run/dhcpcd.sock
unix  2      [ ACC ]     STREAM     LISTENING     36218    /var/run/dhcpcd.unpriv.sock
unix  2      [ ACC ]     STREAM     LISTENING     12923    /run/systemd/journal/stdout
unix  2      [ ACC ]     STREAM     LISTENING     44238740 /run/httpd/cgisock.25951
unix  2      [ ACC ]     STREAM     LISTENING     44199357 /run/user/1001/bus
unix  2      [ ACC ]     STREAM     LISTENING     12229    /run/dbus/system_bus_socket
unix  2      [ ACC ]     STREAM     LISTENING     59856    /run/postgresql/.s.PGSQL.5432
unix  2      [ ACC ]     STREAM     LISTENING     12233    /nix/var/nix/daemon-socket/socket
unix  2      [ ACC ]     STREAM     LISTENING     13822    /run/systemd/journal/io.systemd.journal

标签: serverzabbixnixos

解决方案


正如@IronBishop 建议的那样,我没有打开 TCP 端口。在 nixos 上默认激活防火墙。

服务器上的以下行修复了问题,zabbix 可在nixos.fritz.box

networking.firewall.allowedTCPPorts = [ 80 443 ];

推荐阅读