/cdnflydadao

CDN

Primary LanguageShell

更新说明:更新v5.1.13版本主控
感谢大表哥提供主控和节点服务器特此广告:

1.主控服务器
web目录为验证文件,请自行搭建
0.0.0.0改成(自己搭建的验证服务器Ip)
vi /etc/hosts
0.0.0.0  auth.cdnfly.cn monitor.cdnfly.cn
0.0.0.0  auth.cdnfly.cn monitor.cdnfly.cn
2.主控
v5.1.11版本安装脚本:
curl -fsSL https://github.com/LoveesYe/cdnflydadao/raw/main/master.sh -o master.sh && chmod +x master.sh && ./master.sh --es-dir /home/es

新v5.1.13版本安装脚本:

curl -fsSL https://github.com/LoveesYe/cdnflydadao/raw/main/cdnfly/v5.1.13/master/master.sh -o master.sh && chmod +x master.sh && ./master.sh --es-dir /home/es

3.被控
v5.1.15版本安装脚本:
curl -fsSL -m 5 https://github.com/LoveesYe/cdnflydadao/raw/main/agent/agent.sh -o agent.sh || curl -m 5 https://github.com/LoveesYe/cdnflydadao/raw/main/agent/agent.sh -o agent.sh  && chmod +x agent.sh && ./agent.sh --master-ver v5.1.11 --master-ip ip --es-ip ip --es-pwd passwd

新v5.1.16版本安装脚本:
curl -fsSL -m 5 https://github.com/LoveesYe/cdnflydadao/raw/main/cdnfly/v5.1.13/agent/agent.sh -o agent.sh || curl -m 5 https://github.com/LoveesYe/cdnflydadao/raw/main/cdnfly/v5.1.13/agent/agent.sh -o agent.sh  && chmod +x agent.sh && ./agent.sh --master-ver v5.1.11 --master-ip ip --es-ip ip --es-pwd passwd

4.
已安装过官方版的开心方法:
执行以下命令完成开心:
wget https://github.com/LoveesYe/cdnflydadao/raw/main/cdnfly/api.py -O /opt/venv/lib/python2.7/site-packages/requests/api.py
supervisorctl -c /opt/cdnfly/master/conf/supervisord.conf reload

如果旧版本要升级,可以先更新自建云端的文件,然后执行“已安装过官方版的开心方法”这一部分的命令,最后在主控后台升级。

云端节点监控功能说明:

监控默认是使用云端服务器去请求CDN节点,因此要保持云端和CDN节点之间的网络畅通。另外如果是用宝塔面板,php不要安装bt_safe扩展,否则无法使用tcp类型监控;如果要用ping类型监控,还需要允许exec函数。
支持多节点监控(和官方一样),要添加其它监控节点,可以编辑config.php配置文件,根据里面的注释说明添加。

修改为你自身安装节点,或使用默认的github节点安装
/opt/cdnfly/master/panel/src/views/system/update/index.html


主控登录地址为: http://主控IP/
管理员账号和密码: admin/cdnfly
普通用户账号和密码: jason/cdnfly

服务器配置要求

主控
1.内存 - 因为主控安装有Elasticsearch,推荐16G及以上,如果网站访问量比较小,8G也行,至少4G。
2.硬盘 - 建议固态硬盘, 同样考虑访问日志大小,推荐100G及以上,量小的话都可以。
3.CPU - CPU至少2核
4.开放80 88 9200端口
节点

1.内存 - 至少2G及以上
2.硬盘 - 根据网站缓存的大小配置
3.CPU - Nginx主要是跑CPU,所以要想访问性能好,CPU尽量好点。
4.开放80 443 5000端口
系统
支持Centos-7---Ubuntu-16.04

官方最新公共
尊敬的cdnfly用户:
目前发现登录安全漏洞,需要及时按照如下方法来临时修复。找-个只有你知道的域名,这个域名用于管理员登录。
如的域名,不用带http://,路径为:系统管理--->系统设置--->用户相关,限制管理员只能从此域名登录


搬迁主控
注意:下面的迁移步骤不包括迁移elasticsearch的数据
1 备份旧主控数据
在旧主控执行如下命令开始备份(注意:备份前会停止旧主控的进程)

cd /root
curl http://us.centos.bz/cdnfly/backup_master.sh -o backup_master.sh
chmod +x backup_master.sh
./backup_master.sh
这时候将在目录/root下,打包生成cdn.sql.gz文件,请把这个文件传输到新主控的/root/目录下,可以使用scp命令,命令如下:

