Чтобы отправить оповещение на свою учетную запись gmail, вам необходимо настроить конфигурацию alertmanager в файле, например alertmanager.yaml:
cat <<EOF > alertmanager.yml
route:
group_by: [Alertname]
# Send all notifications to me.
receiver: email-me
receivers:
- name: email-me
email_configs:
- to: $GMAIL_ACCOUNT
from: $GMAIL_ACCOUNT
smarthost: smtp.gmail.com:587
auth_username: "$GMAIL_ACCOUNT"
auth_identity: "$GMAIL_ACCOUNT"
auth_password: "$GMAIL_AUTH_TOKEN"
EOF
Теперь, когда вы используете kube-prometheus, у вас будетсекрет с именем alertmanager-main
, который является конфигурацией по умолчанию для alertmanager
.Вам нужно снова создать секрет alertmanager-main
с новой конфигурацией, используя следующую команду:
kubectl create secret generic alertmanager-main --from-file=alertmanager.yaml -n monitoring
Теперь вы настроены на то, чтобы оповещение о тревоге было настроено на отправку электронного письма при получении оповещения от прометея.
Теперь вам нужно настроить оповещение о том, что ваша почта будет отправлена.Вы можете настроить оповещение DeadManSwitch, которое срабатывает в каждом случае и используется для проверки конвейера оповещений
groups:
- name: meta
rules:
- alert: DeadMansSwitch
expr: vector(1)
labels:
severity: critical
annotations:
description: This is a DeadMansSwitch meant to ensure that the entire Alerting
pipeline is functional.
summary: Alerting DeadMansSwitch
После этого оповещение DeadManSwitch
сработает и должно отправить электронное письмо на вашу почту.
Ссылочная ссылка:
https://coreos.com/tectonic/docs/latest/tectonic-prometheus-operator/user-guides/configuring-prometheus-alertmanager.html
РЕДАКТИРОВАТЬ:
Предупреждение Deadmanswitch должно идти в конфигурации карты, которую читает ваш прометей,Я поделюсь соответствующими снимками с моего прометея здесь:
"spec": {
"alerting": {
"alertmanagers": [
{
"name": "alertmanager-main",
"namespace": "monitoring",
"port": "web"
}
]
},
"baseImage": "quay.io/prometheus/prometheus",
"replicas": 2,
"resources": {
"requests": {
"memory": "400Mi"
}
},
"ruleSelector": {
"matchLabels": {
"prometheus": "prafull",
"role": "alert-rules"
}
},
Приведенный выше конфиг - это мой файл prometheus.json, в котором используется имя alertmanager и ruleSelector
, который будет выбирать правила на основеprometheus
и role
метка.Итак, у меня есть моя карта конфигурации правил, например:
kind: ConfigMap
apiVersion: v1
metadata:
name: prometheus-rules
namespace: monitoring
labels:
role: alert-rules
prometheus: prafull
data:
alert-rules.yaml: |+
groups:
- name: alerting_rules
rules:
- alert: LoadAverage15m
expr: node_load15 >= 0.50
labels:
severity: major
annotations:
summary: "Instance {{ $labels.instance }} - high load average"
description: "{{ $labels.instance }} (measured by {{ $labels.job }}) has high load average ({{ $value }}) over 15 minutes."
Замените DeadManSwitch
в приведенной выше карте конфигурации.