我在 DMZ 中有几个 www 服务器。我的监控和日志收集服务器位于我的 LAN 中。没有像 这样的通信
WWW server in DMZ ----> monitor server in LAN
。
我可以从我的 LAN 连接 DMZ
LAN --via proxy--> WWW server in DMZ
。
我将使用 syslog-ng。问题是 syslog-ng 在客户端-服务器架构中工作,客户端连接到服务器以发送日志。
有没有办法将 syslog-ng 配置为某种被动模式,以便服务器(在我的 LAN 中)连接到客户端(DMZ)并收集日志?
编辑:我正在阅读有关 Zabbix 代理(zabbix 可以监控日志)的文章... 理论上,依靠 zabbix 文档,我的方案是可行的。有人可以证实吗?
答案1
那么隧道技术呢?例如使用隧道? 对于每个要监控的 DMZ 服务器:
- 让日志服务器启动到 DMZ 服务器的隧道
- 配置 DMZ 服务器的系统日志,以便它连接到隧道并将其用作附加目的地
注意:这可能通过防火墙/NAT工作(根据您的标题),但不能通过代理工作(根据您的问题内容)。
答案2
我不知道 syslog-ng,但我知道可以配置 Splunk 定期从客户端系统收集和索引日志文件。否则,我认为你能做的最好的事情就是在你的日志服务器上设置一个 cron 作业来将文件 rsync 到类似的东西/var/log/clientN/*.log
,然后在客户端上手动调用 logrotate。
答案3
这可能没有帮助,但我会分享我们如何解决这个问题。本质上我们使用多个 DMZ。
- DMZ1 包含面向 Internet 的主机,并且无法与内部 LAN 通信。
- DMZ2 是一个隔离区域(位于同一防火墙、不同的 VLAN 上),可以与 DMZ1 中的主机通信(双向),但不是互联网。DMZ2 中的某些主机还可以与内部 LAN 上的某些主机进行通信。
因此,DMZ1 中需要集中系统日志记录/scp 文件/发送电子邮件报告的主机通过 DMZ2 中的管理主机进行这些操作。然后,管理主机上的信息可以被内部的主机获取。