第一次模拟考

日常维护

1. 修改 es jvm 内存选项

# 登录 es 所在机器,打开 es 的jvm配置文件
vim /etc/elasticsearch/jvm.options

修改如下两行即可。
# Xms represents the initial size of total heap space
# Xmx represents the maximum size of total heap space
-Xms8g
-Xmx8g

2. 修改 job 内存选项

# 登录 job 所在机器,以下文件含有 job 各个服务的 jvm 内存配置。
ls /etc/sysconfig/ |grep job
bk-job-analysis
bk-job-backup
bk-job-config
bk-job-crontab
bk-job-execute
bk-job-gateway
bk-job-logsvr
bk-job-manage

3. 为 consul 配置 ui 界面

# 修改 nginx 所在机器的 consul 的配置文件,在 json 中添加一项 "ui": true,
vim /etc/consul.d/consul.json
{
    "bind_addr": "10.0.6.54",
    "log_level": "info",  # 添加该行
    "ui": true,
    "log_file": "/var/log/consul/consul.log",
    "datacenter": "dc",
    "data_dir": "/var/lib/consul",
    "node_name": "bkce-6-54",
    "disable_update_check": true,
    "enable_local_script_checks": true,
    "encrypt": "d0lSRmFPSGVYQksyel9uT2NlcldoNVRRVzRQNlozQnQ=",
    "ports": {
        "dns": 53,
        "http": 8500
    }
}
# 重启服务
systemctl restart consul
# 测试,服务返回状态码为:301
curl -v  http://127.0.0.1:8500

4. 为 consul ui 配置 nginx 反向代理

# 添加配置文件
vim /usr/local/openresty/nginx/conf/conf.d/consul.conf
server {
    listen 80; # 监听端口
    server_name  consul.bkce-603.com; # server_name 配置自己的域名即可。

    client_max_body_size    512m;
    access_log  /data/bkce/logs/nginx/consul_ui.log;
    location / {
        proxy_pass http://localhost:8500;  # 转发到本地 8500 端口
        proxy_pass_header Server;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Host $http_host;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_read_timeout 600;
    }

}
# 重启服务
systemctl restart openresty.service

5. 配置 nginx 的 basic auth 验证。

首先安装 httpd-tools,因为我们需要使用 htpasswd 工具。

yum install -y httpd-tools

使用 htpasswd -c -d file username 生产密码文件。重复输入两次你需要配置的密码后,文件生成。

# htpasswd -c -d /data/pass_file consul
New password: 
Re-type new password: 
Adding password for user consul

6. 配置 nginx 的 basic auth。

修改配置文件 /usr/local/openresty/nginx/conf/conf.d/consul.conf 在 server 段添加即可 auth_basicauth_basic_user_file 即可。

server {
    listen 80; # 监听端口
    server_name  consul.bkce-603.com; # server_name 配置自己的域名即可。

    client_max_body_size    512m;
    access_log  /data/bkce/logs/nginx/consul_ui.log;
    auth_basic    "consul"; # 开启 auth_basic
    auth_basic_user_file  /data/pass_file; # 指向生成的密码文件
    location / {
        proxy_pass http://localhost:8500;
        proxy_pass_header Server;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Host $http_host;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_read_timeout 600;
    }

}

重启服务

systemctl restart openresty.service

日志分析

1. 过滤日志的: IP 请求方法 URL useragent

cat paas_web_access.log |head -10 |awk '{printf "%s %s %s ",$1,$6,$7} { for (i=12;i<=(NF-1);i++){if(i<(NF-1)){printf "%s ",$i}else{print $i}}}' > 1.txt

2. 结果中统计IP+url+useragent相同访问次数,并输出统计次数、IP、URL、useragent

cat paas_web_access.log |head -10 |awk '{printf "%s %s ",$1,$7} { for (i=12;i<=(NF-1);i++){if(i<(NF-1)){printf "%s ",$i}else{print $i}}}' | sort | uniq -c

3. 查看当前系统所有 TCP 连接中各种状态的连接数

