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.state mail.none;authpriv.none;cron.none /var/log/messages authpriv.* /var/log/secure mail.* -/var/log/maillog cron.* /var/log/cron *.emerg :omusrmsg:* uucp,news.crit /var/log/spooler local7.* /var/log/boot.log local3.* /data/logs/haproxy.log local4.* /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 查看日志生成情况,如果滚屏犹如电机飞转,目不暇接,则大功告成。
最后,再以同样的方式给主负载均衡设定好日志。
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
网站栏目:Haproxy+keepalived负载均衡日志定制-创新互联
浏览地址:http://hbruida.cn/article/cojdjp.html