0

我们设置了logstash和elasticsearch的环境进行日志分析。我的硬件环境是高端的,尽管logstash的性能很慢。现在我们的目标是找到以下需要花费大量时间输入、过滤或输出的区域。所以我们决定监控它。到目前为止,我们有一个选择是使用 Java 线程转储分析。这是唯一的方法还是任何其他可用的选项。

配置文件详细信息

input {
   file {
      path => ["home/**/*.log"]
      start_position => beginning
  }

}

filter {}

output {
    stdout { codec => rubydebug }
    elasticsearch {}
}
4

1 回答 1

0

就个人而言,也许不是最好的方法,我在删除输出部分并使用生成器插件后在本地运行它来测试我的配置。其他输入(文件、tcp、任何可以使用精确数据的东西)也是可能的。

然后我根据需要修改配置并运行以下命令以查看差异:time java -jar logstash.jar agent -f conffile

没有经验,if 语句和详细解析占用了大量资源,我可以通过优化它们来节省一些资源(在你的情况下我看不到太多)。我个人首先会尝试在有和没有 ruby​​ 块的情况下运行它,看看这是否会占用大量资源(不熟悉 ruby​​ 部分是如何产生的)。

您还可以检查以并行运行作业(尤其是使用多个内核),默认情况下,logstash 仅使用一个工作人员(或曾经这样做)。请注意,在某些情况下,多个工作人员可能会产生意想不到的副作用(例如运行统计信息等,请不要在此处看到)。

于 2015-01-28T21:45:12.427 回答