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

组件分解
但我有点糊涂了。使用此场景,我将在Logstash服务器上运行3个java进程和一个redis,这将占用hugh ram。
问题,我可以只用一个逻辑库和弹性搜索吗?或者什么是最好的方法?
发布于 2014-06-04 10:21:48
实际上,我正在我的公司建立logstash,redis,elasticsearch,kibana (又名麋鹿建筑)。
我的进程在虚拟机之间被分割。当你可以把它们放在同一台机器上时,如果机器死了会发生什么呢?然后,您将同时使用索引器和集群。
您还存在无法在Elasticsearch上正确复制碎片的问题。因为您只有一台服务器,所以碎片不会被复制,您的集群健康状况将永远是黄色的。您需要添加足够的服务器来避免脑分裂情景。
为什么要留住Redis?
由于Redis可以与多个日志存储索引器交谈,关键之一是这使得索引对您的发货人来说是透明的,因为如果一个索引器下降,则备用索引将承担负载。这使您的设置具有高可用性。
这不仅仅是一个运送日志,让他们索引和搜索的问题。虽然你的设置很可能在很小很少见的情况下起作用,但是人们用麋鹿装置所做的事情是几百台服务器,甚至数千台,所以麋鹿架构是要扩展的。所有这些服务器还需要由名为“木偶”的东西进行远程管理。
最后,如果你还没有读过它,我建议你读一下詹姆斯·特恩布尔()的“洛根书”。
以下是一些迄今为止对我有帮助的推荐书籍:
发布于 2014-06-04 10:29:55
如果将所有实例都放在机器中,则只能使用一个logstash和elasticsearch。Logstash通过文件输入插件直接读取syslog文件。
否则,您必须使用两个logstash和redis。这是因为logstash没有任何缓冲机制,所以它需要redis作为代理来缓冲日志事件。红宝石不使用更多的公羊。当logstash从日志事件读取日志事件时,内存将释放。如果redis使用大型ram,则必须添加logstash 工人以更快地处理日志。
发布于 2015-05-29 07:35:47
您应该只运行一个logstash实例。设计的logstash具有多个输入通道和输出通道的能力。
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
}
}
}https://stackoverflow.com/questions/24034705
复制相似问题