有没有办法确定日志的优先级并将其发送到elasticsearch,以优化服务器上的日志负载

问题描述 投票:0回答:1

需要读取我的环境中所有应用程序日志中的严重、错误和警告。如果在 1000 个警告后发生严重问题,我希望 Logstash 立即发送它,为严重问题提供最高优先级,然后是错误,最后是生成的警告。

这里有哪些可用选项以及如何完成?

  • Logstash 中有内置功能吗?
  • 还有其他集成可以帮助实现这一目标吗? RabbitMQ 怎么样? RabbitMQ可以不使用Logstash直接发送到elasticsearch吗?
  • 是否有另一个 Elastic 模块或任何其他软件可以集成到 Elastic Search 中以实现此最终目标?

偏好轻量级且快速的解决方案。

我尝试优化 Logstash。听说过 RabbitMQ(想尝试一下)

elasticsearch rabbitmq logstash elastic-stack nxlog
1个回答
0
投票

Logstash 本身没有内置的优先级来发送日志。基本上,它的工作方式就像先进先出。

RabbitMQ 可以用作消息代理,以将日志生产者与日志消费者解耦。您可以将日志发送到 RabbitMQ,然后根据日志的严重程度进行消费和处理。

Kafka 充当分布式消息代理。它可以处理大量日志并提供容错能力。您可以为每个严重级别创建 Kafka 主题以保持分离。

Kafka 与 RabbitMQ: Kafka 和 RabbitMQ 都是消息代理,但通常选择 Kafka 是因为其耐用性、容错性以及对高吞吐量场景的支持。 另一方面,RabbitMQ 最初设置可能更简单,并且在保证消息传递至关重要的场景中可能是首选。

用于 rabbitmq 输入elasticsearch 输出的示例 Logstash 配置:

input {
  rabbitmq {
    id => "input_rabbitmq"
    exchange => "logstash-exchange"
    threads => 2
  }
}
filter {}
output {
    elasticsearch {
        hosts => "localhost:9200"
        data_stream => "true"
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.