我有一个网络应用程序,分布在美国和英国的几个站点上。当我们遇到问题时,我希望能够查看来自这两个站点的整理错误日志。
所以我在考虑这么做
1)在每个站点设置一个 splunk 服务器
2)将 1 设置为另一个的转发器
3)将所有错误系统日志和警告从站点 1 转发到站点 2
当出现问题时,我会将站点 1 中的所有 apache 日志导入到本地 splunk 中,它会将它们转发到站点 2 以便与所有现有日志一起进行分析。
Q1) 使用 splunk 免费许可证是否合理?
Q2)通过互联网发送错误和警告级别的服务器系统日志是否合理?即从性能和带宽角度来看
答案1
最好的方法是添加第三台机器(功能不是非常强大)专门用于日志收集,并在那里收集日志。它简单/安全/高效等。否则,你会在两台机器上产生开销(发送、接收)。
你的平均日志流量是多少?使用免费的 Splunk 非常好。限制是你每天只能索引 500 MB,而且你没有启用所有功能。但仅用于调试它是完美的。
不幸的是,Splunk 免费版不支持分布式搜索。但是,如果您按照我之前说的做,您可以在一个 Splunk 服务器中索引两个站点的日志,并进行交叉关联。
此外,如果您使用 rsyslog 作为系统日志管理器,那么您拥有的功能太多了,我怀疑 splunk 是否支持它们(说实话...... splunk 更专注于日志分析而不是日志传输)
答案2
正如 Nikolaidis 所说,尽管您可以将这第三个盒子作为您的 Splunk 服务器运行,并将每个 Web 服务器的 Syslog 主机设置为它的 IP。
至于传输,希望 Splunk 支持 TCP/TLS(并且您的服务器也支持,尽管您可以在它们上本地运行 rSyslog;我知道它确实如此),并且您可以通过(更可靠的)TCP 和 TLS 将您的日志加密发送到您的中央 Splunk 服务器,而不是纯文本 UDP。
我还建议在 Syslog 服务器上进行数据包过滤,以便只允许来自两个 Web 服务器的连接。