add alert

This commit is contained in:
孙小云 2025-09-16 10:00:54 +08:00
parent 0d7a853a9d
commit 718b5bb9a4
6 changed files with 131 additions and 1 deletions

View File

@ -0,0 +1,16 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: alertmanager-config
namespace: default
data:
alertmanager.yml: |
route:
group_by: ['alertname']
group_wait: 10s
group_interval: 10s
repeat_interval: 1h
receiver: 'default-receiver'
receivers:
- name: 'default-receiver'

View File

@ -0,0 +1,51 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: alertmanager
namespace: default
labels:
app: alertmanager
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
app: alertmanager
template:
metadata:
labels:
app: alertmanager
spec:
nodeSelector:
node-role.kubernetes.io/control-plane: "true"
containers:
- name: alertmanager
image: registry.t-aaron.com/prom/alertmanager:latest
ports:
- containerPort: 9093
args:
- "--config.file=/etc/alertmanager/alertmanager.yml"
- "--storage.path=/alertmanager/"
- "--web.external-url=http://alertmanager.example.com"
- "--web.route-prefix=/"
resources:
requests:
memory: "256Mi"
cpu: "250m"
limits:
memory: "512Mi"
cpu: "500m"
volumeMounts:
- name: alertmanager-config
mountPath: /etc/alertmanager/
- name: alertmanager-storage
mountPath: /alertmanager/
volumes:
- name: alertmanager-config
configMap:
name: alertmanager-config
- name: alertmanager-storage
hostPath:
path: /opt/alertmanager/data
type: DirectoryOrCreate

View File

@ -0,0 +1,24 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: alertmanager-ingress
namespace: default
annotations:
traefik.ingress.kubernetes.io/router.entrypoints: web,websecure
traefik.ingress.kubernetes.io/router.tls: "true"
spec:
tls:
- hosts:
- alertmanager-ops.t-aaron.com
secretName: tls
rules:
- host: alertmanager-ops.t-aaron.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: alertmanager-service
port:
number: 9093

View File

@ -0,0 +1,16 @@
apiVersion: v1
kind: Service
metadata:
name: alertmanager-service
namespace: default
labels:
app: alertmanager
spec:
selector:
app: alertmanager
ports:
- name: http
port: 9093
targetPort: 9093
protocol: TCP
type: ClusterIP

View File

@ -0,0 +1,22 @@
#!/bin/bash
set -euo pipefail
echo "开始安装 Alertmanager..."
# 创建数据目录并设置权限
sudo mkdir -p /opt/alertmanager/data
sudo chown -R 65534:65534 /opt/alertmanager/data
# 应用配置文件
kubectl apply -f alertmanager-configmap.yaml
kubectl apply -f alertmanager-deployment.yaml
kubectl apply -f alertmanager-service.yaml
kubectl apply -f alertmanager-ingress.yaml
echo "等待 Alertmanager 启动..."
kubectl wait --for=condition=available --timeout=300s deployment/alertmanager
echo "Alertmanager 安装完成!"
echo "查看状态: kubectl get pods -l app=alertmanager"
echo "查看服务: kubectl get svc alertmanager-service"
echo "访问地址: https://alertmanager.example.com"

View File

@ -15,4 +15,5 @@ kubectl wait --for=condition=available --timeout=300s deployment/grafana
echo "Grafana 安装完成!"
echo "查看状态: kubectl get pods -l app=grafana"
默认用户名admin
默认密码admin123