千家信息网

Haproxy + keepalived 负载均衡日志定制

发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,定制输出日志的好处用户所有请求都通过负载均衡器,因此在此处收集日志,比在各后端真实服务器收集日志再汇总要有效得多。工作目标 记录用户访问日志:haproxy产生。 记录keepalived日志:k
千家信息网最后更新 2024年11月24日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安全错误 数据库的锁怎样保障安全 网络安全工具开发 桌面共享软件开发的重要作用 服务器有路由选择的功能吗 我的世界无管理的服务器网易 品质计算机网络技术答疑解惑 限非数据库更新48% 淮南服务器回收诚信企业推荐 安徽省web应用软件开发省赛 网络安全监测用户已锁定 两个线程访问同一个数据库 宁夏大学计算机网络技术考研 章丘智慧党建软件开发 网络安全征文大体结构 易金通无法连接远程服务器 java高级软件开发笔试题 哈工程复试网络安全试题 网络安全密钥在那儿找 数据库表改名语句 如何区分服务器和电脑cpu 数据库回滚的原理 网络安全公益片 mdb数据库表怎么改 农安智能网络技术服务有哪些 网络安全三十条规定 4399本地数据库地址 游戏服务器被攻击怎么办理 山东济南申驰网络技术有限公司 计算机网络技术能专插本吗 男生学软件开发专业怎么样 软件开发立项申请报告
0