diff --git a/modules/services/alertmanager/config.nix b/modules/services/alertmanager/config.nix index fcf2581..1c031fa 100644 --- a/modules/services/alertmanager/config.nix +++ b/modules/services/alertmanager/config.nix @@ -19,6 +19,12 @@ to = "server@buehler.rocks"; } ]; + webhook_configs = [ + { + url = "http://localhost:4050/services/hooks/YWxlcnRtYW5hZ2VyX3NlcnZpY2U"; + send_resolved = true; + } + ]; } ]; } diff --git a/modules/services/alertmanager/default.nix b/modules/services/alertmanager/default.nix index df65e2e..fd94e4e 100644 --- a/modules/services/alertmanager/default.nix +++ b/modules/services/alertmanager/default.nix @@ -85,6 +85,49 @@ in # for mail delivery services.postfix.enable = true; + services.go-neb.config.services = [ + { + ID = "alertmanager_service"; + Type = "alertmanager"; + UserId = config.my.services.matrix-bot.Username; + Config = { + # url contains "alertmanager_service" encoded as base64 + webhook_url = "http://localhost:4050/services/hooks/YWxlcnRtYW5hZ2VyX3NlcnZpY2U"; + rooms = { + "${config.my.services.matrix-bot.RoomID}" = { + #bots:nixos.org + text_template = '' + {{range .Alerts -}} [{{ .Status }}] {{index .Labels "alertname" }}: {{index .Annotations "description"}} {{ end -}} + ''; + # $$severity otherwise envsubst replaces $severity with an empty string + html_template = '' + {{range .Alerts -}} + {{ $$severity := index .Labels "severity" }} + {{ if eq .Status "firing" }} + {{ if eq $$severity "critical"}} + [FIRING - CRITICAL] + {{ else if eq $$severity "warning"}} + [FIRING - WARNING] + {{ else }} + [FIRING - {{ $$severity }}] + {{ end }} + {{ else }} + [RESOLVED] + {{ end }} + {{ index .Labels "alertname"}}: {{ index .Annotations "summary"}} + ( + 📈 Grafana, + 🔥 Prometheus, + 🔕 Silence + )
+ {{end -}}''; + msg_type = "m.text"; # Must be either `m.text` or `m.notice` + }; + }; + }; + } + ]; + my.services.nginx.virtualHosts = [ { subdomain = "alerts";