使用Docker容器快速搭建Open Falcon体验环境

一、环境的相关信息

1. 版本信息

Open Falcon v0.3

2. 服务器信息

192.168.112.129

二、实验过程记录

1. 下载相关的Docker镜像,如下所示:

1
2
3
4
docker pull mysql:5.7
docker pull redis:4-alpine3.8
docker pull openfalcon/falcon-plus:v0.3
docker pull openfalcon/falcon-dashboard:v0.2.1

2. 准备配置文件,如下所示:

1
2
mkdir -p /open-falcon
git clone https://github.com/singhwang/falcon-config.git /open-falcon/

3. 启动相关的Docker容器,如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# 清除可能存在的历史数据
rm -rf /tmp/falcon-plus/
rm -rf /home/work/

# 启动mysql容器
docker run -itd \
--name falcon-mysql \
-v /home/work/mysql-data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=test123456 \
-p 3306:3306 \
mysql:5.7

# 初始化mysql数据库
cd /tmp && \
git clone https://github.com/open-falcon/falcon-plus.git && \
cd /tmp/falcon-plus/ && \
git checkout -b v0.3.tag v0.3 && \
for x in `ls ./scripts/mysql/db_schema/*.sql`; do
echo init mysql table $x ...;
docker exec -i falcon-mysql mysql -uroot -ptest123456 < $x;
done

# 启动redis容器
docker run --name falcon-redis -p 6379:6379 -d redis:4-alpine3.8

# 启动falcon plus容器
# 注意:falcon plus容器相当于falcon的沙盒环境,在里面可以启动全套的falcon服务
docker run -itd --name falcon-plus \
--link=falcon-mysql:db.falcon \
--link=falcon-redis:redis.falcon \
-p 8433:8433 \
-p 8080:8080 \
-p 6030:6030 \
-e MYSQL_PORT=root:test123456@tcp\(db.falcon:3306\) \
-e REDIS_PORT=redis.falcon:6379 \
-v /open-falcon/ctrl.sh:/open-falcon/ctrl.sh \
-v /open-falcon/graph/config/cfg.json:/open-falcon/graph/config/cfg.json \
-v /open-falcon/hbs/config/cfg.json:/open-falcon/hbs/config/cfg.json \
-v /open-falcon/judge/config/cfg.json:/open-falcon/judge/config/cfg.json \
-v /open-falcon/transfer/config/cfg.json:/open-falcon/transfer/config/cfg.json \
-v /open-falcon/nodata/config/cfg.json:/open-falcon/nodata/config/cfg.json \
-v /open-falcon/aggregator/config/cfg.json:/open-falcon/aggregator/config/cfg.json \
-v /open-falcon/agent/config/cfg.json:/open-falcon/agent/config/cfg.json \
-v /open-falcon/gateway/config/cfg.json:/open-falcon/gateway/config/cfg.json \
-v /open-falcon/api/config/cfg.json:/open-falcon/api/config/cfg.json \
-v /open-falcon/alarm/config/cfg.json:/open-falcon/alarm/config/cfg.json \
-v /home/work/open-falcon/data:/open-falcon/data \
-v /home/work/open-falcon/logs:/open-falcon/logs \
openfalcon/falcon-plus:v0.3

# 启动falcon的所有服务
docker exec falcon-plus sh ctrl.sh start \
graph hbs judge transfer nodata aggregator agent gateway api alarm

docker exec falcon-plus ./open-falcon check

# 启动falcon dashboard服务
docker run -itd --name falcon-dashboard \
-p 8081:8081 \
--link=falcon-mysql:db.falcon \
--link=falcon-plus:api.falcon \
-e API_ADDR=http://api.falcon:8080/api/v1 \
-e PORTAL_DB_HOST=db.falcon \
-e PORTAL_DB_PORT=3306 \
-e PORTAL_DB_USER=root \
-e PORTAL_DB_PASS=test123456 \
-e PORTAL_DB_NAME=falcon_portal \
-e ALARM_DB_HOST=db.falcon \
-e ALARM_DB_PORT=3306 \
-e ALARM_DB_USER=root \
-e ALARM_DB_PASS=test123456 \
-e ALARM_DB_NAME=alarms \
-w /open-falcon/dashboard openfalcon/falcon-dashboard:v0.2.1 \
'./control startfg'

# 如何停止agent服务
docker exec falcon-plus sh ctrl.sh stop agent

三、参考资料

https://github.com/open-falcon/falcon-plus
http://open-falcon.org/
https://book.open-falcon.org/zh_0_2/
http://open-falcon.org/falcon-plus/
https://www.bookstack.cn/read/open-falcon-v0.2/SUMMARY.md
https://github.com/open-falcon/falcon-plus/issues/606