11---
2- title : ' 监控及告警 '
3- sidebar_position : 5
2+ title : ' 运维系统 '
3+ sidebar_position : 9
44---
55
66
77
88## 组件说明
9- docker compose部署时,会自动部署如下组件,如使用源码部署,需手动开启docker-compose.yaml中的相关组件。
109
1110| 组件名称 | 组件说明 | 部署说明 |
1211| -------------| -----------------------------------------| --------------------------------------|
13- | openim-admin | 管理后台,提供监控页面入口 | Docker和源码部署均自动开启 |
14- | prometheus | 用于收集和存储指标数据的监控系统组件 | Docker部署自动开启;源码部署需手动启用 |
15- | alertmanager | 管理和发送告警的组件 | Docker部署自动开启;源码部署需手动启用 |
16- | grafana | 用于展示监控数据的仪表板组件 | Docker部署自动开启;源码部署需手动启用 |
17- | node-exporter | 用于采集节点(如服务器)指标信息 | Docker部署自动开启;源码部署需手动启用 |
18-
12+ | prometheus | 用于收集和存储指标数据的监控系统组件 | 需手动启用 |
13+ | alertmanager | 管理和发送告警的组件 | 需手动启用 |
14+ | grafana | 用于展示监控数据的仪表板组件 | 需手动启用 |
15+ | node-exporter | 用于采集节点(如服务器)指标信息 | 需手动启用 |
1916
17+ ## 启动方式
2018
19+ 目前` OpenIM ` 使用的监控告警组件为` prometheus ` 、` alertmanager ` 、` grafana ` 、` node_exporter ` 。在使用` docker compose up -d ` 启动组件时,默认** 不会** 启动监控组件。如需启动监控组件,需要使用命令为:
2120
21+ ``` sh
22+ docker compose --profile m up -d
23+ ```
2224
25+ > 注意:以上方式不适用于windows系统。如果需要在windows系统中启用监控组件,需要自行修改docker-compose.yml中监控组件的网络模式,并映射相应的端口,最后将prometheus.yml中的` 127.0.0.1 ` 替换为内网ip地址。
2326
24- ## 配置文件说明
27+ ## 配置文件和告警说明
2528
2629
2730| 文件名称 | 文件说明 | 修改项 |
@@ -33,28 +36,44 @@ docker compose部署时,会自动部署如下组件,如使用源码部署,
3336| config/email.tmpl| 邮件告警模版 | 默认邮件模版,可自行修改 |
3437| config/grefana-template/Demo.json| 自定义dashboard | 无需修改 |
3538
36-
37- ## 配置文件和告警说明
38-
39- 1 . prometheus.yml 文件说明:主要用来配置告警规则文件路径,告警管理服务地址,抓取监控数据ip地址。需要把其中所有的` internal_ip ` 替换为自己的私网ip地址。如下:
40-
39+ 1 . prometheus.yml 文件说明:主要用来配置告警规则文件路径,告警管理服务地址,抓取监控数据ip地址。
4140 ``` yaml
4241 # Alertmanager configuration
42+ global :
43+ scrape_interval : 15s # prometheus抓取指标数据间隔时间
44+ evaluation_interval : 15s # prometheus评估规则间隔时间
45+
4346 alerting :
4447 alertmanagers :
4548 - static_configs :
46- - targets : ['192.168.0.1:19093']
49+ - targets : [127.0.0.1:19093] # alertmanager 组件地址
50+
51+ rule_files :
52+ - instance-down-rules.yml # 告警规则配置地址
53+
54+ scrape_configs :
55+ # The job name is added as a label "job=job_name" to any timeseries scraped from this config.
56+ # Monitored information captured by prometheus
57+
58+ # prometheus fetches application services
59+ - job_name : node_exporter
60+ static_configs :
61+ - targets : [ 127.0.0.1:20500 ] # node_exporter地址
62+
63+ - job_name : openimserver-openim-api
64+ http_sd_configs :
65+ - url : " http://127.0.0.1:10002/prometheus_discovery/api" # api数据抓取地址
4766
4867 ...
4968 ```
50-
69+
5170 如果需要添加告警文件,需要在` rule_files ` 下添加。默认告警文件为` instance-down-rules.yml ` 。
52-
53- 2 . 邮件告警架构说明图:Prometheus组件加载告警规则instance-down-rules.yml文件,将符合条件的告警信息发送到alertmanager组件,alertmanager组件加载alertmanager.yml和email.tmpl文件,通过配置的告警邮箱信息和邮件模版发送邮件
71+
72+ 3 . 邮件告警架构说明图:Prometheus组件加载告警规则instance-down-rules.yml文件,将符合条件的告警信息发送到alertmanager组件,alertmanager组件加载alertmanager.yml和email.tmpl文件,通过配置的告警邮箱信息和邮件模版发送邮件
5473
5574 ![ PC Web Interface] ( ./assets/alert2.png )
5675
57- 3 . 告警规则instance-down-rules.yaml文件说明:默认实现了两条(instance_down,database_insert_failure_alerts)邮件告警规则,如果增加告警规则可以在instance-down-rules.yml文件中添加规则。
76+ 4 . 告警规则instance-down-rules.yaml文件说明:默认实现了两条(instance_down,database_insert_failure_alerts)邮件告警规则,如果增加告警规则可以在instance-down-rules.yml文件中添加规则。
5877
5978 ``` yaml
6079 groups :
@@ -81,17 +100,17 @@ docker compose部署时,会自动部署如下组件,如使用源码部署,
81100 description : " Either MsgInsertRedisFailedCounter or MsgInsertMongoFailedCounter has increased in the last 5 minutes, indicating failures in message insert operations to Redis or MongoDB,maybe the redis or mongodb is crash."
82101 ` ` `
83102
84- 4 . 告警管理alertmanager.yml文件说明:修改发送者和接收者邮箱配置信息,即可接收告警信息,如果想实现钉钉,企业微信等方式的告警通知,需要自行改写alertmanager.yml,可以参阅告警管理模块官方文档:https://prometheus.io/docs/alerting/latest/alertmanager/
103+ 5 . 告警管理alertmanager.yml文件说明:修改发送者和接收者邮箱配置信息,即可接收告警信息,如果想实现钉钉,企业微信等方式的告警通知,需要自行改写alertmanager.yml,可以参阅告警管理模块官方文档:https://prometheus.io/docs/alerting/latest/alertmanager/
85104
86105 ` ` ` yaml
87106 global :
88107 resolve_timeout : 5m
89- smtp_from : alert@openim.io # 告警信息发送邮箱
90- smtp_smarthost : smtp.163.com:465 # 发送邮箱smtp地址
91- smtp_auth_username : alert@openim.io # 发送邮箱授权用户名,一般和smtp_from邮箱相同
92- smtp_auth_password : YOURAUTHPASSWORD # 发送邮箱授权码
108+ smtp_from : your_email # 告警信息发送邮箱
109+ smtp_smarthost : your_smtp_addr # 发送邮箱smtp地址
110+ smtp_auth_username : your_username # 发送邮箱授权用户名,一般和smtp_from邮箱相同
111+ smtp_auth_password : your_password # 发送邮箱授权码
93112 smtp_require_tls : false
94- smtp_hello : openim alert
113+ smtp_hello : hello
95114
96115 templates :
97116 - /etc/alertmanager/email.tmpl # 邮件模版
@@ -111,7 +130,7 @@ docker compose部署时,会自动部署如下组件,如使用源码部署,
111130 send_resolved : true # 告警解决时是否发送通知
112131 ` ` `
113132
114- 5 . 邮件模版文件email.tmpl说明:此文件是html格式,告警管理模块会填充里面的变量信息,然后渲染成html格式文件,进行邮件的发送,可根据需求自行改写:
133+ 6 . 邮件模版文件email.tmpl说明:此文件是html格式,告警管理模块会填充里面的变量信息,然后渲染成html格式文件,进行邮件的发送,可根据需求自行改写:
115134
116135 ` ` ` tmpl
117136 {{ define "email.to.html" }}
@@ -158,18 +177,22 @@ docker compose部署时,会自动部署如下组件,如使用源码部署,
158177
159178在浏览器中输入 ` http://ip:11002 ` 来访问管理后台。此 IP 为服务端 OPENIM_IP,确保您的浏览器能访问。默认账号和密码均为 chatAdmin
160179
161-
162180import Image4 from ' ./assets/admin.jpg' ;
163181
164182<img src = { Image4 } width = " 700" alt = " admin " />
165183
166184
185+
167186## 登录grafana
187+
168188先登录管理后台,再点击左侧数据监控菜单,输入默认用户名(admin)和密码(admin)登入grafana.
189+
190+ 也可以直接访问` your_ip:13000 ` 进行访问,将` youre_ip ` 改为部署机器的ip地址。
191+
169192![ PC Web Interface] ( ./assets/login1.png )
170193
171194## 添加Prometheus数据源
172- 如下图,输入Prometheus数据源的URL: http://172.28.0.1 :19090 (19090为Prometheus默认端口) 点击"Save and Test"保存.
195+ 如下图,输入Prometheus数据源的URL: http://your_ip :19090 (19090为Prometheus默认端口) 点击"Save and Test"保存.
173196![ PC Web Interface] ( ./assets/database.png )
174197
175198
@@ -223,16 +246,11 @@ node-exporter指标信息,如下图
223246
224247
225248
226-
227249## 告警体验
228- 可手动触发instancedown告警规则,如果是源码部署openim方式,执行 ` make stop ` 命令停止openim-server服务,等待5m分钟以上,即可收到告警邮件,内容如下:
229250
230- ![ PC Web Interface ] ( ./assets/alert6.png )
251+ 可手动触发instancedown告警规则,如果是源码部署openim方式,执行 ` mage stop ` 命令停止 ` open-im-server ` 服务,等待1m分钟以上,即可收到告警邮件,内容如下:
231252
232- ## 日志系统
233- 如果是在k8s环境通过helm chart方式部署的OpenIM服务,即通过grafana查看OpenIM所有服务的日志信息。
234- 目前二进制和docker部署没有集成loki日志收集组件,想体验loki日志收集功能,请采用helm chart部署,
235- 详情请查阅链接https://github.com/openimsdk/helm-charts/blob/main/docs/user-guide-zh.md
253+ ![ PC Web Interface] ( ./assets/alert6.png )
236254
237255## ** 自定义prometheus指标配置**
238256
@@ -273,13 +291,3 @@ rpc_count
273291```
274292
275293即可查询到指标信息。
276-
277-
278- ## 常见问题
279-
280- 1 . ` docker compose up -d ` 启动后,` prometheus ` 容器一直重启。
281-
282- prometheus容器没启动成功一般是两个原因:
283-
284- 1 . 没有在` prometheus.yml ` 中配置内网ip。
285- 2 . 第一次启动` prometheus ` 容器时可能会遇到权限问题,在` open-im-server ` 项目下运行` chmod -R 777 components ` 后重新启动容器即可。
0 commit comments