K8S - Невозможно увидеть оповещения через - alertmanager

У меня есть оператор Prometheus, который работает должным образом https://github.com/coreos/prometheus-operator

Теперь я хочу применить диспетчер предупреждений с нуля.

После прочтения документации я вышел с этими ямлами. но проблема в том, что когда я вошел в пользовательский интерфейс, ничего не отображается, есть идеи, что мне здесь не хватает?

http://localhost:9090/alerts Я использую переадресацию портов ...

Это all файлы конфигурации, которые я применил к своему кластеру k8s. Я просто хочу провести простой тест, чтобы убедиться, что он работает, а затем расширить его для наших нужд ...

alertmanger_main.yml

---
apiVersion: monitoring.coreos.com/v1
kind: Alertmanager
metadata:
  name: main
  labels:
    alertmanager: main
spec:
  replicas: 3
  version: v0.14.0

alertmanger_service.yml

apiVersion: v1
kind: Service
metadata:
  name: alertmanager-main
spec:
  type: LoadBalancer
  ports:
  - name: web
    port: 9093
    protocol: TCP
    targetPort: web
  selector:
    alertmanager: main

testalert.yml

kind: ConfigMap
apiVersion: v1
metadata:
  name: prometheus-example-rules
  labels:
    role: prometheus-rulefiles
    prometheus: prometheus
data:
  example.rules.yaml: |+
    groups:
    - name: ./example.rules
      rules:
      - alert: ExampleAlert
        expr: vector(1)

alertmanager.yml

global:
  resolve_timeout: 5m
route:
  group_by: ['job']
  group_wait: 30s
  group_interval: 5m
  repeat_interval: 12h
  receiver: 'webhook'
receivers:
- name: 'webhook'
  webhook_configs:
  - url: 'http://alertmanagerwh:30500/'

и для создания секрета я использую

kubectl create secret generic alertmanager-main --from-file=alertmanager.yaml

мне нужны базовые предупреждения в K8S, и я следую документации, но не нашел хорошего пошагового руководства.

введите описание изображения здесь

to check my sys for monitoring namespace

 ~  kubectl get pods -n monitoring                                                                                                                                                13.4m  Sun Feb 17 18:48:16 2019
NAME                                  READY   STATUS    RESTARTS   AGE
kube-state-metrics-593czc6b4-mrtkb   2/2     Running   0          12h
monitoring-grafana-771155cbbb-scqvx   1/1     Running   0          12h
prometheus-operator-79f345dc67-nw5zc   1/1     Running   0          12h
prometheus-prometheus-0               3/3     Running   1          12h
 ~  kubectl get svc -n  monitoring                                                                                                                                                536ms  Sun Feb 17 21:04:51 2019
NAME                   TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
alertmanager-main   NodePort    100.22.170.666   <none>        9093:30904/TCP   4m53s
kube-state-metrics     ClusterIP   100.34.212.596   <none>        8080/TCP         4d7h
monitoring-grafana     ClusterIP   100.67.230.884   <none>        80/TCP           4d7h
prometheus-operated    ClusterIP   None             <none>        9090/TCP         4d7h

Я также теперь изменил службу на LoadBalancer и пытаюсь войти, как

 ~  kubectl get svc -n  monitoring                                                                                                                                                507ms  Sun Feb 17 21:23:56 2019
NAME                   TYPE           CLUSTER-IP       EXTERNAL-IP      PORT(S)          AGE
alertmanager-main   LoadBalancer   100.22.170.666   38.482.152.331   9093:30904/TCP   23m

когда я захожу в браузер с

38.482.152.331:9093 
38.482.152.331:30904 

ничего не случилось...


person Jenny M    schedule 17.02.2019    source источник
comment
Включили ли вы файлы правил из соответствующего ConfigMap в свой экземпляр Pod Prometheus?   -  person Nick_Kh    schedule 18.02.2019
comment
@mk_sta - Я использую testalert.yml, не знаю, как применить name: ./example.rules? не могли бы вы добавить это в качестве ответа? 2. Мои файлы конфигурации выглядят нормально? , я что-нибудь пропустил? Я просто хочу отправить фиктивное предупреждение из диспетчера предупреждений, если у вас есть другие файлы, которые я могу использовать с нуля, это будет здорово. Большое спасибо   -  person Jenny M    schedule 18.02.2019
comment
Может быть, я скучаю, но на выпускном. Оператор, у вас уже есть AlertManager с некоторым определением - вам нужно просто включить его. Нет?   -  person evgenyl    schedule 19.02.2019


Ответы (1)


Если вы подумываете об использовании AlertManager, помимо общей конфигурации и применения правил предупреждений, AlertManager требуется интегрировать с сервером Prometheus. Затем экземпляр Prometheus может отслеживать любую входящую серию событий, и как только он обнаруживает какое-либо распознанное правило, он запускает предупреждение для вложенного диспетчера предупреждений.

Чтобы включить оповещение, может потребоваться добавить следующую конфигурацию к экземпляру Prometheus:

alerting:
  alertmanagers:
  - static_configs:
    - targets:
      - 'alertmanagerIP:9093'

В частности, для AlertManager реализации в CoreOS вы можете выполнить шаги, описанные в официальном документация по оповещениям; однако ниже вы можете найти пример конфигурации предупреждений модуля Prometheus, взятый из упомянутого руководства:

apiVersion: monitoring.coreos.com/v1
kind: Prometheus
metadata:
  name: example
spec:
  replicas: 2
  alerting:
    alertmanagers:
    - namespace: default
      name: alertmanager-example
      port: web
  serviceMonitorSelector:
    matchLabels:
      team: frontend
  resources:
    requests:
      memory: 400Mi
  ruleSelector:
    matchLabels:
      role: prometheus-rulefiles
      prometheus: example
person Nick_Kh    schedule 19.02.2019
comment
спасибо +1, так как я хочу попробовать и немного запутался а теперь я просто хочу добавить диспетчер предупреждений, какие файлы мне следует использовать. - person Jenny M; 19.02.2019
comment
Вы можете следовать инструкциям из официальных руководящих принципов CoreOS, упомянутых в моем ответе, ссылка: здесь. - person Nick_Kh; 26.02.2019