我们为logstash& amp;弹性搜索日志分析。即使logstash的性能很慢,我的硬件环境也很高端。现在我们的目标是找到以下需要大量时间输入,过滤或输出的区域。所以我们决定继续监控它。到目前为止我们有一个选择是使用Java线程转储分析。这是唯一的方法或任何其他可用选项。
配置文件详细信息
input {
file {
path => ["home/**/*.log"]
start_position => beginning
}
}
filter {}
output {
stdout { codec => rubydebug }
elasticsearch {}
}
答案 0 :(得分:0)
就个人而言,也许不是最好的方法,我在删除输出部分并使用generator plugin后通过在本地运行来测试我的配置。其他输入(文件,tcp,可以使用确切数据的任何可能)也是可能的。
然后我根据需要修改配置并运行以下命令来查看差异:time java -jar logstash.jar agent -f conffile
经验丰富的if语句以及详细的解析都占用了大量的资源,我可以通过优化它们来节省一些(在这种情况下我没有看到太多)。我个人首先尝试使用和不使用ruby块来运行它,看看是否会占用大量资源(不熟悉ruby部分是如何产生的)。
您还可以检查以并行运行作业(尤其是使用多个核心),默认情况下,logstash仅使用一个工作程序(或用于执行此操作)。请注意,在某些情况下,多名工作人员可能会产生意外的副作用(例如,运行统计信息等,请不要在此处看到此信息)。