Alertmanager配置短信告警
Prometheus是以operator方式部署。
这里仅仅提供一个思路,万变不离其宗。
使用短信告警以前须要本身购买短信服务,而后定义好短信模板,通常都有现成的sdk,本身简单包装一下就能够使用了。node
思路:经过自定义webhook的方式进行发送。
我简单写了一个webhook,项目地址:https://github.com/cool-ops/prometheus-alert-sms.git
git
部署
一、下载代码
github
git clone https://github.com/cool-ops/prometheus-alert-sms.git
二、编译代码
web
cd prometheus-alert-sms/
sh build.sh
三、打包镜像
docker
docker build -t registry.cn-hangzhou.aliyuncs.com/rookieops/prometheus-alert-sms:v0.0.7 .
注:镜像地址更换成本身的仓库地址
四、推送镜像到镜像仓库
api
docker push registry.cn-hangzhou.aliyuncs.com/rookieops/prometheus-alert-sms:v0.0.7
五、修改项目目录下的prometheus-alert-sms.yaml
微信
apiVersion: v1
kind: ConfigMap
metadata:
name: sms-conf
namespace: monitoring
data:
sms.yaml: |
adapter:
adapter_name: "RongLianYun"
RongLianYun:
baseUrl : "https://app.cloopen.com:8883"
accountSid : "xxxxxx"
appToken : "xxxxxx"
appId : "xxxxx"
templateId : "xxx"
phones : ["11111111111","22222222222"]
AliYun:
aliRegion: "cn-hangzhou"
accessKeyId: "xxxx"
accessSecret: "xxxx"
phoneNumbers: "11111111111,22222222222"
signName: "xxxx"
templateCode: "xxxx"
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: prometheus-alert-sms
namespace: monitoring
spec:
replicas: 1
selector:
matchLabels:
app: prometheus-alert-sms
template:
metadata:
labels:
app: prometheus-alert-sms
spec:
containers:
- name: prometheus-alert-sms
image: registry.cn-hangzhou.aliyuncs.com/rookieops/prometheus-alert-sms:v0.0.7
imagePullPolicy: IfNotPresent
livenessProbe:
failureThreshold: 3
httpGet:
path: /healthCheck
port: tcp-9000
scheme: HTTP
initialDelaySeconds: 30
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 2
readinessProbe:
failureThreshold: 3
httpGet:
path: /healthCheck
port: tcp-9000
scheme: HTTP
initialDelaySeconds: 30
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 2
env:
- name: CONFIG_PATH
value: /app/conf/sms.yaml
ports:
- name: app-port
containerPort: 9000
protocol: TCP
resources:
limits:
cpu: 500m
memory: 1Gi
requests:
cpu: 500m
memory: 1Gi
volumeMounts:
- name: sms-conf
mountPath: /app/conf/sms.yaml
subPath: sms.yaml
volumes:
- name: sms-conf
configMap:
name: sms-conf
---
apiVersion: v1
kind: Service
metadata:
name: prometheus-alter-sms
namespace: monitoring
spec:
selector:
app: prometheus-alert-sms
ports:
- name: app-port
port: 9000
targetPort: 9000
protocol: TCP
到本身购买的短信服务获取对应的信息。
七、部署yaml文件
app
kubectl apply -f prometheus-alert-sms.yaml
八、修改alertmanager的报警媒介
运维
......
- receiver: sms
group_wait: 10s
match:
filesystem: node
receivers:
- name: 'sms'
webhook_configs:
- url: "http://prometheus-alter-sms.monitoring.svc:9000"
send_resolved: true
......
而后若是有报警就能够正常接受到报警了。tcp
说明:代码里面仅仅是针对我本身的短信模板作了改变,因此不必定适合你。有兴趣的朋友能够本身作相应的修改。
完
-----------------------
公众号:极客运维圈(ID:qiaobiangushi)
知乎: 乔边故事
博客:极客运维圈
永远不要高估本身,作一个谦逊又自信的人。
-----------------------
扫码二维码关注公众号,不按期维护优质内容,技术干货!




舒适提示
若是你喜欢本文,请分享到朋友圈,想要得到更多信息,请关注我。
本文分享自微信公众号 - 极客运维圈(qiaobiangushi)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。