2022-10-13 13:41:35 +02:00
|
|
|
# [ntfy-alertmanager]
|
|
|
|
|
2022-10-19 13:34:35 +02:00
|
|
|
[![builds.sr.ht status](https://builds.xenrox.net/~xenrox/ntfy-alertmanager/commits/master.svg)](https://builds.xenrox.net/~xenrox/ntfy-alertmanager/commits/master?)
|
|
|
|
|
2022-10-13 13:41:35 +02:00
|
|
|
A bridge between ntfy and Alertmanager.
|
|
|
|
|
2022-10-20 14:18:22 +02:00
|
|
|
## Installation
|
|
|
|
|
|
|
|
Simply use go build or the [docker image] with [docker-compose file].
|
2023-01-14 21:26:57 +01:00
|
|
|
`ntfy-alertmanager:latest` is built from the latest tagged release while
|
|
|
|
`ntfy-alertmanager:dev` is built from the master branch.
|
2022-10-20 14:18:22 +02:00
|
|
|
|
2022-10-13 13:41:35 +02:00
|
|
|
## Configuration
|
|
|
|
|
|
|
|
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].
|
|
|
|
|
|
|
|
ntfy-alertmanager has support for setting ntfy [priority] and [tags]. Define a
|
|
|
|
decreasing order of labels in the config file and map those labels to tags or priority.
|
|
|
|
|
|
|
|
- For priority the first found value will be chosen.
|
|
|
|
- Tags are added together.
|
|
|
|
|
|
|
|
Example:
|
|
|
|
|
|
|
|
```
|
2023-02-10 17:16:13 +01:00
|
|
|
# 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
|
2022-10-13 13:41:35 +02:00
|
|
|
# http listen address
|
2022-10-20 14:18:22 +02:00
|
|
|
http-address :8080
|
2022-10-13 13:41:35 +02:00
|
|
|
# Log level (either debug, info, warning, error)
|
|
|
|
log-level info
|
2023-01-20 15:03:46 +01:00
|
|
|
# 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 single)
|
|
|
|
alert-mode single
|
2022-10-13 13:41:35 +02:00
|
|
|
# Optionally protect with HTTP basic authentication
|
|
|
|
user webhookUser
|
|
|
|
password webhookPass
|
|
|
|
|
|
|
|
labels {
|
|
|
|
order "severity,instance"
|
|
|
|
|
|
|
|
severity "critical" {
|
|
|
|
priority 5
|
|
|
|
tags "rotating_light"
|
|
|
|
}
|
|
|
|
|
|
|
|
severity "info" {
|
|
|
|
priority 1
|
|
|
|
}
|
|
|
|
|
|
|
|
instance "example.com" {
|
|
|
|
tags "computer,example"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
ntfy {
|
|
|
|
# URL of the ntfy topic - required
|
|
|
|
topic https://ntfy.sh/alertmanager-alerts
|
|
|
|
# ntfy access control (https://ntfy.sh/docs/config/#access-control)
|
|
|
|
user user
|
|
|
|
password pass
|
|
|
|
}
|
2023-02-08 14:46:14 +01:00
|
|
|
|
2023-02-10 17:16:13 +01:00
|
|
|
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.
|
2023-02-12 14:28:24 +01:00
|
|
|
#
|
|
|
|
# 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.
|
2023-02-10 17:16:13 +01:00
|
|
|
silence-duration 24h
|
2023-02-12 14:15:02 +01:00
|
|
|
# Basic authentication (https://prometheus.io/docs/alerting/latest/https/)
|
|
|
|
user user
|
|
|
|
password pass
|
2023-02-12 14:58:37 +01:00
|
|
|
# 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
|
2023-02-10 17:16:13 +01:00
|
|
|
}
|
|
|
|
|
2023-02-08 14:46:14 +01:00
|
|
|
# When the alert-mode is set to single, ntfy-alertmanager will cache each single alert
|
|
|
|
# to avoid sending recurrences.
|
|
|
|
cache {
|
|
|
|
# How long messages stay in the cache for
|
|
|
|
duration 24h
|
|
|
|
# Interval in which the cache is cleaned up
|
|
|
|
cleanup-interval 1h
|
|
|
|
}
|
2022-10-13 13:41:35 +02:00
|
|
|
```
|
|
|
|
|
|
|
|
### Alertmanager config
|
|
|
|
|
|
|
|
```yaml
|
|
|
|
receivers:
|
|
|
|
- name: "ntfy"
|
|
|
|
webhook_configs:
|
|
|
|
- url: "http://127.0.0.1:8080"
|
|
|
|
http_config:
|
|
|
|
basic_auth:
|
|
|
|
username: "webhookUser"
|
|
|
|
password: "webhookPass"
|
|
|
|
```
|
|
|
|
|
|
|
|
## Contributing
|
|
|
|
|
|
|
|
Report bugs on the [issue tracker].
|
|
|
|
|
|
|
|
[ntfy-alertmanager]: https://hub.xenrox.net/~xenrox/ntfy-alertmanager/
|
|
|
|
[scfg]: https://git.sr.ht/~emersion/scfg
|
|
|
|
[priority]: https://ntfy.sh/docs/publish/#message-priority
|
|
|
|
[tags]: https://ntfy.sh/docs/publish/#tags-emojis
|
|
|
|
[issue tracker]: https://todo.xenrox.net/~xenrox/ntfy-alertmanager
|
2022-10-20 14:18:22 +02:00
|
|
|
[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
|