Tag: 日志

如何将apache日志从一个容器发送到另一个容器中的logstash?

在过去的三天里,我一直在试图从我在Docker中的容器中收集所有日志,并将它们发送到Logstash。 我一直在使用ELK堆栈(Elasticsearch,Logstash和Kibana),我使用Logspout作为这个日志的路由器。 ELK Stack的所有三个实例都在不同的容器中运行。 我已经按照这个设置 。 我目前的Logstashconfiguration文件如下所示: input { tcp { port => 5000 type => syslog } udp { port => 5000 type => syslog } } filter { if [type] == "syslog" { grok { match => { "message" => "%{SYSLOG5424PRI}%{NONNEGINT:ver} +(?:%{TIMESTAMP_ISO8601:ts}|-) +(?:%{HOSTNAME:containerid}|-) +(?:%{NOTSPACE:containername}|-) +(?:%{NOTSPACE:proc}|-) +(?:%{WORD:msgid}|-) +(?:%{SYSLOG5424SD:sd}|-|) +%{GREEDYDATA:msg}" } } syslog_pri { } […]

按单点查看日志。 使用Docker群

在Docker群集系统上使用Storm,我应该debugging系统。 我需要从整个风暴系统获得单点的日志信息。 我可以从部署容器的主机获取日志文件,但是我想使用简单的单一访问点。 我知道风暴logviewer,我认为这是我所需要的。 但我不能调整系统。 我看到docker容器,如:a63c6da1dc17,fe2efd0149b4: 我可以收入这个主机,看到像从截图: 当我点击“日志”链接(fe2efd0149b4(日志))我得到屏幕截图: 如何获取日志,使用Docker从风暴系统中search日志?

我无法让Filebeat读取使用Docker json-file驱动程序生成的日志文件

我试图在容器中运行Filebeat并将日志转发到另一个容器中的Logstash。 我希望它监视我在其他docker容器中运行的各种pipe道的日志。 在运行我的pipe道容器(在/var/lib/docker/containers/目录下创build日志文件)时,我正在使用log-driver json-file参数。 然后,我将这个目录映射到filebeat容器上的一个卷,如下所示: -v /var/lib/docker/containers:/srv/logs 并与勘探者在看: – /srv/logs/*/*.log 问题是,当我试图猛击Filebeat容器,并尝试查看/srv/logs/中的日志文件,我得到一个权限被拒绝的错误,权限如下所示: ??????????? ? ? ? ? ? 54c80fb1e1e46137b561869369945d3a6ff89ee17f06ca3f1af3c5333ede2978-json.log 有没有办法控制docker创build的日志文件的文件权限? Filebeat访问由其他容器生成的日志文件的最佳方式是什么? 谢谢您的帮助。

如何使用awslogs驱动程序login到单个stream

我正在使用AWS ECS并使用aws日志驱动程序进行集中式日志logging。 以下是我的日志configuration的片段。 "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "app-test", "awslogs-region": "us-west-2", "awslogs-stream-prefix": "spring-boot-app" } } 我有多个服务实例,因此有多个任务。 日志正在login到cloudwatch,但意外地多个stream正在创build(每个任务ID一个)。 有没有一种方法来configurationaws日志驱动程序,以便单个服务的所有日志将被logging到单个stream而不是分散在多个stream中?

在GKE /容器优化的操作系统上logging日志logging会破坏kubectl日志

很简单,我们的集群将日志驱动程序设置为json-file 。 我们希望使用journald驱动程序喂养成功。 更改日志logging驱动程序打破了kubectl logs因为它仍然在寻找json文件。 Docker logs其中的一个节点工作得很好。 有任何想法吗? OS信息: CHROMEOS_AUSERVER=https://tools.google.com/service/update2 CHROMEOS_BOARD_APPID={76E245CF-C0D0-444D-BA50-36739C18EB00} CHROMEOS_CANARY_APPID={90F229CE-83E2-4FAF-8479-E368A34938B1} CHROMEOS_DEVSERVER= CHROMEOS_RELEASE_APPID={76E245CF-C0D0-444D-BA50-36739C18EB00} CHROMEOS_RELEASE_BOARD=lakitu-signed-mpkeys CHROMEOS_RELEASE_BRANCH_NUMBER=84 CHROMEOS_RELEASE_BUILDER_PATH=lakitu-release/R60-9592.84.0 CHROMEOS_RELEASE_BUILD_NUMBER=9592 CHROMEOS_RELEASE_BUILD_TYPE=Official Build CHROMEOS_RELEASE_CHROME_MILESTONE=60 CHROMEOS_RELEASE_DESCRIPTION=9592.84.0 (Official Build) stable-channel lakitu CHROMEOS_RELEASE_NAME=Chrome OS CHROMEOS_RELEASE_PATCH_NUMBER=0 CHROMEOS_RELEASE_TRACK=stable-channel CHROMEOS_RELEASE_VERSION=9592.84.0 DEVICETYPE=OTHER GOOGLE_RELEASE=9592.84.0 HWID_OVERRIDE=LAKITU DEFAULT BUILD_ID=9592.84.0 NAME="Container-Optimized OS" KERNEL_COMMIT_ID=30321742b4e00c2250c21bb15f64cb23fa443c74 GOOGLE_CRASH_ID=Lakitu VERSION_ID=60 BUG_REPORT_URL=https://crbug.com/new PRETTY_NAME="Container-Optimized OS from Google" VERSION=60 GOOGLE_METRICS_PRODUCT_ID=26 HOME_URL="https://cloud.google.com/compute/docs/containers/vm-image/" ID=cos Docker版本: Docker version 1.13.1, build […]

login到Logstash:将不同应用程序的日志分隔在一个容器中

我有轨道应用程序在客运networking服务器运行docker集装箱。 我正在尝试将应用程序日志redirect到Logstash。 我将rails日志redirect到STDOUT并将容器configuration为使用gelf日志驱动程序,将stdoutredirect到给定的Logstash服务器。 但问题出现了:乘客networking服务器也写他自己的日志到STDOUT。 而且我得到了两个日志的混合,这使得很难分离和分析。 这种情况下的最佳做法是什么? 我怎样才能标记每个日志stream来分隔logstash?

应用程序/自定义日志魔术与docker上的php-fpm

我有一些基于stream明框架的PHP应用程序的基本设置。 该应用程序运行在php7.1 / php-fpm容器内的php7.1 / php-fpm 。 (Apache在其他docker容器中) 基本上,我需要的是从我的应用程序(使用monolog)直接login到stderr ,所以我可以看到他们与docker日志。 该应用程序configuration为login到stderr并正常工作,但FPM捕捉输出并将其写入文件! /var/log/php-fpm/error.log (它被configuration为在这里login?) [09-Nov-2017 10:06:56] WARNING: [pool www] child 303 said into stderr: "hello, world" [09-Nov-2017 10:06:56] WARNING: [pool www] child 300 said into stderr: "hello, world" [09-Nov-2017 10:06:57] WARNING: [pool www] child 359 said into stderr: "hello, world" 访问日志正确地进入stderr 。 而最好的部分: FPM 未configuration为logging到文件( error.log […]

docker-compose在容器重启时重播过去的输出

看起来docker-compose在容器重新启动时重放捕获的输出。 这是违背期望的,误导我的容器实际在做什么。 这可以禁用? 例如, 我有一个简单的服务,logging和退出瓦特/代码0。 在docker-compose.yml中,我有restart: always设置。 当运行docker-compose up ,每次logging容器在现有的时候恢复,我看到所有先前的输出重新logging,加上当前运行的新增加。 这是一个易于运行的例子 。 克隆, cd <project>/fluentd , cd <project>/fluentd docker-compose build和cd <project>/fluentd docker-compose up 我使用docker-compose版本1.16.1,在OSX上构build6d1ac21。 提示将是伟大的!

从容器内查看容器日志

我知道从主机(包括映射这个卷),通过docker客户端API检查/var/lib/docker/containers/<containerid>-json.log的方式,但有没有其他的方式来查看日志从容器?

docker – 撰写可查询格式的日志

我用docker-compose。 问题:docker-compose日志以我的日志格式返回: service_1 | {"timestamp":"2017-11-28T15:31:47.065Z","correlationId":"NO_CORRELATION_ID","tags":…. 这很难用简单的脚本查询。 有没有办法改变格式? 理想情况下是这样的: {"name": "service_1", "data": "{"timestamp":"2017-11-28T15:31:47.065Z","correlationId":"NO_CORRELATION_ID","tags":…." } 目标是过滤来自具有相同请求ID的不同微服务的日志消息链。