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.log和logstash.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)
此输出可能是由于您的输出配置文件之一中包含以下内容引起的:
stdout { codec => rubydebug }
Run Code Online (Sandbox Code Playgroud)
从我的30-output.conflogstash 中删除它后不再如此冗长
这个线程让我找到了答案。
不幸的是,我没有在 中找到任何--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)
我已将频率从 改为daily,hourly现在一切似乎都正常。
这可能不应该是公认的答案。如果有人有更好的解决方案可以阻止logstash首先写入这些冗余日志,我很乐意接受。
| 归档时间: |
|
| 查看次数: |
10609 次 |
| 最近记录: |