63 lines
1.6 KiB
Nix
63 lines
1.6 KiB
Nix
{
|
|
config,
|
|
pkgs,
|
|
...
|
|
}: let
|
|
alertmanagerEnv = config.sops.secrets."alertmanager/env".path;
|
|
in {
|
|
sops.secrets."alertmanager/env" = {
|
|
sopsFile = ../../secrets/secrets.yaml;
|
|
mode = "0440";
|
|
};
|
|
|
|
services.prometheus.alertmanager = {
|
|
enable = true;
|
|
openFirewall = true;
|
|
environmentFile = alertmanagerEnv;
|
|
|
|
webExternalUrl = "http://monitor.lab:9093"; # optional but helpful
|
|
configuration = {
|
|
route = {
|
|
receiver = "null";
|
|
group_by = ["alertname"];
|
|
group_wait = "10s";
|
|
group_interval = "5m";
|
|
repeat_interval = "4h";
|
|
|
|
routes = [
|
|
{
|
|
receiver = "telegram";
|
|
matchers = [
|
|
"severity =~ \"warning|critical\""
|
|
];
|
|
group_wait = "10s";
|
|
continue = true;
|
|
}
|
|
];
|
|
};
|
|
|
|
receivers = [
|
|
{name = "null";}
|
|
{
|
|
name = "telegram";
|
|
telegram_configs = [
|
|
{
|
|
api_url = "https://api.telegram.org";
|
|
bot_token = "$TELEGRAM_BOT_TOKEN";
|
|
chat_id = -1002642560007;
|
|
message_thread_id = 4;
|
|
parse_mode = "HTML";
|
|
send_resolved = true;
|
|
message = "{{ template \"telegram.message\". }}";
|
|
}
|
|
];
|
|
}
|
|
];
|
|
|
|
templates = [
|
|
(pkgs.writeText "telegram.tmpl" (builtins.readFile ./provisioning/templates/telegram.tmpl))
|
|
# (pkgs.writeText "telegram.markdown.v2.tmpl" (builtins.readFile ./provisioning/templates/telegram.markdown.v2.tmpl))
|
|
];
|
|
};
|
|
};
|
|
}
|