在 NixOS 上安装 Zabbix 服务器
Install Zabbix Server on NixOS
我有什么
我有一台服务器(raspberry pi 通过以太网连接到 fritzbox-router),上面安装了新的 nixos。我可以通过 ssh
(ssh admin@nixos.fritz.box
) 连接到它。
我已经有一些使用 nixos 的经验,但不多。
我想要的
我希望它 运行 一个 zabbix 服务器 并连接 一个网络界面 连接到 (例如在 nixos.fritz.box/zabbix
,但我真的不在乎在哪里)。
我试过的
我发现https://github.com/NixOS/nixpkgs
上有多个zabbix的包:
- pkgs/servers/monitoring/zabbix 上用于 zabbix-server、-web、-agent 和 -proxy 的软件包。
- nixos/modules/services/monitoring 上用于 zabbix-server、-agent 和 -proxy 的模块。
另外 nix search zabbix
给了我关于 zabbix-cli
和 zabbixctl
的提示,我相信它们用于管理现有的 zabbix 安装,因此对我的问题没有帮助。
我在options for configuration.nix中查了zabbix,发现了很多。
最有前途的是 services.zabbixServer.enable
。我在我的配置中将其设置为 true
并重建了它。这似乎奏效了:
systemctl status zabbix-server.service
● zabbix-server.service - Zabbix Server
Loaded: loaded (/nix/store/dxm7imx0ryfxdyqq5bj42klprycnpzna-unit-zabbix-server.service/zabbix-server.service; enab>
Active: active (running) since Sat 2020-10-31 17:45:59 UTC; 17h ago
Process: 14883 ExecStartPre=/nix/store/1py4ma02cnarrnx2yhz1gnjgpv4m9v06-unit-script-zabbix-server-pre-start/bin/zab>
Main PID: 14896 (zabbix_server)
IP: 41.4K in, 62.1K out
Tasks: 38 (limit: 4481)
Memory: 33.0M
...
sudo netstat -nap | grep zabbix
[sudo] password for admin:
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 14896/zabbix_server
...
但我仍然不知道如何连接到网络界面。
我尝试启用 zabbix-web(services.zabbixWeb.enable
为真)但是 运行 出错,我不知道如何解决它:
sudo nixos-rebuild switch
building Nix...
building the system configuration...
error: The option `services.zabbixWeb.virtualHost' is used but not defined.
我查看了以下手册中关于 zabbix 的提示,但没有找到任何关于 zabbix 的提示。:
- nix-manual
- nixpkgs-manual
- nixos-manual (which contains a lot of application-specific help, for example for nextcloud)
我的愿望
我想要一个最小的 configuration.nix
允许 运行 zabbix 服务器并使用浏览器连接到它的网络界面。
非常感谢
错误信息表示使用了services.zabbixWeb.virtualHost
但没有定义。对此的解决方案最有可能为该选项定义一个值。您可以在此处找到 services.zabbixWeb.virtualHost
的文档:
在该文件中,您会看到定义了许多其他选项,并且您可能还需要设置其中的许多选项。
感谢 David Grayson(我将他的回答标记为对他公平)我认为这是以 zabbix.localhost
身份登录的最小设置(使用 zabbix 默认凭据)。
services.zabbixServer.enable = true;
services.zabbixWeb = {
enable = true;
virtualHost = {
hostName = "zabbix.localhost";
adminAddr = "webmaster@localhost";
};
};
也很高兴在服务器上添加一个客户端:
# technically not needed on the server, but good for testing.
services.zabbixAgent = {
enable = true;
server = "localhost";
};
我有什么
我有一台服务器(raspberry pi 通过以太网连接到 fritzbox-router),上面安装了新的 nixos。我可以通过 ssh
(ssh admin@nixos.fritz.box
) 连接到它。
我已经有一些使用 nixos 的经验,但不多。
我想要的
我希望它 运行 一个 zabbix 服务器 并连接 一个网络界面 连接到 (例如在 nixos.fritz.box/zabbix
,但我真的不在乎在哪里)。
我试过的
我发现https://github.com/NixOS/nixpkgs
上有多个zabbix的包:
- pkgs/servers/monitoring/zabbix 上用于 zabbix-server、-web、-agent 和 -proxy 的软件包。
- nixos/modules/services/monitoring 上用于 zabbix-server、-agent 和 -proxy 的模块。
另外 nix search zabbix
给了我关于 zabbix-cli
和 zabbixctl
的提示,我相信它们用于管理现有的 zabbix 安装,因此对我的问题没有帮助。
我在options for configuration.nix中查了zabbix,发现了很多。
最有前途的是 services.zabbixServer.enable
。我在我的配置中将其设置为 true
并重建了它。这似乎奏效了:
systemctl status zabbix-server.service
● zabbix-server.service - Zabbix Server
Loaded: loaded (/nix/store/dxm7imx0ryfxdyqq5bj42klprycnpzna-unit-zabbix-server.service/zabbix-server.service; enab>
Active: active (running) since Sat 2020-10-31 17:45:59 UTC; 17h ago
Process: 14883 ExecStartPre=/nix/store/1py4ma02cnarrnx2yhz1gnjgpv4m9v06-unit-script-zabbix-server-pre-start/bin/zab>
Main PID: 14896 (zabbix_server)
IP: 41.4K in, 62.1K out
Tasks: 38 (limit: 4481)
Memory: 33.0M
...
sudo netstat -nap | grep zabbix
[sudo] password for admin:
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 14896/zabbix_server
...
但我仍然不知道如何连接到网络界面。
我尝试启用 zabbix-web(services.zabbixWeb.enable
为真)但是 运行 出错,我不知道如何解决它:
sudo nixos-rebuild switch
building Nix...
building the system configuration...
error: The option `services.zabbixWeb.virtualHost' is used but not defined.
我查看了以下手册中关于 zabbix 的提示,但没有找到任何关于 zabbix 的提示。:
- nix-manual
- nixpkgs-manual
- nixos-manual (which contains a lot of application-specific help, for example for nextcloud)
我的愿望
我想要一个最小的 configuration.nix
允许 运行 zabbix 服务器并使用浏览器连接到它的网络界面。
非常感谢
错误信息表示使用了services.zabbixWeb.virtualHost
但没有定义。对此的解决方案最有可能为该选项定义一个值。您可以在此处找到 services.zabbixWeb.virtualHost
的文档:
在该文件中,您会看到定义了许多其他选项,并且您可能还需要设置其中的许多选项。
感谢 David Grayson(我将他的回答标记为对他公平)我认为这是以 zabbix.localhost
身份登录的最小设置(使用 zabbix 默认凭据)。
services.zabbixServer.enable = true;
services.zabbixWeb = {
enable = true;
virtualHost = {
hostName = "zabbix.localhost";
adminAddr = "webmaster@localhost";
};
};
也很高兴在服务器上添加一个客户端:
# technically not needed on the server, but good for testing.
services.zabbixAgent = {
enable = true;
server = "localhost";
};