部署维护

部署维护

基础部署

\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

posted @ 2021-05-19 15:23  金元  阅读(118)  评论(0编辑  收藏  举报