cd /root
scp cdn.sql.gz   root@新主控IP:/root/
2 在新机器安装好主控程序
首先登录cdnfly.cn,更新授权为新主控ip,并清空机器码
登录旧主控机器,执行如下命令查看版本:

grep VERSION_NAME /opt/cdnfly/master/conf/config.py
如下图,版本为v4.1.6:

登录新机器,执行如下命令安装:

curl http://dl.cdnfly.cn/cdnfly/master.sh -o master.sh
chmod +x master.sh
./master.sh --ver v4.1.60
其中v4.1.60替换成自己的主控版本号
3 登录新主控,恢复备份
执行如下命令恢复

cd /root
curl http://us.centos.bz/cdnfly/restore_master.sh -o restore_master.sh
chmod +x restore_master.sh
./restore_master.sh
从旧主控下载/opt/cdnfly/master/conf/config.py上传到新主控覆盖
然后在新主控初始化es,重启新主控
执行如下命令初始化:

cd /tmp
wget us.centos.bz/cdnfly/int_es.sh -O int_es.sh
chmod +x int_es.sh
./int_es.sh /home/es
supervisorctl restart all
其中/var/lib/elasticsearch为es的数据目录,可以更改成其它的,比如/home/es

4 替换节点里的主控IP
一个个登录节点,执行如下命令替换

new_master_ip="这里替换为新主控IP"
sed -i "s/ES_IP =.*/ES_IP = \"$new_master_ip\"/" /opt/cdnfly/agent/conf/config.py
sed -i "s/MASTER_IP.*/MASTER_IP = \"$new_master_ip\"/g" /opt/cdnfly/agent/conf/config.py
sed -i "s/hosts:.*/hosts: [\"$new_master_ip:9200\"]/" /opt/cdnfly/agent/conf/filebeat.yml
logs_path=`awk '/error_log/{print $2}'  /usr/local/openresty/nginx/conf/nginx.conf | sed 's/error.log//'`
if [[ `echo $logs_path | grep ^/ ` != ""  ]];then
    sed -i "s#.*access.log#    - $logs_path/access.log#" /opt/cdnfly/agent/conf/filebeat.yml
    sed -i "s#.*stream.log#    - $logs_path/stream.log#" /opt/cdnfly/agent/conf/filebeat.yml
fi
sed -i "s#http://.*:88#http://$new_master_ip:88#" /usr/local/openresty/nginx/conf/listen_80.conf /usr/local/openresty/nginx/conf/listen_other.conf 
ps aux | grep [/]usr/local/openresty/nginx/sbin/nginx | awk '{print $2}'  | xargs kill -HUP ||  true
supervisorctl restart filebeat
supervisorctl restart agent
supervisorctl restart task

主控更换ip后节点修改命令

new_master_ip="这里替换为主控IP"
(后台系统升级里查看es_pwd密码)
es_pwd="这里替换为es密码"

sed -i "s/ES_IP =.*/ES_IP = \"$new_master_ip\"/" /opt/cdnfly/agent/conf/config.py

sed -i "s/MASTER_IP.*/MASTER_IP = \"$new_master_ip\"/g" /opt/cdnfly/agent/conf/config.py

sed -i "s/hosts:.*/hosts: [\"$new_master_ip:9200\"]/" /opt/cdnfly/agent/conf/filebeat.yml

chattr -i /usr/local/openresty/nginx/conf/ /usr/local/openresty/nginx/conf/listen_80.conf /usr/local/openresty/nginx/conf/listen_other.conf

sed -i "s#http://.*:88#http://$new_master_ip:88#" /usr/local/openresty/nginx/conf/listen_80.conf /usr/local/openresty/nginx/conf/listen_other.conf

chattr +i /usr/local/openresty/nginx/conf/ /usr/local/openresty/nginx/conf/listen_80.conf /usr/local/openresty/nginx/conf/listen_other.conf

sed -i "s/ES_PWD =.*/ES_PWD = \"$es_pwd\"/" /opt/cdnfly/agent/conf/config.py

sed -i "s/password:.*/password: \"$es_pwd\"/" /opt/cdnfly/agent/conf/filebeat.yml

sed -i "s/agent-pwd:.*/agent-pwd: \"$es_pwd\"/" /opt/cdnfly/agent/conf/filebeat.yml

ps aux | grep [/]usr/local/openresty/nginx/sbin/nginx | awk '{print $2}'  | xargs kill -HUP ||  true

supervisorctl -c /opt/cdnfly/agent/conf/supervisord.conf restart filebeat

supervisorctl -c /opt/cdnfly/agent/conf/supervisord.conf restart agent

supervisorctl -c /opt/cdnfly/agent/conf/supervisord.conf restart task