部署维护
部署维护
基础部署
\1. 部署社区版 6.0.3 的基础包以及监控日志包,请提前修改域名为 bkce-{考试 id}.com,paas 平台 admin 密码为 bkce-{考试 id}。
日常维护
\1. 内存修改
- 
修改 es 的 jvm 最大堆和最小堆,分别设置为 2G 2G # 需要修改/etc/elasticsearch/jvm.options文件中Xms、Xmx大小 -Xms2g -Xmx2g
- 
修改 job-gateway 的 jvm 最大堆和最小堆,分别设置为 1G 1G cat /usr/lib/systemd/system/bk-job-gateway EnvironmentFile=-/etc/sysconfig/bk-job-gateway # 获取job启动文件调用文件 cat /etc/sysconfig/bk-job-gateway JAVA_OPTS="-Xms1024m -Xmx1024m"
\2. 为 consul 配置 ui 界面,配置成功后 curl http://127.0.0.1:8500 应该返回 302。
# 开启ui
1 选择部署 nginx 的服务器,修改 consul 的启动命令行参数 (/etc/sysconfig/consul),在 CMD_OPTS 中追加命令行参数 -ui
2 重启 consul: systemctl restart consul
3 验证是否生效:curl -sL http://127.0.0.1:8500/ | grep CONSUL_VERSION 如果有返回说明 webUI 正常开启
# 配置nginx 302
cat /usr/local/openresty/nginx/conf/conf.d
server {
    listen 80;
    server_name  consul.bkce-6.com;
    access_log /data/bkce/logs/nginx/consul_ui_access.log main;
  location / { 
    proxy_pass http://127.0.0.1:8500;
  }
}
 # 重新加载nginx   
 systemctl reload openresty
\3. 使用 nginx 配置反向代理,代理至 consul ,域名设置为 consul.bkce-{考试 id}.com,端口为 80。
\4. 为 nginx consul 页面配置 nginx auth 认证,账号为 consul 密码为 bkce-{考试 id}。
server {
    listen 80;
    server_name  consul.bkce-6.com;
    access_log /data/bkce/logs/nginx/consul_ui_access.log main;
    auth_basic "Input Password:";
    auth_basic_user_file  "/opt/pass";
  location / {
    proxy_pass http://127.0.0.1:8500;
  }
}
[root@proxy ~]# yum -y install  httpd-tools
[root@proxy ~]# htpasswd -c /opt/pass   tom        # 创建密码文件
日志分析
新建
/data/awk目录,以下题目的 执行语句与输出内容均放到该目录下。1.txt 2.txt 3.txt
分析 nginx 的 access_web_paas 日志
\1. 过滤日志的: IP 请求方法 URL useragent 。
cat paas_web_access.log | awk -F '"' '{print $6}' > /data/awk/1.txt
\2. 结果中统计IP+url+useragent相同访问次数,并输出统计次数、IP、URL、useragent。
sed -r 's/\[.*\]/ /g' paas_web_access.log | awk -F '"' '{print $1,$4,$6}' | uniq -c | sort -k1 -rn
\3. 查看当前系统所有 TCP 连接中各种状态的连接数。
netstat -tan|awk '$1~/tcp/{print $NF}'|sort|uniq -c|sort -nr
脚本编写
编写的脚本均放到
/data/shell/目录下。1.sh 2.sh
\1. 写一个脚本,
#!/bin/bash
 
for i in `seq 1 255`
do
        ping -c 1 10.0.6.$i &>/dev/null
        if [ $? -eq 0 ]
        then
                echo -e "10.0.6.$i is up."
        fi
done
#!/bin/bash
rpm -ivh | grep nmap
if [ $? != 0 ]
then
    yum -y install nmap
fi
nmap 10.0.6.0/23
\2. 脚本支持参数两个正整数,输出 N-M 的累加值(N-M 代表俩个参数),若是参数不符合,输出错误。
#! /bin/bash
read -p "Please enter the starting number :"  star
read -p "Please enter the ending number :"  end
count(){
sum=0
for i in `seq $star $end`; do
    sum=$(($sum + $i))
done
echo $sum
}
if expr $star + 1 &>/dev/null && expr $end + 1 &>/dev/null
then
	count
else
	echo "请输入整数"
