From a908ce78ab36a5d4e0425eb59639ab3fe6f31ada Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thorben=20G=C3=BCnther?= Date: Wed, 19 Jul 2023 15:17:36 +0200 Subject: [PATCH] readme: Move example config out --- README.md | 101 +++------------------------------------------------- config.scfg | 91 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 95 insertions(+), 97 deletions(-) create mode 100644 config.scfg diff --git a/README.md b/README.md index 96cede3..e72eaca 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,8 @@ Simply use go build or the [docker image] with [docker-compose file]. You can specify the configuration file location with the `--config` flag. By default the configuration file will be read from `/etc/ntfy-alertmanager/config`. The format -of this file is [scfg]. +of this file is [scfg] and there is an [example configuration file] in this repo. +Furthermore you can take a look at [my deployment]. ntfy-alertmanager has support for setting ntfy [priority], [tags], [icon], [action buttons] (which can be used to create an Alertmanager silence), [email notifications] and [phone calls]. @@ -23,102 +24,6 @@ Define a decreasing order of labels in the config file and map those labels to t - For priority and icon the first found value will be chosen. An icon for "resolved" alerts will take precedence. - Tags are added together. -Example: - -``` -# Public facing base URL of the service (e.g. https://ntfy-alertmanager.xenrox.net) -# This setting is required for the "Silence" feature. -base-url https://ntfy-alertmanager.xenrox.net -# http listen address -http-address :8080 -# Log level (either debug, info, warning, error) -log-level info -# When multiple alerts are grouped together by Alertmanager, they can either be sent -# each on their own (single mode) or be kept together (multi mode) (either single or multi; default is multi) -alert-mode single -# Optionally protect with HTTP basic authentication -user webhookUser -password webhookPass - -labels { - order "severity,instance" - - severity "critical" { - priority 5 - tags "rotating_light" - icon "https://foo.com/critical.png" - # Forward messages which severity "critical" to the specified email address. - email-address foo@bar.com - # Call the specified number. Use `yes` to pick the first of your verified numbers. - call yes - } - - severity "info" { - priority 1 - } - - instance "example.com" { - tags "computer,example" - } -} - -# Settings for resolved alerts -resolved { - tags "resolved,partying_face" - icon "https://foo.com/resolved.png" -} - -ntfy { - # URL of the ntfy topic - required - topic https://ntfy.sh/alertmanager-alerts - # ntfy authentication via Basic Auth (https://docs.ntfy.sh/publish/#username-password) - user user - password pass - # ntfy authentication via access tokens (https://docs.ntfy.sh/publish/#access-tokens) - # Either access-token or a user/password combination can be used - not both. - access-token foobar - # Forward all messages to the specified email address. - email-address foo@bar.com - # Call the specified number for all alerts. Use `yes` to pick the first of your verified numbers. - call +123456789 -} - -alertmanager { - # If set, the ntfy message will contain a "Silence" button, which can be used - # to create a silence via the Alertmanager API. Because of limitations in ntfy, - # the request will be proxied through ntfy-alertmanager. Therefore ntfy-alertmanager - # needs to be exposed to external network requests and base-url has to be set. - # - # When alert-mode is set to "single" all alert labels will be used to create the silence. - # When it is "multi" common labels between all the alerts will be used. WARNING: This - # could silence unwanted alerts. - silence-duration 24h - # Basic authentication (https://prometheus.io/docs/alerting/latest/https/) - user user - password pass - # By default the Alertmanager URL gets parsed from the webhook. In case that - # Alertmanger is not reachable under that URL, it can be overwritten here. - url https://alertmanager.xenrox.net -} - -# When the alert-mode is set to single, ntfy-alertmanager will cache each single alert -# to avoid sending recurrences. -cache { - # The type of cache that will be used (either disabled, memory or redis; default is disabled). - type memory - # How long messages stay in the cache for - duration 24h - - # Memory cache settings - # Interval in which the cache is cleaned up - cleanup-interval 1h - - # Redis cache settings - # URL to connect to redis (default: redis://localhost:6379) - redis-url redis://user:password@localhost:6789/3 -} -``` - ### Alertmanager config ```yaml @@ -150,3 +55,5 @@ or write to me directly on matrix [@xenrox:xenrox.net]. [@xenrox:xenrox.net]: https://matrix.to/#/@xenrox:xenrox.net [docker image]: https://hub.docker.com/r/xenrox/ntfy-alertmanager [docker-compose file]: https://git.xenrox.net/~xenrox/ntfy-alertmanager/tree/master/item/docker/docker-compose.yml +[example configuration file]: https://git.xenrox.net/~xenrox/ntfy-alertmanager/tree/master/item/config.scfg +[my deployment]: https://git.xenrox.net/~xenrox/ansible/tree/master/item/roles/alertmanager/templates/ntfy-alertmanager.j2 diff --git a/config.scfg b/config.scfg new file mode 100644 index 0000000..7da6bba --- /dev/null +++ b/config.scfg @@ -0,0 +1,91 @@ +# Public facing base URL of the service (e.g. https://ntfy-alertmanager.xenrox.net) +# This setting is required for the "Silence" feature. +base-url https://ntfy-alertmanager.xenrox.net +# http listen address +http-address :8080 +# Log level (either debug, info, warning, error) +log-level info +# When multiple alerts are grouped together by Alertmanager, they can either be sent +# each on their own (single mode) or be kept together (multi mode) (either single or multi; default is multi) +alert-mode single +# Optionally protect with HTTP basic authentication +user webhookUser +password webhookPass + +labels { + order "severity,instance" + + severity "critical" { + priority 5 + tags "rotating_light" + icon "https://foo.com/critical.png" + # Forward messages which severity "critical" to the specified email address. + email-address foo@bar.com + # Call the specified number. Use `yes` to pick the first of your verified numbers. + call yes + } + + severity "info" { + priority 1 + } + + instance "example.com" { + tags "computer,example" + } +} + +# Settings for resolved alerts +resolved { + tags "resolved,partying_face" + icon "https://foo.com/resolved.png" +} + +ntfy { + # URL of the ntfy topic - required + topic https://ntfy.sh/alertmanager-alerts + # ntfy authentication via Basic Auth (https://docs.ntfy.sh/publish/#username-password) + user user + password pass + # ntfy authentication via access tokens (https://docs.ntfy.sh/publish/#access-tokens) + # Either access-token or a user/password combination can be used - not both. + access-token foobar + # Forward all messages to the specified email address. + email-address foo@bar.com + # Call the specified number for all alerts. Use `yes` to pick the first of your verified numbers. + call +123456789 +} + +alertmanager { + # If set, the ntfy message will contain a "Silence" button, which can be used + # to create a silence via the Alertmanager API. Because of limitations in ntfy, + # the request will be proxied through ntfy-alertmanager. Therefore ntfy-alertmanager + # needs to be exposed to external network requests and base-url has to be set. + # + # When alert-mode is set to "single" all alert labels will be used to create the silence. + # When it is "multi" common labels between all the alerts will be used. WARNING: This + # could silence unwanted alerts. + silence-duration 24h + # Basic authentication (https://prometheus.io/docs/alerting/latest/https/) + user user + password pass + # By default the Alertmanager URL gets parsed from the webhook. In case that + # Alertmanger is not reachable under that URL, it can be overwritten here. + url https://alertmanager.xenrox.net +} + +# When the alert-mode is set to single, ntfy-alertmanager will cache each single alert +# to avoid sending recurrences. +cache { + # The type of cache that will be used (either disabled, memory or redis; default is disabled). + type memory + # How long messages stay in the cache for + duration 24h + + # Memory cache settings + # Interval in which the cache is cleaned up + cleanup-interval 1h + + # Redis cache settings + # URL to connect to redis (default: redis://localhost:6379) + redis-url redis://user:password@localhost:6789/3 +}