我们将进行部署设置,我们将拥有许多服务器,其中大部分服务器在流量上升时自动添加到负载均衡器.这种设置的问题在于,如果一个开发人员需要拖尾日志来解决问题,他将不得不在每台服务器上打开一个控制台,由于开发人员通常不知道我们可能会使用多少服务器,因此这很复杂当时有功能.
如果开发人员可以在一台服务器中找到所有日志 – 比如我们的部署服务器,那么故障排除变得更加容易.
为此,我考虑使用cron设置从每台FE计算机到部署服务器的推送,该计划将复制我们的部署服务器上的日志.这种方法存在两个问题:
>有1分钟的延迟,因为crons不能更频繁地运行.
>每台FE计算机上的cron必须设置为同步到部署服务器上的特定位置,但事先我不知道有多少这样的FE服务器存在.
为了解决这个问题,我正在研究一种连接error_log或PEAR Log以将日志直接发送到我们的部署服务器的方法,该服务器会将其实时记录到/ var / log /中的本地位置.
谁知道我怎么配置这个?或者也许是一项服务来实现这一目标?
我们的服务器都是Ubuntu 10.04 LTS,我们在AWS的EC2实例上运行这些服务器.我们的PHP版本是5.3.
您可以做的是登录自定义syslog通道,该通道写入中央日志记录服务器.
PHP.ini中
error_log = syslog
PHP框上的syslog-ng.conf
destination PHP { tcp("10.10.10.10" port(5140)); }; log { source(src); filter(f_PHP); destination(PHP); };
这会将所有PHP日志记录发送到一个框10.10.10.10,其中syslog-ng正在侦听端口5140.
在您的日志框中,您必须打开ec2安全组中的端口5140
这是一个关于如何设置syslog服务器的好教程
http://praxis.edoceo.com/howto/syslog-ng
编辑:这当然也可以将你的PHP盒子的其他重要日志源记录到日志服务器.考虑流量日志,系统日志等.