kube-prometheus: Add docs on how to set Alertmanager configuration
This commit is contained in:
44
README.md
44
README.md
@@ -26,6 +26,7 @@ This stack is meant for cluster monitoring, so it is pre-configured to collect m
|
|||||||
* [Compiling](#compiling)
|
* [Compiling](#compiling)
|
||||||
* [Configuration](#configuration)
|
* [Configuration](#configuration)
|
||||||
* [Customization](#customization)
|
* [Customization](#customization)
|
||||||
|
* [Alertmanager configuration](#alertmanager-configuration)
|
||||||
* [Customizing Prometheus alerting/recording rules and Grafana dashboards](#customizing-prometheus-alertingrecording-rules-and-grafana-dashboards)
|
* [Customizing Prometheus alerting/recording rules and Grafana dashboards](#customizing-prometheus-alertingrecording-rules-and-grafana-dashboards)
|
||||||
* [Exposing Prometheus/Alermanager/Grafana via Ingress](#exposing-prometheusalermanagergrafana-via-ingress)
|
* [Exposing Prometheus/Alermanager/Grafana via Ingress](#exposing-prometheusalermanagergrafana-via-ingress)
|
||||||
* [Minikube Example](#minikube-example)
|
* [Minikube Example](#minikube-example)
|
||||||
@@ -242,6 +243,49 @@ local daemonset = k.apps.v1beta2.daemonSet;
|
|||||||
}).nodeExporter.daemonset
|
}).nodeExporter.daemonset
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Alertmanager configuration
|
||||||
|
|
||||||
|
The Alertmanager configuration is located in the `_config.alertmanager.config` configuration field. In order to set a custom Alertmanager configuration simply set this field.
|
||||||
|
|
||||||
|
[embedmd]:# (examples/alertmanager-config.jsonnet)
|
||||||
|
```jsonnet
|
||||||
|
((import 'kube-prometheus/kube-prometheus.libsonnet') + {
|
||||||
|
_config+:: {
|
||||||
|
alertmanager+: {
|
||||||
|
config: |||
|
||||||
|
global:
|
||||||
|
resolve_timeout: 10m
|
||||||
|
route:
|
||||||
|
group_by: ['job']
|
||||||
|
group_wait: 30s
|
||||||
|
group_interval: 5m
|
||||||
|
repeat_interval: 12h
|
||||||
|
receiver: 'null'
|
||||||
|
routes:
|
||||||
|
- match:
|
||||||
|
alertname: DeadMansSwitch
|
||||||
|
receiver: 'null'
|
||||||
|
receivers:
|
||||||
|
- name: 'null'
|
||||||
|
|||,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}).alertmanager.secret
|
||||||
|
```
|
||||||
|
|
||||||
|
In the above example the configuration has been inlined, but can just as well be an external file imported in jsonnet via the `importstr` function.
|
||||||
|
|
||||||
|
[embedmd]:# (examples/alertmanager-config-external.jsonnet)
|
||||||
|
```jsonnet
|
||||||
|
((import 'kube-prometheus/kube-prometheus.libsonnet') + {
|
||||||
|
_config+:: {
|
||||||
|
alertmanager+: {
|
||||||
|
config: importstr 'alertmanager-config.yaml',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}).alertmanager.secret
|
||||||
|
```
|
||||||
|
|
||||||
### Customizing Prometheus alerting/recording rules and Grafana dashboards
|
### Customizing Prometheus alerting/recording rules and Grafana dashboards
|
||||||
|
|
||||||
See [developing Prometheus rules and Grafana dashboards](docs/developing-prometheus-rules-and-grafana-dashboards.md) guide.
|
See [developing Prometheus rules and Grafana dashboards](docs/developing-prometheus-rules-and-grafana-dashboards.md) guide.
|
||||||
|
7
examples/alertmanager-config-external.jsonnet
Normal file
7
examples/alertmanager-config-external.jsonnet
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
((import 'kube-prometheus/kube-prometheus.libsonnet') + {
|
||||||
|
_config+:: {
|
||||||
|
alertmanager+: {
|
||||||
|
config: importstr 'alertmanager-config.yaml',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}).alertmanager.secret
|
22
examples/alertmanager-config.jsonnet
Normal file
22
examples/alertmanager-config.jsonnet
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
((import 'kube-prometheus/kube-prometheus.libsonnet') + {
|
||||||
|
_config+:: {
|
||||||
|
alertmanager+: {
|
||||||
|
config: |||
|
||||||
|
global:
|
||||||
|
resolve_timeout: 10m
|
||||||
|
route:
|
||||||
|
group_by: ['job']
|
||||||
|
group_wait: 30s
|
||||||
|
group_interval: 5m
|
||||||
|
repeat_interval: 12h
|
||||||
|
receiver: 'null'
|
||||||
|
routes:
|
||||||
|
- match:
|
||||||
|
alertname: DeadMansSwitch
|
||||||
|
receiver: 'null'
|
||||||
|
receivers:
|
||||||
|
- name: 'null'
|
||||||
|
|||,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}).alertmanager.secret
|
15
examples/alertmanager-config.yaml
Normal file
15
examples/alertmanager-config.yaml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
# external alertmanager yaml
|
||||||
|
global:
|
||||||
|
resolve_timeout: 10m
|
||||||
|
route:
|
||||||
|
group_by: ['job']
|
||||||
|
group_wait: 30s
|
||||||
|
group_interval: 5m
|
||||||
|
repeat_interval: 12h
|
||||||
|
receiver: 'null'
|
||||||
|
routes:
|
||||||
|
- match:
|
||||||
|
alertname: DeadMansSwitch
|
||||||
|
receiver: 'null'
|
||||||
|
receivers:
|
||||||
|
- name: 'null'
|
@@ -1,7 +1,5 @@
|
|||||||
local k = import 'ksonnet/ksonnet.beta.3/k.libsonnet';
|
local k = import 'ksonnet/ksonnet.beta.3/k.libsonnet';
|
||||||
|
|
||||||
local alertmanagerConfig = "\nglobal:\n resolve_timeout: 5m\nroute:\n group_by: ['job']\n group_wait: 30s\n group_interval: 5m\n repeat_interval: 12h\n receiver: 'null'\n routes:\n - match:\n alertname: DeadMansSwitch\n receiver: 'null'\nreceivers:\n- name: 'null'\n";
|
|
||||||
|
|
||||||
{
|
{
|
||||||
_config+:: {
|
_config+:: {
|
||||||
namespace: 'default',
|
namespace: 'default',
|
||||||
@@ -16,7 +14,22 @@ local alertmanagerConfig = "\nglobal:\n resolve_timeout: 5m\nroute:\n group_by
|
|||||||
|
|
||||||
alertmanager+:: {
|
alertmanager+:: {
|
||||||
name: $._config.alertmanager.name,
|
name: $._config.alertmanager.name,
|
||||||
config: alertmanagerConfig,
|
config: |||
|
||||||
|
global:
|
||||||
|
resolve_timeout: 5m
|
||||||
|
route:
|
||||||
|
group_by: ['job']
|
||||||
|
group_wait: 30s
|
||||||
|
group_interval: 5m
|
||||||
|
repeat_interval: 12h
|
||||||
|
receiver: 'null'
|
||||||
|
routes:
|
||||||
|
- match:
|
||||||
|
alertname: DeadMansSwitch
|
||||||
|
receiver: 'null'
|
||||||
|
receivers:
|
||||||
|
- name: 'null'
|
||||||
|
|||,
|
||||||
replicas: 3,
|
replicas: 3,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
data:
|
data:
|
||||||
alertmanager.yaml: Cmdsb2JhbDoKICByZXNvbHZlX3RpbWVvdXQ6IDVtCnJvdXRlOgogIGdyb3VwX2J5OiBbJ2pvYiddCiAgZ3JvdXBfd2FpdDogMzBzCiAgZ3JvdXBfaW50ZXJ2YWw6IDVtCiAgcmVwZWF0X2ludGVydmFsOiAxMmgKICByZWNlaXZlcjogJ251bGwnCiAgcm91dGVzOgogIC0gbWF0Y2g6CiAgICAgIGFsZXJ0bmFtZTogRGVhZE1hbnNTd2l0Y2gKICAgIHJlY2VpdmVyOiAnbnVsbCcKcmVjZWl2ZXJzOgotIG5hbWU6ICdudWxsJwo=
|
alertmanager.yaml: Z2xvYmFsOgogIHJlc29sdmVfdGltZW91dDogNW0Kcm91dGU6CiAgZ3JvdXBfYnk6IFsnam9iJ10KICBncm91cF93YWl0OiAzMHMKICBncm91cF9pbnRlcnZhbDogNW0KICByZXBlYXRfaW50ZXJ2YWw6IDEyaAogIHJlY2VpdmVyOiAnbnVsbCcKICByb3V0ZXM6CiAgLSBtYXRjaDoKICAgICAgYWxlcnRuYW1lOiBEZWFkTWFuc1N3aXRjaAogICAgcmVjZWl2ZXI6ICdudWxsJwpyZWNlaXZlcnM6Ci0gbmFtZTogJ251bGwnCg==
|
||||||
kind: Secret
|
kind: Secret
|
||||||
metadata:
|
metadata:
|
||||||
name: alertmanager-main
|
name: alertmanager-main
|
||||||
|
Reference in New Issue
Block a user