feat: enhance Blackbox Exporter configuration with domain blacklist and update Grafana alerting rules

This commit is contained in:
2025-06-01 11:40:04 +02:00
parent 9cfd7f5052
commit 4969520222
5 changed files with 24 additions and 21 deletions

View File

@@ -5,13 +5,32 @@ with lib;
let
hostname = config.networking.hostName;
cfg = config.services.blackbox-exporter;
nginxVHosts = config.services.nginx.virtualHosts or {};
allDomains = lib.attrNames nginxVHosts;
httpsDomains = lib.map (d: "https://${d}") allDomains;
filteredDomains = builtins.filter (d: !builtins.elem d cfg.blacklistDomains) allDomains;
httpsDomains = lib.map (d: "https://${d}") filteredDomains;
domainsString = builtins.concatStringsSep "\n "
(map (d: "\"${d}\",") httpsDomains);
in {
options.services.blackbox-exporter.blacklistDomains = mkOption {
type = types.listOf types.str;
default = [];
description = "List of domains to monitor with Blackbox Exporter";
};
config = {
services.blackbox-exporter = {
blacklistDomains = [
"autoconfig.cloonar.com"
"cloonar.dev"
"loki.cloonar.com"
"stage.korean-skin.care"
"victoria-server.cloonar.com"
"updns.cloonar.com"
"feeds.jordanrannells.com"
];
};
# Systemd service for Blackbox Exporter
systemd.services.blackbox-exporter = {
description = "Blackbox Exporter";

View File

@@ -1,9 +1,11 @@
{ lib, pkgs, config, ... }:
let
cfg = config.services.blackbox-exporter;
nginxVHosts = config.services.nginx.virtualHosts or {};
allDomains = lib.attrNames nginxVHosts;
httpsDomains = lib.map (d: "https://${d}") allDomains;
filteredDomains = builtins.filter (d: !builtins.elem d cfg.blacklistDomains) allDomains;
httpsDomains = lib.map (d: "https://${d}") filteredDomains;
websiteAlertRules = lib.map (target:
let
domain = lib.replaceStrings ["://" "." "-" "/" ] ["-" "-" "_" "_"] target + "-down-alert";

View File

@@ -67,9 +67,7 @@ in
use_pkce = true;
};
"auth.anonymous".enabled = true;
"auth.anonymous".org_name = "Cloonar e.U.";
"auth.anonymous".org_role = "Viewer";
"auth.anonymous".enabled = false;
server = {
root_url = "https://grafana.cloonar.com";