千家信息网

Haproxy + keepalived 负载均衡日志定制

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,定制输出日志的好处用户所有请求都通过负载均衡器,因此在此处收集日志,比在各后端真实服务器收集日志再汇总要有效得多。工作目标 记录用户访问日志:haproxy产生。 记录keepalived日志:k
千家信息网最后更新 2026年11月02日Haproxy + keepalived 负载均衡日志定制

定制输出日志的好处

用户所有请求都通过负载均衡器,因此在此处收集日志,比在各后端真实服务器收集日志再汇总要有效得多。

工作目标

 记录用户访问日志:haproxy产生。
 记录keepalived日志:keepalived启动、运行状态,用于排错。

总体规划

  •  使用独立的分区存储日志。因keepalived日志内容较少,可与haproxy日志共用存储空间。比如我的项目里,用/data/logs作为日志的存储路径(/data最好用独立的分区或者磁盘),haproxy日志名称haproxy.log,keepalived日志名称keepalived.log。若果对日志保留又要求,需要归档及轮转。
  •  系统日志与haproxy日志分离,不重复记录--配置不佳的方案,会导致系统日志与haproxy日志重复记录,占用大量的磁盘空间,一旦与系统相关的分区被填满,整个负载均衡将失效。

定制日志所涉及的组件

 系统日志服务rsyslog。
 负载均衡haproxy。
 高可用keepalived。

技术实现

从负载均衡器里选择备机先做配置,这样做的好处是不会对现有业务造成影响。接着创建好存储目录/data/logs,确保此目录能创建及写入文件。

  •  系统日志配置:针对/etc/rsyslog.conf文件进行修改,一个完整的内容如下(去掉了注释行及空行):
    $ModLoad imuxsock # provides support for local system logging (e.g. via logger command)$ModLoad imjournal # provides access to the systemd journal$ModLoad imklog # reads kernel messages (the same are read from journald)$ModLoad immark  # provides --MARK-- message capability$ModLoad imudp$UDPServerRun 514$WorkDirectory /var/lib/rsyslog$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat$IncludeConfig /etc/rsyslog.d/*.conf$OmitLocalLogging on$IMJournalStateFile imjournal.statemail.none;authpriv.none;cron.none                /var/log/messagesauthpriv.*                                              /var/log/securemail.*                                                  -/var/log/maillogcron.*                                                  /var/log/cron*.emerg                                                 :omusrmsg:*uucp,news.crit                                          /var/log/spoolerlocal7.*                                                /var/log/boot.loglocal3.* /data/logs/haproxy.loglocal4.* /data/logs/keepalived.log

重要说明:
mail.none;authpriv.none;cron.none /var/log/messages 这一行删掉了字段"*.info;",如果不删除,会在/var/log/messages文件及/data/logs/haproxy.log重复记录访问日志。

最后两行为手动添加进去的,特别是最后一行"local4.* /data/logs/keepalived.log",是与keepalived日志要求相匹配,否则不能起作用。

  •  配置keepalived:无需修改配置文件keepalived.conf,只需要在启动服务时,加入选项"-S 4"就行。那么,我是怎样知道加这个选项的呢?执行指令keepalived --help,可看到输出项"-S, --log-facility=[0-7] Set syslog facility to LOG_LOCAL[0-7]",前边配置rsyslog时,定义了"local4.",因此启动keepalived服务添加的选项为"-S 4"。Keepalived启动命令如下.
    /usr/local/keepalived/sbin/keepalived -D -d -S 4
    为了简便及通用性(适用于各种
    nix),我把它直接写到文件/etc/rc.local。
  •  配置haproxy,设定日志输出。在主配置文件全局设定代码块加入一行"log 127.0.0.1 local3"。

  •  启动相关服务:
     启动rsyslog:service rsyslog restart;
     启动haproxy:又有keepalived处于运行状态,只要用指令 killall -9 haproxy杀掉进程,haproxy就会自动被keepalived重启。
     启动keepalived:/usr/local/keepalived/sbin/keepalived -D -d -S 4。

验证配置

切换到日志存储目录/data/logs/,查看是否有两个日志文件生成。

手动绑定负载均衡器的物理ip地址,然后用浏览器访问该负载均衡器设定的某个主机名,看日志文件/data/logs/haproxy.log是否产生新的记录行。如果真如所预期,则进行下一步操作。

重启或临时关闭主负载均衡器系统,使所有请求漂移到设定好keepalived及haproxy日志的系统上来,用指令 tail -f /data/logs/haproxy.log 查看日志生成情况,如果滚屏犹如电机飞转,目不暇接,则大功告成。

最后,再以同样的方式给主负载均衡设定好日志。

日志 配置 均衡 文件 系统 均衡器 存储 服务 一行 指令 目录 内容 名称 好处 手动 状态 用户 磁盘 空间 定好 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技的发展 互联网科技公司发展 青岛互联网科技公司 互联网科技排名 云电互联网科技 伴你行互联网科技有限公司 温州喔噻互联网科技有限公司 互联网科技中介 阿里互联网科技公司 互联网科技公司实习生 湖南一路畅行互联网科技 移动互联网科技公司 互联网公司黑科技创始人 中和天地互联网科技有限公司 广州富喜互联网络科技 中天科技中国工业互联网 艺电能源互联网科技有限公司招聘 北京天晋互联网科技有限公司 平安好医生打造互联网科技医疗 银川新华互联网科技学校招聘 广州为想互联网科技有限公司 亿人帮互联网科技有限公司 金诺互联网科技 互联网金融 金融科技 中国 科技 互联网 四个字互联网科技公司取名 佛山市翊博互联网络科技有限公司 保险科技服务互联网营销体系 上海京穆互联网科技有限公司 中国互联网公司的科技投入
0