K8S - 无法通过 - alertmanager 查看警报
Posted
技术标签:
【中文标题】K8S - 无法通过 - alertmanager 查看警报【英文标题】:K8S - Not able to see alerts via - alertmanager 【发布时间】:2019-07-10 21:17:01 【问题描述】:我有 Prometheus 运算符,它按预期工作 https://github.com/coreos/prometheus-operator
现在我想从头开始申请alert manager
阅读文档后,我发现了这些 yaml。 但问题是当我进入 UI 什么都没有显示,知道我在这里想念什么吗?
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
什么都没发生……
【问题讨论】:
您是否已将相关ConfigMap
中的规则文件包含到您的 Prometheus 实例 Pod 中?
@mk_sta - 我用过 testalert.yml 不确定如何应用名称:./example.rules?你能把它添加为答案吗? 2. 我的配置文件看起来好吗? ,我想念什么吗?我只想从 alertmanager 发送一个虚拟警报,如果您有其他文件可以从头开始使用,那就太好了。非常感谢
也许我失踪了,但在舞会上。操作员,您已经有了带有一些定义的 AlertManager - 您只需启用它。没有?
【参考方案1】:
当您考虑使用AlertManager 时,除了常规配置和应用警报规则外,AlertManager
还需要与Prometheus 服务器集成。然后,Prometheus 实例可以跟踪任何传入的一系列事件,一旦检测到任何被识别的规则,它就会向嵌套的警报管理器触发警报。
为了启用警报,可能需要将以下配置附加到 Prometheus 实例:
alerting:
alertmanagers:
- static_configs:
- targets:
- 'alertmanagerIP:9093'
具体来说,对于CoreOS中的AlertManager
实现,可以按照Alerting官方文档中描述的步骤进行;但是,您可以在下面找到上述指南中保留的 Prometheus pod 警报配置示例:
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
【讨论】:
谢谢+1,因为我想尝试一下,我有点困惑:(你能提供你想让我使用的所有文件(或一个包含所有配置的文件)吗?我已经成功部署了操作员,现在我只想添加警报管理器,我应该使用哪些文件。 您可以按照我的回答中提到的CoreOS官方指南中的说明进行操作,链接是here。以上是关于K8S - 无法通过 - alertmanager 查看警报的主要内容,如果未能解决你的问题,请参考以下文章
Prometheus监控实战系列二十四: Alertmanager集群
prometheus alertmanager 中基于时间的警报
使用 prometheus-alertmanager 通过 Grafana UI 发送警报电子邮件
Kubernetes+Promethues+Cloud Alert实践分享
linux(centos8):prometheus使用alertmanager发送报警邮件(prometheus 2.18.1/alertmanager 0.20.0)