从多个服务器发送日志到中央日志服务器的好方法是什么?
What would be a good approach for sending logs from multiple servers a centralized logging server?
我正在尝试从托管在多个 ec2 实例上的 php 应用程序发送日志,大量日志。
与其采用在每台服务器上安装 logstash 并使用 logstash-forwarder 将日志发送到日志服务器并由 logstash 解析日志并将其提供给 elasticsearch 的标准方法,这是否是一种更好的方法将 apache/nginx 日志写入 syslog 并让 rsylog 将其发送到 logstash,然后将其提供给 elasticsearch?
长问题短 - 什么是更好的方法?
Apache/Nginx -> logstash-forwarder -> logstash -> redis (optional) -> elasticsearch
或
Apache/Nginx -> syslog -> rsyslog -> logstash -> redis (optional) -> elastic search
据我所知:
- 第一种方法,更简单,适用于可扩展性较差的小型基础设施。
- 第二种方法,更复杂但更高效和可扩展,适用于大型基础设施(在我的中使用:大约 500 台服务器)。
我更喜欢选项一。它的移动部件更少,所有这些都包含在您可以从 Elasticsearch 购买的支持合同中,并且运行良好。我现在有 500 多台这样配置的服务器,今年计划再增加几千台。
如果 elasticsearch 繁忙,logstash 将会节流。如果 logstash 繁忙,logstash-forwarder 将节流。有了它,就不需要经纪人了。
请注意,如果您使用未节流的输入(例如 tcp、snmptrap、netflow 等),则需要代理。
我正在尝试从托管在多个 ec2 实例上的 php 应用程序发送日志,大量日志。
与其采用在每台服务器上安装 logstash 并使用 logstash-forwarder 将日志发送到日志服务器并由 logstash 解析日志并将其提供给 elasticsearch 的标准方法,这是否是一种更好的方法将 apache/nginx 日志写入 syslog 并让 rsylog 将其发送到 logstash,然后将其提供给 elasticsearch?
长问题短 - 什么是更好的方法?
Apache/Nginx -> logstash-forwarder -> logstash -> redis (optional) -> elasticsearch
或
Apache/Nginx -> syslog -> rsyslog -> logstash -> redis (optional) -> elastic search
据我所知:
- 第一种方法,更简单,适用于可扩展性较差的小型基础设施。
- 第二种方法,更复杂但更高效和可扩展,适用于大型基础设施(在我的中使用:大约 500 台服务器)。
我更喜欢选项一。它的移动部件更少,所有这些都包含在您可以从 Elasticsearch 购买的支持合同中,并且运行良好。我现在有 500 多台这样配置的服务器,今年计划再增加几千台。
如果 elasticsearch 繁忙,logstash 将会节流。如果 logstash 繁忙,logstash-forwarder 将节流。有了它,就不需要经纪人了。
请注意,如果您使用未节流的输入(例如 tcp、snmptrap、netflow 等),则需要代理。