Alertmamager部署yaml文件
**1.Alertmanager-configmap.yaml**
kind: ConfigMap
apiVersion: v1
metadata:
name: alertmanager
namespace: kube-mon
data:
alertmanager.yml: |
global:
resolve_timeout: 1m
smtp_smarthost: 'smtp.163.com:465'
smtp_from: 'xxxx@163.com' #修改为自己邮箱
smtp_auth_username: 'xxxx@163.com'
smtp_auth_password: 'xxxxxxxx' #填写自己163邮箱授权码
smtp_require_tls: false
route:
group_by: [alertname]
group_wait: 10s
group_interval: 10s
repeat_interval: 10m
receiver: default-receiver
receivers:
- name: 'default-receiver'
email_configs:
- to: 'xxxx@qq.com' #填写自己接收邮件地址
send_resolved: true
2.Alertmanager-svc.yaml
---
apiVersion: v1
kind: Service
metadata:
labels:
name: prometheus
kubernetes.io/cluster-service: 'true'
name: alertmanager
namespace: kube-mon
spec:
ports:
- name: alertmanager
nodePort: 30066
port: 9093
protocol: TCP
targetPort: 9093
selector:
app: prometheus
sessionAffinity: None
type: NodePort
---
apiVersion: v1
kind: Service
metadata:
name: prometheus
namespace: kube-mon
labels:
app: prometheus
spec:
selector:
app: prometheus
type: NodePort
ports:
- name: web
port: 9090
targetPort: 9090
nodePort: 30067
3.prome-alert-deploy.yaml
---
# 创建一个storageclass资源
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: prom-data-sc
provisioner: nfs-client
reclaimPolicy: Delete
allowVolumeExpansion: true
mountOptions:
- hard
- nfsvers=4
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: alert-data-pvc
namespace: kube-mon
spec:
storageClassName: prom-data-sc
accessModes:
- ReadWriteMany
resources:
requests:
storage: 10Gi
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: prom-data-pvc
namespace: kube-mon
spec:
storageClassName: prom-data-sc
accessModes:
- ReadWriteMany
resources:
requests:
storage: 10Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: prometheus-server
namespace: kube-mon
labels:
app: prometheus
spec:
replicas: 1
selector:
matchLabels:
app: prometheus
component: server
#matchExpressions:
#- {key: app, operator: In, values: [prometheus]}
#- {key: component, operator: In, values: [server]}
template:
metadata:
labels:
app: prometheus
component: server
annotations:
prometheus.io/scrape: 'false'
spec:
serviceAccountName: prometheus
containers:
- name: prometheus
image: prom/prometheus:v2.54.1
imagePullPolicy: IfNotPresent
command:
- "/bin/prometheus"
args:
- "--config.file=/etc/prometheus/prometheus.yml"
- "--storage.tsdb.path=/prometheus"
- "--storage.tsdb.retention=720h"
- "--web.enable-lifecycle"
ports:
- containerPort: 9090
protocol: TCP
volumeMounts:
- mountPath: /etc/prometheus
name: prometheus-config
- mountPath: /prometheus/
name: prom-data
- name: k8s-certs
mountPath: /var/run/secrets/kubernetes.io/k8s-certs/etcd/
- name: localtime
mountPath: /etc/localtime
- name: alertmanager
image: prom/alertmanager:v0.27.0
imagePullPolicy: IfNotPresent
args:
- "--config.file=/etc/alertmanager/alertmanager.yml"
- "--log.level=debug"
ports:
- containerPort: 9093
protocol: TCP
name: alertmanager
volumeMounts:
- name: alertmanager-config
mountPath: /etc/alertmanager
- name: alertmanager-storage
mountPath: /alertmanager
- name: localtime
mountPath: /etc/localtime
volumes:
- name: prometheus-config
configMap:
name: prometheus-config
items:
- key: prometheus.yml
path: prometheus.yml
mode: 0644
- key: rules.yml
path: rules.yml
mode: 0644
- name: prom-data
persistentVolumeClaim:
claimName: prom-data-pvc
- name: k8s-certs
secret:
secretName: etcd-certs
- name: alertmanager-config
configMap:
name: alertmanager
- name: alertmanager-storage
persistentVolumeClaim:
claimName: alert-data-pvc
- name: localtime
hostPath:
path: /usr/share/zoneinfo/Asia/Shanghai
许可协议:
CC BY 4.0