我在CentOS 7上运行了2个带有PCS的HAProxy 1.6.9实例。
我的主节点上的HAProxy在周末突然失败。 haproxy的systemctl状态给了我们一个失败的状态。 重新启动haproxy工作得很好,服务又回来了。
我现在试图了解哪里出了问题,并确保它不会再发生。
这是journalctl的结果:
[root@main-lb ~]# journalctl --utc -u haproxy --since yesterday -- Logs begin at Thu 2017-07-06 05:39:42 GMT, end at Sun 2017-08-20 17:36:05 GMT. -- Aug 20 07:20:01 main-lb systemd[1]: Reloaded SYSV: HA-Proxy is a TCP/HTTP reverse proxy which is particularly suited for high availability environments.. Aug 20 07:20:01 main-lb systemd[1]: haproxy.service: main process exited, code=killed, status=9/KILL Aug 20 07:20:01 main-lb haproxy[14935]: Shutting down haproxy: [FAILED] Aug 20 07:20:01 main-lb systemd[1]: Unit haproxy.service entered failed state. Aug 20 07:20:01 main-lb systemd[1]: haproxy.service failed.
我可以看到一个Reloaded SYSV ,我想知道为什么它被触发,而且我猜这是这个问题的一部分。
发现问题时,我能够收集更多的日志,发现以下内容:
Aug 20 07:20:01 main-lb anacron[14184]: Job `cron.daily' started Aug 20 07:20:01 main-lb run-parts(/etc/cron.daily)[14912]: starting logrotate
所以logrotate是在haproxy失败之前开始的。 看看我的logproate脚本haproxy.log( /etc/logrotate.d/haproxy ),我发现以下内容:
/etc/init.d/haproxy reload > /dev/null
所以haproxy在login后重新加载。 但是,似乎有一个已知的问题,如下面的主题所述: https : //discourse.haproxy.org/t/v1-6-10-soft-reload-not-working-under-centos- 7-2 / 994
我所做的是从logrotate中删除重新加载命令,然后重新启动rsyslog。