配置keepalived的日志文件

本文指导您如何通过编辑sysconfig文件和rsyslog配置来调整Keepalived的运行参数,并确保日志记录正确。通过步骤指引,您将了解如何在系统中设置Keepalived的日志路径,以及如何验证日志是否已成功生成。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一步:vi /etc/sysconfig/keepalived   
        将最后一行KEEPALIVED_OPTIONS="-D" 修改为:KEEPALIVED_OPTIONS="-D -d -S 0"
第二步: vi /etc/rsyslog.conf 
         加入如下配置:
         #keepalived -S 0
         local0.*/var/log/keepalived.log

第三步:重启检查 var/log 里面是否有日志文件


systemctl restart rsyslog.service

<think>我们详细解释Keepalived配置文件的各个部分。Keepalived主要用于实现高可用性(HA)和负载均衡,常见于LVS集群的管理。配置文件通常位于/etc/keepalived/keepalived.conf,其结构主要分为三个部分:全局定义(global_defs)、VRRP实例(vrrp_instance)和虚拟服务器(virtual_server)等。以下是一个典型的Keepalived配置文件的详细介绍:###配置文件基本结构:1.**全局定义(global_defs)**:设置全局参数,如路由ID、通知邮件等。2.**VRRP脚本(vrrp_script)**:定义检查脚本,用于检查应用服务的状态。3.**VRRP实例(vrrp_instance)**:定义VRRP实例,包括状态、接口、虚拟路由ID、优先级、认证、虚拟IP等。4.**虚拟服务器(virtual_server)**:如果使用LVS,则定义虚拟IP和端口,以及后端的真实服务器(real_server)。###示例配置文件及详细注释:```bash!ConfigurationFileforkeepalived#全局定义部分global_defs{#发送通知邮件的SMTP配置notification_email{admin@example.com#设置报警邮件地址,可以多个failover@example.com}notification_email_fromkeepalived@example.com#设置发件人smtp_server127.0.0.1#SMTP服务器地址smtp_connect_timeout30#连接SMTP服务器的超时时间#每个keepalived实例的唯一标识,通常为主机名router_idLVS_DEVEL#对所有通告使用默认的组播地址224.0.0.18,或者指定单播地址对端#vrrp_mcast_group4224.0.0.18#IPv4组播地址(默认)}#定义一个检查脚本,定期执行,用于检查应用状态(例如Nginx)vrrp_scriptchk_nginx{script"/etc/keepalived/check_nginx.sh"#检查脚本路径interval2#每2秒执行一次weight-20#如果脚本返回非0,优先级减少20(注意:可以是负值,也可以是正值)fall2#连续失败2次则认为服务失效rise1#成功一次则认为服务恢复}#定义一个VRRP实例(VIP实例)vrrp_instanceVI_1{stateMASTER#初始状态,MASTER或BACKUPinterfaceeth0#绑定VIP的网络接口virtual_router_id51#虚拟路由ID(0-255),同一组实例必须一致priority100#优先级(0-255),MASTER应高于BACKUPadvert_int1#通告时间间隔,单位秒#认证信息,同一组的必须一致authentication{auth_typePASS#认证方式:PASS简单字符串认证auth_pass1111#认证密码(1-8位)}#追踪接口(可选),当接口down时,降低优先级track_interface{eth1#可以跟踪多个接口}#设置通知脚本(可选),当状态切换时执行#notify_master/etc/keepalived/master.sh#成为master时执行#notify_backup/etc/keepalived/backup.sh#成为backup时执行#notify_fault/etc/keepalived/fault.sh#进入fault状态时执行#notify_stop/etc/keepalived/stop.sh#停止时执行#追踪脚本,根据脚本执行结果调整优先级track_script{chk_nginx#引用之前定义的vrrp_script}#虚拟IP配置(VIP),可设置多个virtual_ipaddress{192.168.200.100#虚拟IP地址192.168.200.101/24deveth0#指定接口和掩码#可以添加多个VIP}#单播对端地址,用于避免多播问题(在无法使用多播的环境)unicast_src_ip192.168.200.1#本机IPunicast_peer{192.168.200.2#对端IP(BACKUP服务器)}}#虚拟服务器部分(用于LVS负载均衡,可选)virtual_server192.168.200.10080{delay_loop6#服务轮询时间间隔(秒)lb_algowrr#负载均衡算法(wrr:加权轮询)lb_kindDR#LVS模式(DR:直接路由)persistence_timeout50#会话保持时间(秒)protocolTCP#协议类型(TCP/UDP)#后端真实服务器real_server192.168.200.280{weight1#权重#健康检查TCP_CHECK{connect_timeout3#连接超时时间(秒)nb_get_retry3#重试次数delay_before_retry3#重试间隔}#HTTP_GET健康检查示例#HTTP_GET{#url{#path/test.html#status_code200#}#connect_timeout3#nb_get_retry3#delay_before_retry3#}}real_server192.168.200.380{weight1TCP_CHECK{connect_timeout3nb_get_retry3delay_before_retry3}}}```###各配置块详解:1.**global_defs(全局配置)**:-`notification_email`:设置报警邮件接收人。-`notification_email_from`:设置发件人。-`smtp_server`:SMTP服务器地址。-`router_id`:标识当前节点,建议使用主机名。2.**vrrp_script(检查脚本)**:-用于定义需要周期性执行的脚本,并根据脚本执行结果调整节点优先级或状态。-参数:`script`(脚本路径)、`interval`(执行间隔)、`weight`(权重调整值)、`fall`(失败次数阈值)、`rise`(成功次数阈值)。3.**vrrp_instance(VRRP实例)**:-`state`:初始状态(MASTER或BACKUP)。-`interface`:绑定VIP的物理网卡。-`virtual_router_id`:虚拟路由ID,同一组实例必须相同。-`priority`:初始优先级(0-255),MASTER应高于BACKUP。-`advert_int`:VRRP通告时间间隔。-`authentication`:认证方式(PASS或AH),同一组实例密码必须一致。-`track_interface`:跟踪接口状态,若接口down则降低优先级。-`track_script`:引用vrrp_script定义的检查脚本。-`virtual_ipaddress`:虚拟IP(VIP)列表。-`unicast_peer`:单播配置(用于避免多播问题)。4.**virtual_server(虚拟服务器)**:-当Keepalived用于管理LVS负载均衡器时配置。-`lb_algo`:负载均衡算法(rr,wrr,lc,wlc等)。-`lb_kind`:LVS模式(NAT,DR,TUN)。-`real_server`:后端真实服务器配置。-健康检查:支持TCP_CHECK、HTTP_GET、SSL_GET等。###注意事项:-**主备配置**:MASTER和BACKUP节点应配置相同的`virtual_router_id`和认证密码,但优先级不同。-**状态转换**:当MASTER节点的优先级低于BACKUP或检查脚本失败时,会发生主备切换。-**健康检查**:使用`vrrp_script`来监控应用服务(如Nginx、MySQL),确保只有健康的节点才会成为MASTER。-**单播配置**:当网络环境不支持多播(如公有云)时,可以使用单播通信。###常用命令:```bashsystemctlstartkeepalived#启动服务systemctlstopkeepalived#停止服务systemctlstatuskeepalived#查看状态journalctl-ukeepalived#查看日志```§§相关问题§§:1.Keepalived如何实现故障检测和自动切换?2.如何配置Keepalived使用单播通信?3.在Keepalived中,如何实现多个虚拟IP的高可用?4.Keepalived与Heartbeat、Pacemaker等工具有什么区别?</think> ### Keepalived 配置文件详细介绍 Keepalived 主要用于实现 Linux 服务器的高可用性(HA)和负载均衡。其核心配置文件是 `/etc/keepalived/keepalived.conf`,结构分为三个主要部分: 1. **全局配置 (global_defs)**:全局参数设置 2. **VRRP 配置 (vrrp_instance)**:虚拟路由器冗余协议配置 3. **LVS 配置 (virtual_server)**:负载均衡虚拟服务器配置(可选) 以下是完整配置示例及详细解释: ```bash ! 配置以注释符 ! 或 # 开始 global_defs { # 全局唯一标识符,通常使用主机名或随机值 router_id LVS_DEVEL # 启用多播路由,仅用于特殊场景 enable_multicast # 通知邮件的SMTP配置 notification_email { admin@example.com # 通知接收邮箱1 ops@example.com # 通知接收邮箱2 } notification_email_from keepalived@example.com # 发件人地址 smtp_server 192.168.1.1 # SMTP服务器地址 smtp_connect_timeout 30 # 连接超时时间 # 脚本执行用户(需要系统用户存在) script_user keepalived enable_script_security } # VRRP脚本定义(服务健康检查) vrrp_script chk_nginx { script "/etc/keepalived/check_nginx.sh" # 健康检查脚本路径 interval 2 # 检查间隔时间(秒) timeout 1 # 脚本超时时间 weight -20 # 检查失败时优先级下降值 fall 3 # 连续失败多少次视为服务不可用 rise 1 # 成功一次视为服务恢复 } # VRRP实例配置(核心HA配置) vrrp_instance VI_1 { state MASTER # 初始角色:MASTER/BACKUP interface eth0 # 绑定VRRP的物理接口 # 虚拟路由器ID (0-255),所有节点必须相同 virtual_router_id 51 priority 100 # 初始优先级 (0-255),越高越优先 # 认证配置(所有节点必须相同) authentication { auth_type PASS # 认证类型:PASS/AH auth_pass 1111 # 密码(1-8位) } # 虚拟IP设置(VIP) virtual_ipaddress { 192.168.1.100 # 主要VIP 192.168.1.101/24 dev eth0 # 带子网和接口的VIP } # 健康检查追踪 track_script { chk_nginx # 关联定义的检查脚本 } # 状态改变通知脚本 notify_master "/etc/keepalived/notify.sh master" notify_backup "/etc/keepalived/notify.sh backup" notify_fault "/etc/keepalived/notify.sh fault" # VRRP通告时间设置 advert_int 1 # 主备同步周期(秒) # 单播对端配置(用于禁多播环境) unicast_src_ip 192.168.1.10 # 本机IP unicast_peer { 192.168.1.20 # 对端IP } } # LVS负载均衡配置(可选) virtual_server 192.168.1.100 80 { delay_loop 6 # 健康检查间隔(秒) lb_algo wrr # 负载均衡算法:rr|wrr|lc|wlc lb_kind DR # LVS模式:NAT|DR|TUN persistence_timeout 60 # 会话保持时间(秒) protocol TCP # 服务协议 # 后端真实服务器配置 real_server 192.168.1.10 80 { weight 1 # 权重值 # TCP健康检查 TCP_CHECK { connect_timeout 3 # 连接超时 nb_get_retry 3 # 重试次数 delay_before_retry 3 # 重试间隔 } # HTTP健康检查替代方案 # HTTP_GET { # url { # path /health # status_code 200 # } # } } real_server 192.168.1.20 80 { weight 2 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } } ``` ### 关键配置详解: 1. **全局配置 (global_defs)** - `router_id`:必须全局唯一,用于标识节点 - `notification_email`:故障时通知邮件列表 - `script_user`:执行健康检查脚本的系统用户 2. **VRRP 配置 (vrrp_instance)** - `state`:初始角色,实际角色由优先级决定 - `virtual_router_id`:同一组节点必须相同 - `priority`:决定主备关系(主节点值更高) - `virtual_ipaddress`:需要托管的虚拟IP(VIP) - `track_script`:关联健康检查脚本 3. **健康检查机制** - `interval`:检查频率(推荐2-5秒) - `weight`:失败时优先级调整量(负值使备机接管) - `fall/rise`:状态判定阈值 4. **LVS 负载均衡** - `lb_algo`:调度算法(wrr = 加权轮询) - `lb_kind`:网络模式(DR = 直接路由) - `real_server`:后端真实服务器列表 - `TCP_CHECK/HTTP_GET`:健康检查方式 ### 主备节点配置差异: | 参数 | MASTER 节点 | BACKUP 节点 | |--------------|-------------------|------------------| | `state` | MASTER | BACKUP | | `priority` | 100 (建议) | <100 (如90) | | `vip` | 绑定活跃状态时持有 | 接管时获得 | | `router_id` | 必须不同 | 必须不同 | ### 实际应用建议: 1. 在 `/etc/keepalived/check_nginx.sh` 中创建健康检查脚本: ```bash #!/bin/bash if ! pgrep nginx &>/dev/null; then exit 1 # 服务异常 fi exit 0 # 服务正常 ``` 2. 设置开机启动: ```bash sudo systemctl enable keepalived sudo systemctl start keepalived ``` 3. 查看状态: ```bash # 检查VIP绑定 ip addr show eth0 # 查看日志 journalctl -u keepalived -f ``` 4. 故障测试: ```bash # 停止主节点的服务,观察切换过程 sudo systemctl stop nginx ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值