5

问题

我有一台装有 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" 
        }
}

如何通过配置阻止logstash写入本地日志?我知道我可以对它们进行 cron-del,但我认为预防不太容易出错。

4

4 回答 4

7

我遇到了与您在 CentOS 7 机器上运行时相同的问题。除了elasticsearch之外没有任何输出,但logstash仍将所有传入消息输出到logstash.loglogstash.stdout

在对实际的 ruby​​ 代码进行一些研究后,发现默认的日志记录模式非常冗长。

然而,有一个标志(据我所知似乎没有记录)--quiet可以解决问题。

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

# Arguments to pass to logstash agent
LS_OPTS="--quiet"
于 2016-05-23T08:41:15.290 回答
5

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

stdout { codec => rubydebug }

从我的30-output.conflogstash中删除之后不再那么冗长了

这个帖子让我找到了答案。

于 2016-08-05T21:58:18.240 回答
1

对数旋转解决方案

--verbose不幸的是,我没有--debug/etc/init.d/logstash. 因此,我试图弄清楚为什么logrotate不归档文件。

/etc/logrotate.d/logstash是:

/var/log/logstash/*.log {
        daily
        rotate 7
        copytruncate
        compress
        delaycompress
        missingok
        notifempty
}

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

$ logrotate --force logrotate.d/logstash --verbose
Ignoring logrotate.d/logstash because of bad file mode.

快速搜索救援

sudo chmod 0644 logrotate.d/logstash

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

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

于 2015-10-27T12:42:00.770 回答
0

如果您使用的是 docker 镜像,logstash 会附带一个名为logstash (logstash.conf). 该管道将​​所有内容记录到标准输出。您必须覆盖它以避免大量日志

于 2022-01-27T21:44:50.670 回答