微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在NixOS上安装Zabbix服务器

如何解决在NixOS上安装Zabbix服务器

我有什么

我有一个服务器(树莓派通过以太网连接到fritzBox-router),上面安装了新的nixos。我可以通过sshssh admin@nixos.fritz.Box)连接到它。 我已经有一些使用nixos的经验,但是经验不足。

我想要什么

我希望它在其上运行 zabbix服务器并连接具有 Web界面(例如,在nixos.fritz.Box/zabbix上进行连接),但是我不知道真的不在乎)。

我尝试过的

我发现https://github.com/NixOS/nixpkgs上有多个用于zabbix的软件包:

nix search zabbix还给了我zabbix-clizabbixctl提示,我相信在那里可以管理现有的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
...

但是我仍然不知道如何连接到Web界面。

我试图启用zabbix-web(services.zabbixWeb.enable为true),但遇到错误,并且我不知道如何解决它:

sudo nixos-rebuild switch
building Nix...
building the system configuration...
error: The option `services.zabbixWeb.virtualHost' is used but not defined.

我在以下手册中浏览了关于zabbix的提示,但是在那里没有找到关于zabbix的任何提示

我希望得到的东西

我希望有一个最小的configuration.nix,它允许运行zabbix服务器并使用浏览器连接到其Web界面。

非常感谢

解决方法

错误消息表明已使用services.zabbixWeb.virtualHost,但未定义。解决方案最有可能为该选项定义一个值。您可以在这里找到services.zabbixWeb.virtualHost的文档:

https://github.com/NixOS/nixpkgs/blob/be1c62932fc9889f91055f13311cc3789c197565/nixos/modules/services/web-apps/zabbix.nix#L115

在该文件中,您将看到定义了许多其他选项,并且可能还需要设置其中的许多选项。

,

感谢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";
  };

对于在服务器上具有客户端也很高兴:

  # technically not needed on the server,but good for testing.
  services.zabbixAgent = {
    enable = true;
    server = "localhost";
  };

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。