首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于Logstash设置的建议

关于Logstash设置的建议
EN

Stack Overflow用户
提问于 2014-06-04 10:12:40
回答 3查看 6.7K关注 0票数 12

我已经实现了logstash (在测试中),如下所述的体系结构。

组件分解

  • Rsyslog客户端:默认情况下,syslog安装在所有Linux销毁中,我们只需要配置rsyslog将日志发送到远程服务器。
  • Logstash : Logstash将接收来自客户端的日志,并将存储在中。
  • Redis : Redis将作为代理,broker将在logstash索引之前保存代理发送的日志数据。拥有代理将提高logstash服务器的性能,Redis充当日志数据的缓冲区,直到logstash对其进行索引并存储。因为它在内存中太快了。
  • logstash :是的,两个logstash实例,第一个用于syslog服务器,第二个用于从redis读取数据并发送到elasticsearch。
  • Elasticsearch:中央日志服务器的主要目标是在一个地方收集所有日志,此外,它还应该提供一些有意义的数据进行分析。就像您应该能够在指定的时间搜索特定应用程序的所有日志数据一样,period.Hence必须在我们的logstash服务器上具有搜索和良好索引功能。为了实现这一点,我们将安装另一个名为elasticsearch.Elasticsearch的开放源码工具,它使用一种创建索引的机制,然后搜索该索引以使其更快。它是一种文本数据的搜索引擎。
  • Kibana : Kibana是一种用户友好的查看、搜索和可视化日志数据的方法。

但我有点糊涂了。使用此场景,我将在Logstash服务器上运行3个java进程和一个redis,这将占用hugh ram。

问题,我可以只用一个逻辑库和弹性搜索吗?或者什么是最好的方法?

EN

回答 3

Stack Overflow用户

发布于 2014-06-04 10:21:48

实际上,我正在我的公司建立logstash,redis,elasticsearch,kibana (又名麋鹿建筑)。

我的进程在虚拟机之间被分割。当你可以把它们放在同一台机器上时,如果机器死了会发生什么呢?然后,您将同时使用索引器和集群。

您还存在无法在Elasticsearch上正确复制碎片的问题。因为您只有一台服务器,所以碎片不会被复制,您的集群健康状况将永远是黄色的。您需要添加足够的服务器来避免脑分裂情景

为什么要留住Redis?

由于Redis可以与多个日志存储索引器交谈,关键之一是这使得索引对您的发货人来说是透明的,因为如果一个索引器下降,则备用索引将承担负载。这使您的设置具有高可用性。

这不仅仅是一个运送日志,让他们索引和搜索的问题。虽然你的设置很可能在很小很少见的情况下起作用,但是人们用麋鹿装置所做的事情是几百台服务器,甚至数千台,所以麋鹿架构是要扩展的。所有这些服务器还需要由名为“木偶”的东西进行远程管理。

最后,如果你还没有读过它,我建议你读一下詹姆斯·特恩布尔()的“洛根书”。

以下是一些迄今为止对我有帮助的推荐书籍:

  • 亲木偶,第二版
  • Elasticsearch Cookbook,第二版
  • 红皮书
  • Redis在行动中
  • 掌握弹性搜索
  • ElasticSearch服务器
  • Elasticsearch:权威指南
  • 木偶类型和提供者
  • 木偶3烹饪本
票数 8
EN

Stack Overflow用户

发布于 2014-06-04 10:29:55

如果将所有实例都放在机器中,则只能使用一个logstash和elasticsearch。Logstash通过文件输入插件直接读取syslog文件。

否则,您必须使用两个logstash和redis。这是因为logstash没有任何缓冲机制,所以它需要redis作为代理来缓冲日志事件。红宝石不使用更多的公羊。当logstash从日志事件读取日志事件时,内存将释放。如果redis使用大型ram,则必须添加logstash 工人以更快地处理日志。

票数 8
EN

Stack Overflow用户

发布于 2015-05-29 07:35:47

您应该只运行一个logstash实例。设计的logstash具有多个输入通道和输出通道的能力。

代码语言:javascript
复制
input {
    # input instances
    syslog {
        # add other settings accordingly
        type => "syslog"
    }
    redis {
        # add other settings accordingly
        type => "redis"
    }
}
filter {
    # add other settings accordingly
}
output {
    # output instances
    if [type] == "syslog" {
        redis {
            # add other settings accordingly
        }
    }
    else if [type] == "redis" {
        elasticsearch {
            # add other settings accordingly
        }
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24034705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档