如何使 Zabbix on nixos 在本地网络中可用

How to make Zabbix on nixos available in local network

我的笔记本电脑和我的 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.fritz.box 的网络浏览器从我的计算机访问 zabbix。

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

many options for zabbix-web in nixos,但我对网络了解不多,所以不知道如何解决这个问题。 我没有在 nixos 上找到任何关于 zabbix 的文档。

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

编辑:

netstat -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

正如@IronBishop 所建议的,我没有打开 TCP 端口。 nixos 默认开启防火墙。

服务器上的以下行解决了问题,zabbix 在 nixos.fritz.box:

可用
networking.firewall.allowedTCPPorts = [ 80 443 ];