fi
第三题脚本写在 nginx 所在服务器的 nginx 日志目录,新生成的目录就放在 nginx 日志目录。
\3. 实现 nginx 日志切割,脚本执行时切割备份 nginx 日志,生成当前时间 年-月-日:时:分:秒 格式的目录,并将切割的日志放到该目录下,脚本不能影响 nginx 正常运行,不能丢失任何日志内容。
#!/bin/bash
LOGS_PATH=/data/bkce/logs/nginx
CUR_LOGS_PATH=/data/bkce/logs/nginx
YESTERDAY=$(date "+%Y-%m-%d:%H:%M:%S")  
mkdir /data/bkce/logs/nginx/$YESTERDAY
cp $CUR_LOGS_PATH/paas_web_access.log $LOGS_PATH/${YESTERDAY}/
节点扩容
以下操作均需要手动完成,不能借用蓝鲸现有脚本。
\1. 在新给到的机器上安装 consul ,并且加入到蓝鲸的 consul 集群,身份为 client。
1 安装consul(中控机下获取安装包)
#中控机器执行
cd /data/src/yum/
scp consul-* root@10.0.7.6:/opt
cd /etc/consul.d/
scp * root@10.0.7.6:/etc/consul.d/
#新机器执行
rpm -ivh /opt/consul-*
2 修改consul配置文件
[root@AGENT-7-6 consul.d]# cat /etc/consul.d/consul.json 
{
    "bind_addr": "10.0.7.6",
    "log_level": "info",
    "log_file": "/var/log/consul/consul.log",
    "datacenter": "dc",
    "data_dir": "/var/lib/consul",
    "node_name": "AGENT-7-6", # 修改为当前主机名,避免冲突
    "disable_update_check": true,
    "enable_local_script_checks": true,
    "encrypt": "YThoUFlFcnlaYmFzaTlPUWlGUEp3Ynd3VVRKcWZYWTM=",
    "ports": {
        "dns": 53,
        "http": 8500
    }
}
3 加入集群
[root@AGENT-7-6 consul.d]# cat auto_join.json 
{
    "retry_join": ["10.0.6.22","10.0.6.30","10.0.6.27","10.0.7.6"]
    # 在中括号中添加当前主机IP
}
4 配置文件授权
chmod -R 777 /var/lib/consul/
chmod -R 777 /etc/consul.d/
5 启动consul
systemctl start consul
systemctl status consul
6 验证consul集群
yum install bind-utils -y  # dig安装
[root@AGENT-7-6 consul]# dig consul.service.consul
consul.service.consul.	0	IN	A	10.0.6.27
consul.service.consul.	0	IN	A	10.0.6.30
consul.service.consul.	0	IN	A	10.0.6.22
consul.service.consul.	0	IN	A	10.0.7.6
\2. 在新机器上安装 mysql
1 安装consul(中控机下获取安装包)
#中控机器执行
cd /data/src/yum/
scp mysql-community-*  root@10.0.7.6:/opt
#新机器执行
rpm -ivh mysql-community-* --nodeps --force
\3. 配置 mysql 为蓝鲸 mysql 的从库,并且同步数据。
- 修改my.cnf文件,配置server_id 、开启binlog
# master 库操作 (可选,默认开启)
# ./01-generate/dbadmin.env:BK_MYSQL_ADMIN_USER=root
#./01-generate/dbadmin.env:BK_MYSQL_ADMIN_PASSWORD=T2ISfGKoMERY  #获取mysql密码
$ cat /etc/mysql/default.my.cnf
···
server-id=1    # master 及 slave 不可重复
log-bin=mysql-bin    # 开启binlog
···
$ cd /data/bkce/service/mysql/bin/
$ ./mysql.sh restart    # 通过启动脚本重启MySQL
# slave 库操作
$ grep 'password' /var/log/mysqld.log |head -n1 #获取mysql默认密码
$ cat /etc/my.cnf
...
server-id=2
log-bin=mysql=bin
...
$ systemctl start mysqld
- 主库创建同步用户
$ mysql --login-path=default-root   # 登录mysql
grant replication slave on *.* to 'replica'@'172.21.1.%' identified by '123456';
flush privileges;
- 数据库全备并 导入从库
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Test123.';  #修改数据库密码(可选)
$ mysqldump -uroot -p -A >all_back.sql    # -A --all-databases
$ scp all_back.sql 172.21.1.1:~    # 推送至从库主机
# 从库主机操作
$ mysql -uroot -p < /root/all_back.sql
- 获取master状态
flush table with read lock;    # 为了备份数据的统一, 开启全局锁
UNLOCK TABLES;       # 关闭全局锁
show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000006 | 17896381 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
- 从库配置同步binlog
$ mysql -uroot -p
change master to 
master_host='172.21.1.1',   # 主库地址
master_user='replica', 
master_password='123456', 
master_log_file='mysql-bin.000006',    # 需要与主库获取到的一致
master_log_pos=17896381;   # 同上
start slave;   # 开启同步
show salve status\G   # 查看是否成功
# 主要观察以下两个参数是否为Yes
Slave_IO_Running: Yes     
Slave_SQL_Running: Yes
\4. 将 mysql-slave 注册到 consul 的服务里面,并且配置健康检测。
$ cat /etc/consul.d/service/mysql-default.json
{
  "service": {
    "id": "mysql-default-e91348fe-a899-11eb-9b47-005056a20237",
    "name": "mysql-default",
    "address": "10.0.7.6",  # 当前主机地址
    "port": 3306,
    "check": {
      "tcp": "10.0.7.6:3306",
      "interval": "10s",
      "timeout": "3s"
    }
  }
}   # 添加mysql到consul
$ dig mysql-default.service.consul
mysql-default.service.consul. 0	IN	A	10.0.6.27
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号