From c0efae7559d542575a40a3627e660679f5cb1c39 Mon Sep 17 00:00:00 2001 From: Jennifer Graul Date: Mon, 2 Dec 2024 17:33:32 +0100 Subject: [PATCH 1/4] nixos/librenms: add default php_memory_limit and use it in cronjobs --- nixos/modules/services/monitoring/librenms.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nixos/modules/services/monitoring/librenms.nix b/nixos/modules/services/monitoring/librenms.nix index b06dbe66fbde..5173efc6ae95 100644 --- a/nixos/modules/services/monitoring/librenms.nix +++ b/nixos/modules/services/monitoring/librenms.nix @@ -14,6 +14,7 @@ let log_errors = on post_max_size = 100M upload_max_filesize = 100M + memory_limit = ${toString cfg.settings.php_memory_limit}M date.timezone = "${config.time.timeZone}" ''; phpIni = pkgs.runCommand "php.ini" @@ -376,6 +377,9 @@ in # enable fast ping by default "ping_rrd_step" = 60; + # set default memory limit to 1G + "php_memory_limit" = lib.mkDefault 1024; + # one minute polling "rrd.step" = if cfg.enableOneMinutePolling then 60 else 300; "rrd.heartbeat" = if cfg.enableOneMinutePolling then 120 else 600; From c59a8279ae97372f08400657ce174fa155a79437 Mon Sep 17 00:00:00 2001 From: Jennifer Graul Date: Mon, 2 Dec 2024 17:49:05 +0100 Subject: [PATCH 2/4] nixos/librenms: add enableLocalBilling option --- .../modules/services/monitoring/librenms.nix | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/nixos/modules/services/monitoring/librenms.nix b/nixos/modules/services/monitoring/librenms.nix index 5173efc6ae95..d2f39e44f672 100644 --- a/nixos/modules/services/monitoring/librenms.nix +++ b/nixos/modules/services/monitoring/librenms.nix @@ -102,6 +102,16 @@ in ''; }; + enableLocalBilling = mkOption { + type = types.bool; + default = true; + description = '' + Enable billing Cron-Jobs on the local instance. Enabled by default, but you may disable it + on some nodes within a distributed poller setup. See [the docs](https://docs.librenms.org/Extensions/Distributed-Poller/#discovery) + for more informations about billing with distributed pollers. + ''; + }; + useDistributedPollers = mkOption { type = types.bool; default = false; @@ -147,6 +157,10 @@ in default = false; description = '' Enable distributed billing on this poller. + + Note: according to [the docs](https://docs.librenms.org/Extensions/Distributed-Poller/#discovery), + billing should only be calculated on a single node per poller group. You can disable billing on + some nodes with the `services.librenms.enableLocalBilling` option. ''; }; @@ -613,8 +627,6 @@ in "${if cfg.enableOneMinutePolling then "*" else "*/5"} * * * * ${cfg.user} ${env} ${package}/cronic ${package}/poller-wrapper.py ${toString cfg.pollerThreads}" "* * * * * ${cfg.user} ${env} ${package}/alerts.php >> /dev/null 2>&1" - "*/5 * * * * ${cfg.user} ${env} ${package}/poll-billing.php >> /dev/null 2>&1" - "01 * * * * ${cfg.user} ${env} ${package}/billing-calculate.php >> /dev/null 2>&1" "*/5 * * * * ${cfg.user} ${env} ${package}/check-services.php >> /dev/null 2>&1" # extra: fast ping @@ -625,6 +637,9 @@ in "19 0 * * * ${cfg.user} ${env} ${package}/daily.sh notifications >> /dev/null 2>&1" "19 0 * * * ${cfg.user} ${env} ${package}/daily.sh peeringdb >> /dev/null 2>&1" "19 0 * * * ${cfg.user} ${env} ${package}/daily.sh mac_oui >> /dev/null 2>&1" + ] ++ lib.optionals cfg.enableLocalBilling [ + "*/5 * * * * ${cfg.user} ${env} ${package}/poll-billing.php >> /dev/null 2>&1" + "01 * * * * ${cfg.user} ${env} ${package}/billing-calculate.php >> /dev/null 2>&1" ]; }; From 4bac8c5de59aab1ddb5f6482a59f6b3d0d517e0c Mon Sep 17 00:00:00 2001 From: Jennifer Graul Date: Mon, 2 Dec 2024 17:49:22 +0100 Subject: [PATCH 3/4] nixos/librenms: fix links in docs --- nixos/modules/services/monitoring/librenms.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nixos/modules/services/monitoring/librenms.nix b/nixos/modules/services/monitoring/librenms.nix index d2f39e44f672..b1130fb747c0 100644 --- a/nixos/modules/services/monitoring/librenms.nix +++ b/nixos/modules/services/monitoring/librenms.nix @@ -116,7 +116,7 @@ in type = types.bool; default = false; description = '' - Enables (distributed pollers)[https://docs.librenms.org/Extensions/Distributed-Poller/] + Enables [distributed pollers](https://docs.librenms.org/Extensions/Distributed-Poller/) for this LibreNMS instance. This will enable a local `rrdcached` and `memcached` server. To use this feature, make sure to configure your firewall that the distributed pollers @@ -129,7 +129,7 @@ in type = types.bool; default = false; description = '' - Configure this LibreNMS instance as a (distributed poller)[https://docs.librenms.org/Extensions/Distributed-Poller/]. + Configure this LibreNMS instance as a [distributed poller](https://docs.librenms.org/Extensions/Distributed-Poller/). This will disable all web features and just configure the poller features. Use the `mysql` database of your main LibreNMS instance in the database settings. ''; From 7e2f76a187ee9193d1fe2917b780adeab736370e Mon Sep 17 00:00:00 2001 From: Jennifer Graul Date: Mon, 2 Dec 2024 18:04:12 +0100 Subject: [PATCH 4/4] nixos/librenms: add netali to maintainers --- nixos/modules/services/monitoring/librenms.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/services/monitoring/librenms.nix b/nixos/modules/services/monitoring/librenms.nix index b1130fb747c0..eb3504f8c990 100644 --- a/nixos/modules/services/monitoring/librenms.nix +++ b/nixos/modules/services/monitoring/librenms.nix @@ -678,5 +678,5 @@ in }; - meta.maintainers = lib.teams.wdz.members; + meta.maintainers = with lib.maintainers; [ netali ] ++ lib.teams.wdz.members; }