Skip to content

Commit 0dc4628

Browse files
authored
Merge pull request #225 from icey-yu/feat-doc
feat: doc
2 parents 1f66b80 + 1f227d3 commit 0dc4628

18 files changed

Lines changed: 296 additions & 420 deletions
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"position": 2,
3-
"label": "快速开始",
3+
"label": "快速部署",
44
"collapsible": true,
55
"collapsed": true
66
}
556 KB
Loading

docs/guides/gettingStarted/admin.mdx

Lines changed: 54 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,30 @@
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-
162180
import 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`后重新启动容器即可。

docs/guides/gettingStarted/cluster.mdx

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
2-
title: '源码集群部署指南'
3-
sidebar_position: 6
2+
title: '集群部署-源码'
3+
sidebar_position: 5
44
---
55

66

@@ -9,13 +9,15 @@ sidebar_position: 6
99
## open-im-server 源码集群部署指南
1010

1111
本指南将指导您在两台机器(A 和 B,内网 IP 分别为 `IP_A``IP_B`)上集群部署 `open-im-server``nginx`,并在机器 A 上部署监控组件(Prometheus、Grafana、Alertmanager)。
12-
假设您已部署 Redis 集群、MongoDB 分片集群、Kafka 集群及 Etcd 集群,具体地址如下:
12+
此文档中假设您已部署 Redis 集群、MongoDB 分片集群、Kafka 集群及 Etcd 集群,具体地址如下:
1313

1414
- **Redis 集群地址**: `redisAddr1`, `redisAddr2`, `redisAddr3`
1515
- **MongoDB 集群地址**: `mongoAddr1`, `mongoAddr2`, `mongoAddr3`
1616
- **Kafka 集群地址**: `kafkaAddr1`, `kafkaAddr2`, `kafkaAddr3`
1717
- **Etcd 集群地址**: `etcdAddr1`, `etcdAddr2`, `etcdAddr3`
1818

19+
本文假设以上组件都部署在三台机器上,实际上不限于三台,您可根据需求自行选择多台或者一台。
20+
1921
此外,MinIO 的内部服务访问地址配置为 `your_minio_internal_address`,外部访问地址配置为 `your_minio_external_address`
2022
A 和 B 两台机器以及组件集群内网互通,且A、B两台机器都有外网IP。
2123

@@ -107,7 +109,7 @@ events {
107109
}
108110
109111
http {
110-
# open-im-server
112+
# open-im-server
111113
upstream msg_gateway {
112114
server IP_A:10001;
113115
server IP_B:10001;
@@ -126,14 +128,6 @@ http {
126128
ssl_certificate /usr/local/nginx/conf/ssl/your_domain_bundle.pem; # 替换为您的证书路径
127129
ssl_certificate_key /usr/local/nginx/conf/ssl/your_domain.key; # 替换为您的证书密钥路径
128130
129-
gzip on;
130-
gzip_min_length 1k;
131-
gzip_buffers 4 16k;
132-
gzip_comp_level 2;
133-
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png application/wasm;
134-
gzip_vary off;
135-
gzip_disable "MSIE [1-6]\.";
136-
137131
location ^~/api/ {
138132
proxy_http_version 1.1;
139133
proxy_set_header Upgrade $http_upgrade;
@@ -166,8 +160,6 @@ http {
166160

167161
将此配置添加到 `nginx` 的配置文件中, 并reload使配置生效:
168162

169-
170-
171163
### 4. 设置 DNS
172164

173165
将您的域名 `your_domain.com` 指向机器A、B的外网 IP 地址。
@@ -201,6 +193,8 @@ mage start
201193

202194

203195

196+
197+
204198
## **常见问题/注意事项**
205199

206200
1. 部署`kafka`时,需要修改`kafka`广播的端口。如果使用`open-im-server`中的`docker-compose.yml`部署,修改`service.kafka.environment.KAFKA_CFG_ADVERTISED_LISTENERS`中的`EXTERNAL`为访问`kafka`组件的地址。其他部署方式请自行修改。

0 commit comments

Comments
 (0)