由于网络架构持续变更,系统服务器有需要进行跨区域迁移。为了方便下次迁移,本文特地记录一下迁移的流程,已被不时之需。
服务器购买
尽量买同类型配置,同类型系统,避免不必要的配置。主要关注点包括:
- 内核cpu和内存大小: top
- 硬盘大小配置:df -h
- 系统类型,例如centos7(即使已经不在支持了,但是如果系统稳定,就不要改centos8或者其他Linux版本)
- 统计系统开了多少服务端口,不要漏掉:netstat -tunpl
服务器配置
JDK配置
解压jdk压缩包后配置文件/root/.bash_profile
PATH=$PATH:$HOME/bin
export JAVA_HOME=/root/jdk-11.0.2
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH
Python3.10配置
由于目前使用的是CentOS 7,只支持到Python 3.10。解压python压缩包后
sudo yum update -y
sudo yum install -y epel-release
sudo yum groupinstall 'Development Tools'
sudo yum install -y openssl-devel bzip2-devel libffi-devel xz-devel openssl11-devel zlib-devel sqlite-devel
# Try Python-3.10-13
wget https://www.python.org/ftp/python/3.10.13/Python-3.10.13.tgz
# Unzip
tar -zxvf Python-3.10-13.tgz
cd Python-3.10-13
# Very important to avoid openssl 11 error
sed -i 's/PKG_CONFIG openssl /PKG_CONFIG openssl11 /g' configure
./configure --enable-optimizations
make altinstall
以下是Ubuntu 22中的配置,未测试
sudo apt update
sudo apt install build-essential
未完待续
安装Python成功后,安装python包
pip3 install loguru mysql-connector-python kafka-python pymongo ujson redis-py-cluster flask html5lib lxml requests selenium websockets geoip2 beautifulsoup4 chardet fake-useragent pycryptodome ipaddress pymysql trafilatura -i https://mirrors.aliyun.com/pypi/simple
iptables配置
iptables用来配置dnat网络
# 启动ip转发,切记切记
cat /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/ip_forward
# nat端口转发
iptables -t nat -A PREROUTING -p tcp --dport 12345 -j DNAT --to-destination 192.168.0.60:22
# nat出口转发
# iptables -t nat -A POSTROUTING -j MASQUERADE
# 查看日志
iptables -t nat -I PREROUTING -p tcp --dport 12345 -j LOG --log-prefix "DNAT: " --log-level 1
# 显示nat规则
iptables -t nat -nL --line-numbers
#删除nat表中OUTPUT链中的第一条规则
iptables -t nat -D OUTPUT 1
iptables -t nat -D PREROUTING 15
iptables -t filter -D INPUT 1
nginx安装和配置
使用以下命令安装nginx,配置好nginx.conf以后启动服务。
apt install nginx
nginx -c /root/nginx.conf
Kafka和Zookeeper
在启动kafka前,查看配置信息config/server.properties,注意advertised.listeners和zookeeper.connect中主机名称配置和/etc/hosts中的对应;注意文件夹路径正确。
在启动Zookeeper前,查看配置信息config/zookeeper.properties中主机名称配置和文件夹路径正确。
注意,先启动zookeeper再启动kafka。
nohup ./bin/zookeeper-server-start.sh ./config/zookeeper.properties >>zoo.log 2>&1 &
nohup ./bin/kafka-server-start.sh ./config/server.properties >>kafka.log 2>&1 &
MongoDB集群
在启动MongoDB集群前,查看集群配置文件mongo-shard1.conf中的path、dbPath、keyFile路径正确。
查看集群信息配置文件config-secure.conf中的path、dbPath、keyFile路径正确。
./bin/mongod --config conf/mongo-shard1.conf
./bin/mongod --config conf/mongo-shard2.conf
./bin/mongod --config conf/mongo-shard3.conf
./bin/mongod --config conf/config-secure.conf
启动后,需要按照《从零搭建MongoDB Cluster分片集群》文中的流程初始化分片。随后在1号机上查看mongos.conf配置文件中keyFile、configDB、path信息正确。随后启动mongos:
./bin/mongos --config conf/mongos.conf
启动后,需要按照《从零搭建MongoDB Cluster分片集群》文中连接到mongos服务器上进行分片配置。
分片创建好以后,需要对数据库进行分片配置。
Mysql数据库
首先把mysql/bin加入到path环境变量中。根据配置信息更新配置文件,例如:/etc/my.cnf。配置文件中包括数据路径、日志路径等。
初始化数据库:
mysqld --defaults-file=/etc/my.cnf --initialize-insecure --console --user=root --basedir=/data/mysql-8.0.16 --datadir=/data/mysql-8.0.16/mysql-1/data
mysqld --defaults-file=/etc/my.cnf --initialize-insecure --console --user=root --basedir=/data/mysql-8.0.16 --datadir=/data/mysql-8.0.16/mysql-2/data
启动多数据库:
/data/mysql-8.0/bin/mysqld_multi --defaults-file=/data/test/config/my.cnf --user=root start 3306
/data/mysql-8.0/bin/mysqld_multi --defaults-file=/data/test/config/my.cnf --user=root start 3307
通过查看日志mysqld_multi.log(在配置文件中配置)解决启动问题。
启动后台服务
nohup command >/dev/null 2>&1 &
扫码联系船长