新增和修改文档
All checks were successful
continuous-integration/drone Build is passing

This commit is contained in:
2025-12-24 21:11:04 +08:00
parent 9bd08c819e
commit cc16f488cb
3 changed files with 206 additions and 124 deletions

View File

@@ -8,6 +8,8 @@
journalctl -xe --no-pager
```
`-f` 持续查看日志
- 显示内核环缓冲区的内容
```bash

17
Docs/Linux查看进程.md Normal file
View File

@@ -0,0 +1,17 @@
> 本位作者:丁辉
# Linux查看进程
- 查看资源占用前 10 的进程
```bash
ps aux --sort=-%mem | awk 'NR==1; NR>1 {print $0 | "head -11"}'
```
或者更简洁的
```bash
ps aux --sort=-%mem | head -11
```

View File

@@ -10,148 +10,211 @@
| 从网关二 | 192.168.1.12 | |
| | | 192.168.1.10 |
## 安装 keepalived
## 开始部署
```bash
yum install -y keepalived
```
1. 安装 keepalived
## 主节点
```bash
yum install -y keepalived
```
**编辑配置文件**
2. **主节点** 和 **从节点** 备份 Keepalived 配置文件
```bash
mv /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak
vi /etc/keepalived/keepalived.conf
```
```bash
mv /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak
```
内容如下
3. **主节点** 编辑配置文件
```bash
! Configuration File for keepalived
global_defs {
router_id LVS_DEVEL # 负载均衡标识, 在局域网内应该是唯一的
}
```bash
vi /etc/keepalived/keepalived.conf
```
#vrrp_script check_health {
# 检测脚本
#script "/etc/keepalived/check_health_status.sh"
# 执行间隔时间
#interval 5
#}
内容如下
vrrp_instance VI_1 {
# 备用状态(当 MASTER 宕机之后根据优先级提升 BACKUP 为 MASTER )
state BACKUP
# 网卡设备名
interface eth0
# 标识虚拟路由器的ID(在局域网内应该是唯一的, 0-255)
virtual_router_id 50
# 优先级
priority 100
# MASTER与BACKUP同步检查的时间间隔
advert_int 1
# 非抢占模式
nopreempt
# 本机IP地址
unicast_src_ip 192.168.1.11
# 对端IP地址
unicast_peer {
192.168.1.12
}
authentication {
# 指定认证方式
auth_type PASS
# 指定认证所使用的密码
auth_pass 1111
}
virtual_ipaddress {
192.168.1.10/24 dev eth0
}
# 路由检测, 通过检测指定的网卡是否存在来判断服务是否正常
track_interface {
eth0
}
# 开启检测脚本
#track_script {
#check_health
#}
}
```
```bash
! Configuration File for keepalived
global_defs {
router_id LVS_DEVEL # 路由器标识区分不同keepalived实例
script_user root # 执行脚本的用户
enable_script_security # 启用脚本安全限制
}
vrrp_script chk_haproxy { # 定义健康检查脚本
script "/usr/bin/killall -0 haproxy" # 检查haproxy进程是否存在
interval 2 # 检查间隔(秒)
weight -20 # 检查失败时优先级减20
fall 2 # 连续2次失败认为节点故障
rise 2 # 连续2次成功认为节点恢复
}
# vrrp_script check_health {
# 检测脚本
# script "/etc/keepalived/check_health_status.sh"
# 执行间隔时间
# interval 5
# }
vrrp_instance VI_1 { # VRRP实例定义
# track_script { # 开启检测脚本
# check_health
# }
# 备用状态(当 MASTER 宕机之后根据优先级提升 BACKUP 为 MASTER)
state BACKUP
# 网卡设备名
interface eth0
# 虚拟路由器ID(1-255),集群内唯一
virtual_router_id 50
# 优先级(1-254),越高越优先
priority 100
# VRRP通告间隔(秒)
advert_int 1
# 非抢占模式
nopreempt
# 本机源IP(单播模式)
unicast_src_ip 192.168.1.11
# 对端IP列表(单播模式)
unicast_peer {
192.168.1.12
}
authentication { # 认证配置
# 认证类型PASS/AH
auth_type PASS
# 认证密码(8位以内)
auth_pass 1111
}
virtual_ipaddress { # 虚拟IP配置
# 192.168.1.10/24 # VIP地址/掩码(单网卡模式)
192.168.1.10/24 dev eth0 # VIP地址/掩码(多网卡模式)
}
track_interface { # 路由检测, 通过检测指定的网卡是否存在来判断服务是否正常
eth0
}
notify_master "/etc/keepalived/notify.sh master" # 成为 master 时执行
notify_backup "/etc/keepalived/notify.sh backup" # 成为 backup 时执行
notify_fault "/etc/keepalived/notify.sh fault" # 故障时执行
}
```
## 从节点
4. **从节点** 编辑配置文件
**编辑配置文件**
```bash
vi /etc/keepalived/keepalived.conf
```
```bash
mv /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak
vi /etc/keepalived/keepalived.conf
```
内容如下
内容如下
```bash
! Configuration File for keepalived
global_defs {
router_id LVS_DEVEL # 路由器标识区分不同keepalived实例
script_user root # 执行脚本的用户
enable_script_security # 启用脚本安全限制
}
vrrp_script chk_haproxy { # 定义健康检查脚本
script "/usr/bin/killall -0 haproxy" # 检查haproxy进程是否存在
interval 2 # 检查间隔(秒)
weight -20 # 检查失败时优先级减20
fall 2 # 连续2次失败认为节点故障
rise 2 # 连续2次成功认为节点恢复
}
# vrrp_script check_health {
# 检测脚本
# script "/etc/keepalived/check_health_status.sh"
# 执行间隔时间
# interval 5
# }
vrrp_instance VI_1 { # VRRP实例定义
# track_script { # 开启检测脚本
# check_health
# }
# 备用状态(当 MASTER 宕机之后根据优先级提升 BACKUP 为 MASTER)
state BACKUP
# 网卡设备名
interface eth0
# 虚拟路由器ID(1-255),集群内唯一
virtual_router_id 50
# 优先级(1-254),越高越优先
priority 50
# VRRP通告间隔(秒)
advert_int 1
# 非抢占模式
nopreempt
# 本机源IP(单播模式)
unicast_src_ip 192.168.1.12
# 对端IP列表(单播模式)
unicast_peer {
192.168.1.11
}
authentication { # 认证配置
# 认证类型PASS/AH
auth_type PASS
# 认证密码(8位以内)
auth_pass 1111
}
virtual_ipaddress { # 虚拟IP配置
# 192.168.1.10/24 # VIP地址/掩码(单网卡模式)
192.168.1.10/24 dev eth0 # VIP地址/掩码(多网卡模式)
}
track_interface { # 路由检测, 通过检测指定的网卡是否存在来判断服务是否正常
eth0
}
notify_master "/etc/keepalived/notify.sh master" # 成为 master 时执行
notify_backup "/etc/keepalived/notify.sh backup" # 成为 backup 时执行
notify_fault "/etc/keepalived/notify.sh fault" # 故障时执行
}
```
```bash
! Configuration File for keepalived
global_defs {
router_id LVS_DEVEL # 负载均衡标识, 在局域网内应该是唯一的
}
5. 配置通知脚本
#vrrp_script check_health {
# 检测脚本
#script "/etc/keepalived/check_health_status.sh"
# 执行间隔时间
#interval 5
#}
```bash
cat > /etc/keepalived/notify.sh <<'EOF'
#!/bin/bash
TYPE=$1
NAME=$2
STATE=$3
case $STATE in
"MASTER")
echo "$(date): 进入MASTER状态虚拟IP已绑定" >> /var/log/keepalived.log
# 可以在这里重启负载均衡器或相关服务
;;
"BACKUP")
echo "$(date): 进入BACKUP状态" >> /var/log/keepalived.log
;;
"FAULT")
echo "$(date): 进入FAULT状态" >> /var/log/keepalived.log
;;
esac
EOF
```
vrrp_instance VI_1 {
# 备用状态(当 MASTER 宕机之后根据优先级提升 BACKUP 为 MASTER )
state BACKUP
# 网卡设备名
interface eth0
# 标识虚拟路由器的ID(在局域网内应该是唯一的, 0-255)
virtual_router_id 50
# 优先级
priority 50
# MASTER与BACKUP同步检查的时间间隔
advert_int 1
# 非抢占模式
nopreempt
# 本机IP地址
unicast_src_ip 192.168.1.12
# 对端IP地址
unicast_peer {
192.168.1.11
}
authentication {
# 指定认证方式
auth_type PASS
# 指定认证所使用的密码
auth_pass 1111
}
virtual_ipaddress {
192.168.1.10/24 dev eth0
}
6. 分配脚本权限
# 路由检测, 通过检测指定的网卡是否存在来判断服务是否正常
track_interface {
eth0
}
# 开启检测脚本
#track_script {
#check_health
#}
}
```
```bash
chmod +x /etc/keepalived/notify.sh
```
## 启动 keepalived
7. 启动 keepalived
```bash
systemctl start keepalived
systemctl enable keepalived
systemctl status keepalived
```
```bash
systemctl start keepalived
systemctl enable keepalived
systemctl status keepalived
```
## 配置健康检测