Logstash docker,如何停止将日志发送到标准输出
Posted
技术标签:
【中文标题】Logstash docker,如何停止将日志发送到标准输出【英文标题】:Logstash docker, how to stop send logs to stdout 【发布时间】:2020-07-10 22:55:13 【问题描述】:如何停止向标准输出发送(使用环境变量)日志? 我将 log_level 更改为 WARN,是的,我不再有 INFO 日志,但我仍然收到这样的日志:
14:14:51 "namespace" => "AWS/ECS",
14:14:51 "period" => 300,14:14:51 "ServiceName" => "archive-logstash",
14:14:51 "@version" => "1",
14:14:51 "ClusterName" => "archive",
14:14:51 "minimum" => 0.4069010416666667,
14:14:51 "average" => 44.13362219887956,
14:14:51 "@timestamp" => 2020-03-30T14:14:42.420Z,
14:14:51 "aws_account" => "acc",
14:14:51 "maximum" => 71.2890625,
14:14:51 "sample_count" => 7.0,
14:14:51 "sum" => 308.9353553921569,
14:14:51 "unit" => "Percent",
14:14:51 "timestamp" => 2020-03-30T14:09:00.000Z,
14:14:51 "end_time" => 2020-03-30T14:14:39.000Z,
14:14:51 "metric_name" => "MemoryUtilization",
14:14:51 "start_time" => 2020-03-30T14:09:39.000Z
我不需要这些日志,因为 Logstash 将处于循环中,将从该 cloudwatch 组中读取以及来自 fargate 的其他日志,并将其再次发送回 ELK。
而且这种日志格式完全不可用
我在 AWS fargate 中运行 Logstash
【问题讨论】:
您的 logstash 管道配置是什么?这些不是来自 Logstash 的日志,而是来自管道的输出,您似乎将一些输出配置为stdout
。
我正在使用默认的 logstash.conf 文件。在 docker 文件中,我只是安装了几个插件和 aws-cli。然后docker入口点从S3存储桶aws s3 cp s3://%s/%s.conf /usr/share/logstash/pipeline/logstash.conf && /usr/local/bin/docker-entrypoint
下载logstash.conf,只有我传入的环境是XPACK_MONITORING_ENABLED=false
。但我现在将看看如何处理管道日志。谢谢
您的翻译文件的output ..
部分是否有类似stdout codec => rubydebug
的内容?
@WalterA 你是对的。我忘记了(捂脸)。谢谢
【参考方案1】:
https://www.elastic.co/guide/en/logstash/current/docker-config.html#_custom_images
因此,由于默认管道,基本上日志会进入标准输出。您唯一需要做的就是删除这个文件并重写它,即添加例如添加
RUN rm -f /usr/share/logstash/pipeline/logstash.conf
到你的 Dockerfile
【讨论】:
【参考方案2】:(我不确定,所以我先问了一个评论,但 OP 说是这样) 您需要删除
stdout codec => rubydebug
在
output ..
翻译文件的一部分。
【讨论】:
请更正,以便我将其标记为最佳答案。我不需要 rubydebug,我已经有了它,因为所有日志都被定向到标准输出。所以我需要 删除它。以上是关于Logstash docker,如何停止将日志发送到标准输出的主要内容,如果未能解决你的问题,请参考以下文章
通过配置日志驱动程序将 Docker 容器日志发送到 ELK Stack - 简单方法
用docker 安装 FilebeatLogstashKibana是什么体验