1.熟练使用Linux操作系统,包括进程管理(ps/top动态监控)、精细化进程控制(kill)、守护进程(nohup)、日志管理(rsyslog/logrotate)、存储管理(RAID磁盘阵列配置)、权限管理命令(chmod等 )以及rsync增量备份方案。
2.掌握MySQL集群搭建技术,涵盖主主复制、主从复制、GTID复制等数据库防灾技术
3.掌握MySQL物理备份方案(如MySQL XtraBackup热备)与逻辑备份方案(mysqldump全量) ,掌握MyCat常见分片规则,如范围分片、哈希分片等
4.掌握Shell脚本编写,能够独立开发磁盘监控、日志监控、数据备份、免密登录等自动化脚本,提高运维效率。
5.掌握Ansible自动化运维工具,能够编写Playbook实现批量配置和部署,熟悉常用模块如file、copy、service、yum、apt等。
6掌握Nginx反向代理、负载均衡及静态资源服务配置能力,掌握LVS高可用负载均衡,熟悉NAT模式与DR模式,熟练使用基于keepalived实现LVS节点主备切换
7.熟练使用Zabbix、Prometheus、ELK等监控与日志分析系统,能够实现多渠道告警通知、日志收集与可视化展示
8.掌握编写Docker Compose文件,熟悉多容器应用的编排和管理,熟悉Docker的网络模式,熟悉Docker数据卷的类型 。
9.掌握prometheus监控报警框架,实现对系统资源、数据库和中间件的监控,创建Grafana仪表盘,通过图表、表格和图形等可视化组件,展示被监控数据。
10.掌握 k8s容器化编排工具,掌握kubectl命令行工具,实现集群部署、资源部署和状态监控,通过Kubernetes存储卷实现数据的持久化存储,掌握Deployment、Service、Pod等资源对象,熟悉Kubernetes的网络模型,包括Pod网络、Service网络和Ingress网络
中文知识点详细讲解+代码详细验证+ 易错点讲解
1. 熟练使用 Linux 操作系统
1.1 进程管理(ps / top)
ps:显示系统中当前的进程。常见的命令有:
ps aux # 查看系统中所有进程
ps -ef # 显示详细进程信息
ps aux | grep <进程名> # 查找特定进程
易错点:
忘记使用 | 管道符过滤进程,容易错过目标进程。
top:实时监控进程和系统资源(如 CPU 和内存)。
top # 进入 top 交互模式
top -u <用户名> # 查看某个用户的进程
1.2 精细化进程控制(kill)
kill:用来终止进程,常见的命令:
kill -9 <PID> # 强制终止进程
kill -15 <PID> # 优雅终止进程
易错点:
使用 kill -9 会强制杀死进程,可能导致数据丢失或不稳定,建议尽量使用 kill -15 优雅关闭。
1.3 守护进程(nohup)
nohup:使进程在后台运行,不受终端关闭的影响:
nohup <command> & # 后台执行命令
易错点:
忘记加 &,导致命令在前台运行。
1.4 日志管理(rsyslog / logrotate)
rsyslog:配置集中化日志服务,在 /etc/rsyslog.conf 文件中配置。
logrotate:轮换日志以防日志文件过大,配置 /etc/logrotate.conf。
易错点:
配置 logrotate 时,常常遗漏配置文件路径或使用了错误的文件权限,导致日志轮换不生效。
1.5 存储管理(RAID磁盘阵列配置)
配置 RAID 1(镜像模式):
命令:mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda /dev/sdb
易错点:
忘记设置 --raid-devices=2 或设备路径错误,导致 RAID 配置失败。
1.6 权限管理命令(chmod)
chmod:修改文件的读、写、执行权限:
chmod 755 filename # rwx r-x r-x 权限
chmod u+x file # 给文件加执行权限
易错点:
权限理解错误,忘记在正确的用户或组上设置权限,导致访问失败。
1.7 rsync增量备份方案
rsync:用于高效的增量备份,传输数据时会检查源和目标文件的差异。
命令:rsync -avz /source/ /backup/ # 增量备份
易错点:
忘记加上 -a 参数,可能导致文件的权限、时间戳等信息丢失。
2. MySQL 集群搭建技术
2.1 主主复制、主从复制、GTID复制
主从复制:
在主服务器配置(配置文件):
[mysqld]
server-id=1
log-bin=mysql-bin
在从服务器配置(配置文件):
[mysqld]
server-id=2
relay-log=slave-relay-bin
命令:在主服务器上创建复制用户
CREATE USER 'replica'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'replica'@'%';
FLUSH PRIVILEGES;
命令:在从服务器上启动复制
CHANGE MASTER TO
MASTER_HOST='主服务器IP',
MASTER_USER='replica',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=154;
START SLAVE;
GTID 复制:
配置文件:配置 GTID
gtid_mode = ON
enforce-gtid-consistency = true
易错点:
忘记设置 server-id,导致复制无法启动。
在 GTID 配置中没有启用 gtid_mode 或 enforce-gtid-consistency。
3. MySQL 物理与逻辑备份方案
3.1 物理备份(XtraBackup)
使用 XtraBackup 进行热备份:
命令:innobackupex --user=root --password=your_password /path/to/backup/
3.2 逻辑备份(mysqldump)
使用 mysqldump 进行数据库备份:
命令:mysqldump -u root -p --all-databases > all_databases.sql
易错点:
使用 mysqldump 进行全量备份时,忘记加 --all-databases 参数,导致未备份所有数据库。
4. Shell 脚本编写
4.1 磁盘监控脚本
监控磁盘空间并报警:
shell脚本:
#!/bin/bash
df -h | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ if($5 > 90) print $0 }'
4.2 日志监控脚本
实时监控系统日志中的错误信息:
shell脚本:
#!/bin/bash
tail -f /var/log/syslog | grep "ERROR"
4.3 数据备份脚本
自动备份 MySQL 数据库:
shell脚本:
#!/bin/bash
mysqldump -u root -p --all-databases > /backup/db_backup_$(date +\%F).sql
易错点:
忘记给脚本添加执行权限 chmod +x script.sh。
5. Ansible 自动化运维工具
5.1 Playbook 编写
yaml脚本:安装 Nginx
- hosts: webservers
become: yes
tasks:
- name: Install Nginx
yum:
name: nginx
state: present
易错点:
忘记在 Ansible 控制节点上安装 yum 或 apt,导致安装失败。
become: yes 用来提权,如果没有权限,可能会出现错误。
6. Nginx 反向代理与负载均衡
6.1 反向代理配置
配置文件:配置 Nginx 反向代理
server {
listen 80;
location / {
proxy_pass http://backend_servers;
}
}
6.2 负载均衡配置
配置文件:配置 Nginx 负载均衡
upstream backend_servers {
server backend1.example.com;
server backend2.example.com;
}
易错点:
忘记在 nginx.conf 中配置 upstream 块。
7. Zabbix、Prometheus、ELK等监控与日志分析系统
7.1 Prometheus 配置
配置文件:配置 Prometheus 监控 MySQL
scrape_configs:
- job_name: 'mysql'
static_configs:
- targets: ['localhost:9104']
7.2 ELK 配置
配置 Logstash、Filebeat 或 Fluentd 收集日志,配置 Grafana 显示。
易错点:
忘记配置 Prometheus scrape interval,可能导致数据抓取不频繁。
8. Docker Compose 文件编写
8.1 Docker Compose 示例
yaml脚本:编排 Nginx 和应用的多容器环境
version: '3'
services:
web:
image: nginx
ports:
- "80:80"
app:
image: myapp
environment:
- APP_ENV=production
易错点:
Docker Compose 的版本选择不当,导致某些指令无法生效。
9. Prometheus 监控报警框架
9.1 配置 Grafana 仪表盘
配置 Prometheus 数据源并通过 Grafana 创建仪表盘,监控系统资源、数据库等。
易错点:
忘记配置 Prometheus 的 scrape_interval,导致数据抓取不及时。
10. Kubernetes 容器化编排工具
10.1 kubectl 部署应用
命令:使用 kubectl 部署应用
kubectl create deployment myapp --image=myapp:latest
kubectl expose deployment myapp --type=LoadBalancer --port=80
10.2 存储卷配置
yaml脚本:配置 Kubernetes 持久化存储卷(PVC)
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: myclaim
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
易错点:
忘记配置 accessModes 或 resources,导致存储卷无法正确挂载。