netstat -tnp |awk 'NR>2{++S[$6]} END{for (i in S) print i,S[i]}'
netstat -tnp |awk '/^tcp/{++S[$6]} END{for (i in S) print i,S[i]}'

集群扩容

1. 安装 mysql 和 consul

在节点机器添加蓝鲸的 yum 源。

# 蓝鲸 yum 信息
cat /etc/yum.repos.d/Blueking.repo
[bk-custom]
name=Blueking
baseurl=http://10.0.6.53:8080 # ip 为中控机
enabled=1
gpgcheck=0

# 在节点机器添加同样文件即可,手动添加或者 scp 过去都行。
# 刷新仓库信息
yum makecache

# 安装 mysql
yum install -y  mysql-community-server

# 安装 consul
yum install -y consul

2. 配置 mysql

启动 mysql

# 启动 mysql
systemctl start mysqld 
# 找到 mysql 预先设置的密码
grep password /var/log/mysqld.log 
# 第一时间修改密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new pass'; 

配置主从同步,修改配置文件

[mysqld]
log-bin=/var/lib/mysql/mysql-bin # 开启binlog
server-id=2 # 配置 server-id 需要唯一
slave-skip-errors = all # 跳过主从复制出现的错误

重启服务

systemctl restart mysqld

同步数据,配置主从。

以下为主库操作

# 在主库备份
mysqldump [-u user] [-p password] --routines --single_transaction --master-data=2 --all-databases  > all.sql
# --routines:导出存储过程和函数
# --single_transaction:导出开始时设置事务隔离状态,并使用一致性快照开始事务,然后unlock tables;而lock-tables是锁住一张表不能写操作,直到dump完毕。
# --master-data:默认等于1,将dump起始(change master to)binlog点和pos值写到结果中,等于2是将change master to写到结果中并注释。

# 创建同步使用的账号
mysql> grant all on *.* to 'sync'@'{此处修改为主库ip}' identified by 'sync';

以下为从库操作

# 从库导入数据
mysql [-u user] [-p password] < all.sql

# 查看 all.sql 文件中的 binlog 和 pos 的值
head -25 all.sql


# 配置主从
mysql> change master to master_host='172.27.16.17',
    -> master_user='sync',
    -> master_password='sync',
    -> master_log_file='mysql-bin.000002', 
    -> master_log_pos=126887216;
mysql> start slave;
mysql> show slave status\G

如果 Slave_IO_RunningSlave_SQL_Running 显示为 Yes,就成功了。

3. 配置 consul

找一台蓝鲸的机器:

# 将如下三个配置文件
scp /etc/consul.d/{auto_join.json,consul.json,recursors.json}  {新节点ip}:/etc/consul.d/

新节点机器:

# 修改复制过来的配置文件
vi /etc/consul.d/consul.json

{
    "bind_addr": "10.0.6.36", # 修改 bind 为自己 ip 地址
    "log_level": "info",
    "log_file": "/var/log/consul/consul.log",
    "datacenter": "dc",
    "data_dir": "/var/lib/consul",
    "node_name": "bktest-6-36", # 修改节点名称
    "disable_update_check": true,
    "enable_local_script_checks": true,
    "encrypt": "d0lSRmFPSGVYQksyel9uT2NlcldoNVRRVzRQNlozQnQ=",
    "ports": {
        "dns": 53,
        "http": 8500
    }
}

# 启动 consul 服务
nohup consul agent -config-dir=/etc/consul.d -config-dir=/etc/consul.d/service >> /var/log/consul/consul.log 2>&1 &

添加 mysql-bak 服务

# 添加 mysql-bak 配置文件
vi /etc/consul.d/service/mysql.json

{
  "service": {
    "id": "mysql-bac-test-test",
    "name": "mysql-bak",
    "address": "10.0.6.36",
    "port": 3306,
    "check": {
      "tcp": "10.0.6.36:3306",
      "interval": "10s",
      "timeout": "3s"
    }
  }
}

# 重新加载
consul reload

验证

sed -i '1a nameserver 127.0.0.1' /etc/resolv.conf 

dig mysql-bak.service.consul
posted @ 2021-05-19 15:21  金元  阅读(67)  评论(0编辑  收藏  举报