有时候主控是国外的,节点是国内的,国内节点封海外,无法连接国外的主控服务器,这时候可以搭建一个中转服务器来中转连接。
配置中转服务器
登录中转服务器,执行
mkdir -p /data/sh/;
cat > /data/sh/iptables.sh <<'EOF'
master_ip="这里替换为主控ip"
local_ip=`ip ad | grep "inet " | grep -v 127.0.0.1 | head -n 1 | awk '{print $2}' | awk -F'/' '{print $1}'`
sysctl net.ipv4.ip_forward=1
iptables -t nat -A PREROUTING -p tcp --dport 88 -j DNAT --to-destination $master_ip:88
iptables -t nat -A POSTROUTING -p tcp --dport 88 -j SNAT --to-source $local_ip
iptables -t nat -A PREROUTING -p tcp --dport 9200 -j DNAT --to-destination $master_ip:9200
iptables -t nat -A POSTROUTING -p tcp --dport 9200 -j SNAT --to-source $local_ip
EOF
chmod +x /data/sh/iptables.sh;
/data/sh/iptables.sh;
echo "/data/sh/iptables.sh" >> /etc/rc.local;
注意:中转服务器需要与主控和节点都相通,且开通88和9200端口
修改节点配置
登录需要配置中转的节点服务器,执行如下命令
new_master_ip="这里替换为中转服务器IP";
sed -i "s/ES_IP =.*/ES_IP = \"$new_master_ip\"/" /opt/cdnhao/agent/conf/config.py;
sed -i "s/MASTER_IP.*/MASTER_IP = \"$new_master_ip\"/g" /opt/cdnhao/agent/conf/config.py;
sed -i "s/hosts:.*/hosts: [\"$new_master_ip:9200\"]/" /opt/cdnhao/agent/conf/filebeat.yml;
chattr -i /usr/local/openresty/nginx/conf/listen_80.conf /usr/local/openresty/nginx/conf/listen_other.conf ;
chattr -i /usr/local/openresty/nginx/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 ;
ps aux | grep [/]usr/local/openresty/nginx/sbin/nginx | awk '{print $2}' | xargs kill -HUP || true;
supervisorctl -c /opt/cdnhao/agent/conf/supervisord.conf restart filebeat;
supervisorctl -c /opt/cdnhao/agent/conf/supervisord.conf restart agent;
supervisorctl -c /opt/cdnhao/agent/conf/supervisord.conf restart task;