Logstash创建了大量的本地日志文件(尽管它然后发送到Elasticsearch)

Ada*_*tan 5 configuration local-files logstash elastic-stack

问题

我有一台带有logstash的机器,另一台Elasticsearch-Kibana机器,它将logstash写入的日志存储在第一台机器上.当然,我希望不在原始计算机上保留日志,只处理Elasticsearch集群上的日志记录.

不幸的是,logstash在第一台机器上创建了大量的日志文件(不应该保留任何内容):

在此输入图像描述

配置

/etc/logstash在原始机器上只有一个文件,据我所知,配置没有指定本地输出:

input {
        tcp {
                port => 5959
                codec => json
        }
        udp {
                port => 5959
        }
}
filter{
    json{
        source => "message"
    }
}
filter{
        if [@message] == "Incoming Event" {
            mutate{
                    add_field => {
                              "location" =>  "%{@fields[location]}"
                        }
                }
        }
}
output {
        elasticsearch {
                # The host in which elasticsearch and Kibana live
                host => "some.internal.aws.ip" 
        }
}
Run Code Online (Sandbox Code Playgroud)

如何通过配置阻止logstash写入本地日志?我知道我可以告诉他们,但我认为预防不易出错.

小智 7

我遇到了与在CentOS 7机器上运行时相同的问题.没有输出到除弹性搜索以外的任何内容,但logstash仍然输出所有传入的消息logstash.loglogstash.stdout

经过对实际ruby代码的一些研究后发现,默认的日志记录模式非常冗长.

然而,有一个标志(据我所知,似乎没有记录)被称为--quiet解决问题.

LS_OPTS在配置文件(/etc/sysconfig/logstash在centos上)或直接在init.d脚本中将标志添加到-variable,如下所示:

# Arguments to pass to logstash agent
LS_OPTS="--quiet"
Run Code Online (Sandbox Code Playgroud)


Rea*_*tic 5

此输出可能是由于您的输出配置文件之一中包含以下内容引起的:

stdout { codec => rubydebug }
Run Code Online (Sandbox Code Playgroud)

从我的30-output.conflogstash 中删除它后不再如此冗长

这个线程让我找到了答案。


Ada*_*tan 1

对数旋转解决方案

不幸的是,我没有在 中找到任何--verbose--debug标志/etc/init.d/logstash。因此,我试图找出为什么logrotate没有归档该文件。

/etc/logrotate.d/logstash是:

/var/log/logstash/*.log {
        daily
        rotate 7
        copytruncate
        compress
        delaycompress
        missingok
        notifempty
}
Run Code Online (Sandbox Code Playgroud)

但是当我尝试运行它时,我得到:

$ logrotate --force logrotate.d/logstash --verbose
Ignoring logrotate.d/logstash because of bad file mode.
Run Code Online (Sandbox Code Playgroud)

快速搜索解决了问题

sudo chmod 0644 logrotate.d/logstash
Run Code Online (Sandbox Code Playgroud)

我已将频率从 改为dailyhourly现在一切似乎都正常。

这可能不应该是公认的答案。如果有人有更好的解决方案可以阻止logstash首先写入这些冗余日志,我很乐意接受。