CentOS - rsyslog 和 PHP - 记录到远程集中式服务器

CentOS - rsyslog 和 PHP - 记录到远程集中式服务器

我正在开发一个包含少量服务器的项目,这些服务器托管一个 PHP 应用程序。目前,每台服务器都在本地将 php 错误记录到 /var/log/php/oops.log,但我想实现一个解决方案,让我可以登录到一个中央服务器并查看托管 PHP 应用程序的任何服务器的错误日志条目。

我一直在阅读一些内容,需要对这些步骤进行健全性检查,以完成我的最终目标。

  • 将 php.ini error_log 指令更改为记录到“syslog”而不是“/var/log/php/oops.log”
  • 在每个应用服务器上配置 /etc/rsyslog.conf 以过滤 PHP 消息并将其转发到中央(远程)服务器
  • 配置中央服务器以接受来自所有应用服务器的连接(iptables 等)

我当前的系统配置是 centos 6.2(和一些 .3)并且所有机器都使用 rsyslog。

我按照上述步骤做对了吗?有谁知道有哪些循序渐进的资源可以帮到你吗?

答案1

所以我最终选择的解决方案是:

  1. 配置每个服务器的 php.ini 以记录到 syslog
  2. 确保每个边缘服务器都可以连接到远程服务器syslog
  3. 对于每个边缘服务器,编辑 /etc/rsyslog.conf 以记录local1.* @syslog
  4. syslog服务器上,编辑 /etc/rsyslog.conf 以使用以下方式过滤消息外渠道过滤器

现在,当边缘服务器上记录了 php 消息时,它会被发送到集中式远程服务器 (syslog),如果满足某些条件,该消息会在该服务器中进行解析并过滤到外部通道。这样一来,我现在只需监控所有边缘服务器的一个日志文件即可。

相关内容