This commit is contained in:
193
Helm/Helm部署PrometheusAlert.md
Normal file
193
Helm/Helm部署PrometheusAlert.md
Normal file
@@ -0,0 +1,193 @@
|
||||
> 本文作者:丁辉
|
||||
|
||||
# Helm部署PrometheusAlert
|
||||
|
||||
## 介绍
|
||||
|
||||
**PrometheusAlert 是一个开源的运维告警中心消息转发系统,它能够支持多种主流的监控系统、日志系统以及数据可视化系统**。PrometheusAlert 的设计宗旨是为了解决不同系统之间预警消息的有效传递问题,确保关键信息能够及时通知到相关人员。
|
||||
|
||||
## 开始部署
|
||||
|
||||
[官方文档](https://github.com/feiyu563/PrometheusAlert/blob/master/doc/readme/base-install.md)
|
||||
|
||||
> 准备好 Mysql 数据库
|
||||
>
|
||||
> 安装可查看如下文档
|
||||
>
|
||||
> [Helm部署Mysql](https://gitee.com/offends/Kubernetes/blob/main/Helm/Helm%E9%83%A8%E7%BD%B2Mysql.md)
|
||||
|
||||
| 服务名 | IP地址:端口 | 账户密码 |
|
||||
| :-------------: | :--------------------------------------------: | :-----------------------------: |
|
||||
| Mysql | 192.168.1.10:3306 | root/Root123456 |
|
||||
| PrometheusAlert | prometheusalert.monitor.svc.cluster.local:8080 | prometheusalert/prometheusalert |
|
||||
|
||||
1. 拉取代码
|
||||
|
||||
> v4.9 版本往上 Helm 部署 Bug 异常多,暂时还是推荐使用 v4.9
|
||||
|
||||
```bash
|
||||
git clone --branch v4.9 https://github.com/feiyu563/PrometheusAlert.git
|
||||
cd PrometheusAlert/example/helm
|
||||
```
|
||||
|
||||
2. Mysql创建数据库
|
||||
|
||||
```bash
|
||||
CREATE DATABASE prometheusalert CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
|
||||
```
|
||||
|
||||
3. 修改 app.conf 文件
|
||||
|
||||
```bash
|
||||
vi prometheusalert/config/app.conf
|
||||
```
|
||||
|
||||
修改内容如下
|
||||
|
||||
```bash
|
||||
db_driver=mysql
|
||||
db_host=mysql.mysql.svc.cluster.local
|
||||
db_port=3306
|
||||
db_user=root
|
||||
db_password=Root123456
|
||||
db_name=prometheusalert
|
||||
# 开启飞书告警通道
|
||||
open-feishu=1
|
||||
```
|
||||
|
||||
> 参考 [app.conf文件配置](https://gitee.com/offends/Kubernetes/blob/main/File/Conf/PrometheusAlert-App.conf)
|
||||
|
||||
4. 编写 values.yaml 文件
|
||||
|
||||
```bash
|
||||
vi prometheusalert-values.yaml
|
||||
```
|
||||
|
||||
内容如下
|
||||
|
||||
```yaml
|
||||
ingress:
|
||||
enabled: true
|
||||
hosts:
|
||||
- host: # 域名
|
||||
paths: ["/"]
|
||||
|
||||
tls:
|
||||
- secretName: drone-tls
|
||||
hosts:
|
||||
- # 域名
|
||||
```
|
||||
|
||||
5. 安装
|
||||
|
||||
```bash
|
||||
helm install prometheusalert ./prometheusalert \
|
||||
--namespace monitor --create-namespace \
|
||||
-f prometheusalert-values.yaml
|
||||
```
|
||||
|
||||
6. 通过 NodePort 或 Ingress 对外开放访问后登录密码为
|
||||
|
||||
账号:prometheusalert
|
||||
|
||||
密码:prometheusalert
|
||||
|
||||
## 卸载
|
||||
|
||||
```bash
|
||||
helm uninstall prometheusalert -n monitor
|
||||
```
|
||||
|
||||
# 配置飞书告警模版测试
|
||||
|
||||
打开PrometheusAlert web页面,进入菜单模版管理-->自定义模板-->添加模版
|
||||
|
||||
- **模版名称**:prometheus-fs
|
||||
|
||||
- **模版类型**:飞书
|
||||
|
||||
- **模版用途**:Prometheus
|
||||
|
||||
- **模版内容:**
|
||||
|
||||
```bash
|
||||
{{- range $k, $v := .alerts -}}
|
||||
{{- if eq $v.status "resolved" -}}
|
||||
<font color="green">**告警恢复信息**</font>
|
||||
事件名称: **{{ if $v.annotations.summary }}{{ $v.annotations.summary }}{{ else }}{{ $v.labels.alertname }}{{ end }}**
|
||||
{{ if $v.status }}告警类型: {{$v.status}}{{ end }}
|
||||
{{ if $v.labels.level }}告警级别: {{$v.labels.level}}{{ end }}
|
||||
开始时间: {{GetCSTtime $v.startsAt}}
|
||||
恢复时间: {{GetCSTtime $v.endsAt}}
|
||||
{{ if $v.labels.instance }}主机地址: {{$v.labels.instance}}{{ end }}
|
||||
{{ if $v.annotations.value }}当前值: {{$v.annotations.value}}{{ end }}
|
||||
<font color="green">**事件回顾: {{$v.annotations.description}}**</font>
|
||||
{{- else -}}
|
||||
<font color="red">**告警信息**</font>
|
||||
事件名称: **{{ if $v.annotations.summary }}{{ $v.annotations.summary }}{{ else }}{{ $v.labels.alertname }}{{ end }}**
|
||||
{{ if $v.status }}告警类型: {{$v.status}}{{- end }}
|
||||
{{ if $v.labels.level }}告警级别: {{$v.labels.level}}{{ end }}
|
||||
开始时间: {{GetCSTtime $v.startsAt}}
|
||||
{{ if $v.labels.instance }}主机地址: {{$v.labels.instance}}{{ end }}
|
||||
{{ if $v.annotations.value }}触发值: {{$v.annotations.value}}{{ end }}
|
||||
<font color="red">**事件详情: {{$v.annotations.description}}**</font>
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
```
|
||||
|
||||
- **消息协议JSON内容**
|
||||
|
||||
```json
|
||||
{
|
||||
"receiver": "webhook",
|
||||
"status": "firing",
|
||||
"alerts": [
|
||||
{
|
||||
"status": "resolved",
|
||||
"labels": {
|
||||
"alertname": "HighCPUUsage",
|
||||
"level": "warning",
|
||||
"instance": "192.168.1.10:9100"
|
||||
},
|
||||
"annotations": {
|
||||
"summary": "CPU使用率过高",
|
||||
"value": "95%",
|
||||
"description": "CPU使用率持续超过阈值90%达5分钟"
|
||||
},
|
||||
"startsAt": "2023-08-25T10:00:00Z",
|
||||
"endsAt": "2023-08-25T10:05:00Z",
|
||||
"generatorURL": "http://prometheus:9090/graph"
|
||||
},
|
||||
{
|
||||
"status": "firing",
|
||||
"labels": {
|
||||
"alertname": "DiskFull",
|
||||
"level": "critical",
|
||||
"instance": "192.168.1.11:9100"
|
||||
},
|
||||
"annotations": {
|
||||
"summary": "磁盘空间不足",
|
||||
"value": "98%",
|
||||
"description": "/data分区使用率超过95%"
|
||||
},
|
||||
"startsAt": "2023-08-25T10:03:00Z",
|
||||
"endsAt": "0001-01-01T00:00:00Z",
|
||||
"generatorURL": "http://prometheus:9090/graph"
|
||||
}
|
||||
],
|
||||
"groupLabels": {
|
||||
"alertname": "instance"
|
||||
},
|
||||
"commonLabels": {
|
||||
"job": "node_exporter"
|
||||
},
|
||||
"commonAnnotations": {},
|
||||
"externalURL": "http://alertmanager:9093",
|
||||
"version": "4",
|
||||
"groupKey": "{}:{alertname=\"instance\"}"
|
||||
}
|
||||
```
|
||||
|
||||
- 模板测试
|
||||
|
||||
- 模板保存
|
||||
Reference in New Issue
Block a user