如何在网站上收集统计日志?

我想收集来自nginx的日志(几台服务器,所有服务器上的日志logging为1000000行)到中央统计服务器进行统计处理。 我看到2个变种:

    1. 将日志写入每个服务器的本地日志文件
    2. 在每个服务器中重命名模板“DD.MM.YYYY HH”的日志并通过ssh向日志服务器发送日志,例如
    3. 将重新加载日志的信号发送到每台服务器上的nginx
    1. 使用系统日志传输(或其他 – 这可能autorename文件的模板“DD.MM.YYYY HH”?)发送日志到统计服务器
    2. 在stat服务器的内存中使用hadoop或临时目录来处理来自所有服务器的写入日志(在这种情况下哪种变体的生产效率更高?)
  1. 你能build议别的吗?

看看elasticsearch + logstash + kibana

Logstash可以parsing您的日志文件,并使用filter从中提取信息。 它可以将它们存储在Elasticsearch中,您可以通过Kibana查询。 看看他们的网站上的video,以了解它可以做什么。

你的第一个选项可以通过loghost完成(基本上你的select2)你可以通过udp将你的系统日志消息发送到$ logserver。 然后,您将根据服务器分割日志,并确保您发送日志的“确切”时间戳。

日志的重命名对于nginx服务器来说并不是必须的,除了通常的日志转换之外,你还是需要用这么多的日志logging。

如果工具已经可用,最好不要编写太多脚本,不需要在这里重新发明轮子。

选项2应该非常接近你想要达到的目标。

取决于服务器所在networking的安全性:或者通过“普通”系统日志过程直接传输,或者与日志主机build立VPN连接。