1
0
mirror of https://github.com/kmein/niveum synced 2026-03-21 20:31:07 +01:00

feat(alertmanager): alert via irc

This commit is contained in:
2022-01-13 19:25:28 +01:00
parent f0e11f3147
commit 630d99e191
2 changed files with 24 additions and 49 deletions

View File

@@ -113,48 +113,24 @@ in
}]; }];
})]; })];
systemd.services.alertmanager-bot-telegram = systemd.services.alertmanager-irc = {
let
alertmanager-bot-telegram = pkgs.buildGoModule rec {
pname = "alertmanager-bot";
version = "2020-07-13";
src = pkgs.fetchFromGitHub {
owner = "metalmatze";
repo = "alertmanager-bot";
rev = "5efc0bbbf8023d4324e9da98562f064a714a7206";
sha256 = "09cciml1j8x76jpm2v5v6h2q6j1fkhsz1kswslmx8wl4wk40xgp4";
};
vendorSha256 = "1v0fgin8dn81b559zz4lqmrl7hikr46g4gb18sci4riql5qs1isj";
postInstall = ''
install -D ./default.tmpl $out/templates/default.tmpl
'';
};
in {
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "ip-up.target" ]; after = [ "ip-up.target" ];
environment.TELEGRAM_ADMIN = "18980945";
environment.TELEGRAM_TOKEN = lib.strings.fileContents <system-secrets/telegram/prometheus.token>;
serviceConfig = { serviceConfig = {
DynamicUser = true; DynamicUser = true;
StateDirectory = "alertbot"; StateDirectory = "alert-irc";
ExecStart = ''${alertmanager-bot-telegram}/bin/alertmanager-bot \ ExecStart = ''${pkgs.alertmanager-irc-relay}/bin/alertmanager-irc-relay \
--alertmanager.url=http://localhost:9093 --log.level=info \ --config ${(pkgs.formats.yaml {}).generate "config.yaml" {
--store=bolt --bolt.path=/var/lib/alertbot/bot.db \ http_host = "0.0.0.0";
--listen.addr="0.0.0.0:16320" \ http_port = 16330;
--template.paths=${pkgs.writeText "template.tmpl" '' irc_host = "irc.r";
{{ define "telegram.default" }} irc_port = 6667;
{{range .Alerts -}} irc_use_ssl = false;
{{ if eq .Status "firing" }} irc_nickname = "niveum";
<b>{{ index .Annotations "summary"}}</b> irc_channels = [ { name = "#niveum"; } ];
{{ index .Annotations "description" }} msg_template = ''{{ index .Annotations "summary" }} ({{ .Status }})'';
}}
See on Grafana: http://${config.services.grafana.domain}/d/alpUteInz/niveum '';
{{ else -}}
RESOLVED 😌 <del>{{ index .Annotations "summary"}}</del>
{{- end }}
{{end -}}
{{end}}
''}'';
}; };
}; };
@@ -169,20 +145,16 @@ in
}; };
receivers = [{ receivers = [{
name = "me"; name = "me";
webhook_configs = [{ webhook_configs = [
url = "http://localhost:16320"; {
send_resolved = true; url = "http://localhost:16330/niveum";
}]; send_resolved = true;
}
];
}]; }];
}; };
}; };
services.prometheus.alertmanagers = [{
scheme = "http";
path_prefix = "/";
static_configs = [ { targets = [ "localhost:9093" ]; } ];
}];
services.prometheus.scrapeConfigs = [ services.prometheus.scrapeConfigs = [
{ {
job_name = "makanek"; job_name = "makanek";

View File

@@ -32,6 +32,9 @@ in {
weechat = { weechat = {
look.mouse = true; look.mouse = true;
color.chat_nick_colors = lib.lists.subtractLists (lib.range 52 69 ++ lib.range 231 248) (lib.range 31 254); color.chat_nick_colors = lib.lists.subtractLists (lib.range 52 69 ++ lib.range 231 248) (lib.range 31 254);
look.highlight_tags = [
"irc_notice+nick_niveum"
];
}; };
irc = { irc = {
look = { look = {
@@ -79,7 +82,7 @@ in {
retiolum = { retiolum = {
autoconnect = true; autoconnect = true;
address = "irc.r"; address = "irc.r";
autojoin = [ "#xxx" "#brockman" "#flix" "#autowifi" ]; autojoin = [ "#xxx" "#brockman" "#flix" "#niveum" ];
command = lib.concatStringsSep "\\;" [ command = lib.concatStringsSep "\\;" [
"/oper admin aidsballs" "/oper admin aidsballs"
"/msg nickserv always-on true" "/msg nickserv always-on true"