多点部署的基本步骤与单点部署相同,主要是物理配置、启动方式有所不同
配置要求、压力测试
最低配置要求:Linux服务器:≥3 台,CentOs系统,2核4G;Mysql数据库:≥1 台,2核4G。
压力测试:2核CPU(3.8GH), 4G内存,单点部署,最高峰支持2.8万/分钟的日志并发量。超过3万/分钟后,会出现日志丢失的情况(此压力值测试供参考)
第一步、拉取官网镜像
第二步、创建配置文件
第三步、填写基本配置
以上三步均可参考 单点部署
四、启动主服务,从服务
主服务:主要进行数据分析,数据展示,不接收上报日志; 启动命令:参考单点部署三种启动容器命令
从服务:主要接收上报日志,不进行数据分析,不展示数据;启动slave命令:
监控slave: npm run monitor_slave
埋点slave: npm run event_slave
多行命令如下:
docker run -it --rm -d --name webfunny \
-p 8010:8010 \
-p 8011:8011 \
-v 映射目录:/app/webfunny.config/ \
webfunny/webfunny_monitor:版本号 \
npm run monitor_slave
多点部署,一般配置1主多从。如下图:
五、配置负载均衡
方式一(推荐):让运维同学配置云服务器的负载均衡(SLB),将你的上报域名平均分配到多台从服务器上。
方式二(自己配置):使用Nginx配置负载均衡,用Nginx来分发这些日志上报请求,配置如下:
注:分发只配置从服务器的IP即可
http {
# 分发
upstream myApps {
server 111.222.96.101:8011 weight=1; # weight 是权重,代表分发的比例
server 111.222.96.102:8011 weight=1; # weight 是权重,代表分发的比例
}
# 代理
server {
location /server/upLog {
proxy_pass http://myApps/server/upLog;
proxy_connect_timeout 3000;
proxy_send_timeout 3000;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
}
如此,webfunny监控系统的Docker多点部署就完成了。
注:主服务器可以使用内网域名。