Tag: 日志

使用docker-compose和GELF日志驱动程序

根据官方的Docker文档 ,可以将容器的stdout和stderr输出作为GELF消息获得 , GELF消息是Graylog / Graylog2和logstash可以理解的格式。 这工作正常,当我从命令行手动运行我的容器。 例如, docker run –log-driver=gelf –log-opt gelf-address=udp://localhost:12201 busybox echo This is my message. 将发送一个日志消息到我的本地主机上运行的Graylog2服务器,该主机有一个在端口12201configuration的UDPinput监听器。 现在,我想用docker-compose使用相同的日志选项,根据文档, 原则上应该是可能的 。 但是,文档没有提到任何日志格式,但json-file , syslog和none ,当我包括类似的东西 my-container: container_name: … build: … ports: … log_driver: "gelf" log_opt: gelf-address: "udp://localhost:12201" 在我docker-compose.yml文件中docker-compose.yml docker-compose up失败: Traceback (most recent call last): File "<string>", line 3, in <module> File "/code/build/docker-compose/out00-PYZ.pyz/compose.cli.main", […]

如何使用日志驱动程序从泊坞窗容器stream多个日志

如果我有一个logindocker容器,我只能select1日志stream到标准输出,它工作得很好。 但是,如果我在docker容器中有多个日志,并且想要使用aws日志驱动程序将每个日志stream式传输到cloudwatch呢? 例如我有tomcat应用程序日志,tomcat访问日志和tomcat错误日志。 理想情况下,我希望每个日志stream到它自己的日志组。 所以会是这样的: O AWS_cloudwatch_log_group_application_logs – log_stream_application_logs_instance_a – log_stream_application_logs_instance_b – log_stream_application_logs_instance_c O AWS_cloudwatch_log_group_access_logs – log_stream_access_logs_instance_a – log_stream_access_logs_instance_b – log_stream_access_logs_instance_c O AWS_cloudwatch_log_group_error_logs – log_stream_error_logs_instance_a – log_stream_error_logs_instance_b – log_stream_error_logs_instance_c O AWS_cloudwatch_log_group_catalina_logs – log_stream_catalina_logs_instance_a – log_stream_catalina_logs_instance_b – log_stream_catalina_logs_instance_c 我将如何实现这一目标?

我应该如何处理与systemd远程日志logging?

我在Google Compute Engine(GCE)上运行多个CoreOS实例。 CoreOS使用systemd的日志loggingfunction。 我如何将所有日志推送到远程目的地? 据我所知,systemd日志不带有远程日志function。 我目前的解决方法如下所示: journalctl -o short -f | ncat <addr> <ip> 使用https://logentries.com 通过TCP使用基于令牌的input : journalctl -o short -f | awk '{ print "<token>", $0; fflush(); }' | ncat data.logentries.com 10000 有更好的方法吗? 编辑: https : //medium.com/coreos-linux-for-massive-server-deployments/defb984185c5

如何在Docker容器中启用iptables日志logging?

我最近创build了一些Docker镜像,以build立一个开放的VPN和防火墙(iptables)支持的容器。 到目前为止,大多数情况都可以正常工作,但是由于我在防火墙方面遇到了一些问题,我添加了一些iptables规则来将丢弃的包logging到/ var / log / messages。 我意识到,即使有些东西被丢弃,在/ var / log下也没有find日志文件。 因此,我的问题是:Alpine Linux如何处理(系统)日志logging,以及如何特别检查iptables日志? UPDATE 正如清单所指出的那样,内核中的默认日志logging已被禁用,以防止洪泛日志的DDOS攻击。 为了使日志工作,我安装了ulogd,并按照这里的指示。

将docker容器日志发送到logstash的最佳方法

比方说,我有一个容器(泊坞窗)内运行的Nginx。 访问日志和错误日志通过STDOUT在Dockerfile中发送: # forward request and error logs to docker log collector RUN ln -sf /dev/stdout /var/log/nginx/access.log RUN ln -sf /dev/stderr /var/log/nginx/error.log Logspout似乎是一个优雅的解决scheme,可以在logstash内发送容器的STDOUT(configuration了sysloginput) input { syslog { type => syslog port => 5514 } } 但是logspout不知道通过STDOUT发送的日志的格式(或者我错过了什么?) 所以我必须做一些事情: input { syslog { type => nginx-access port => 5514 } } 但那么nginx错误日志呢? 如果我也通过STDOUT发送php-fpm日志呢? logspout如何pipe理这个? 另一个解决scheme是运行rsyslog indos容器并将收集的日志发送到logstatsh的input… 正如你所看到的,这对我来说并不是很清楚……我希望能够发送nginx和php-fpm日志到logstash,以便它们可以被解释为它们是什么……但是我没有find“好的做法“… […]

Elastic Beanstalk单容器泊坞窗 – 使用awslogslogging驱动程序

我使用单容器Dockerconfiguration在Elastic Beanstalk上运行单个Docker容器,并尝试使用awslogs日志logging驱动程序将应用程序stdout发送到CloudWatch。 EB寻找一个Dockerrun.aws.json文件来configuration容器,但据我所见,没有select使用awslogs作为容器的日志logging驱动程序(或者添加任何其他标志到docker run命令那件事)。 我已经尝试使用这里提供的答案.ebextensions/01-commands.config docker run命令,通过添加一个文件.ebextensions/01-commands.config与内容: commands: add_awslogs: command: 'sudo sed -i "s/docker run -d/docker run –log-driver=awslogs –log-opt awslogs-region=eu-west-2 –log-opt awslogs-group=dockerContainerLogs -d/" /opt/elasticbeanstalk/hooks/appdeploy/enact/00run.sh' 这是有效的,因为它会修改运行脚本,并在CloudWatch中显示日志。 但EB申请死亡。 容器已经打开,但没有回应请求。 我在容器日志中发现以下错误: “logs”命令仅支持“json-file”和“journald”日志驱动程序(got:awslogs) 我find与ECS(而不是EB)build议追加ECS_AVAILABLE_LOGGING_DRIVERS与awslogs类似的问题的答案。 但是我在EB中找不到这个configuration。 有什么想法吗?

从Docker容器login到macOS的系统日志/控制台?

我将我的Docker容器设置为将日志发送到CentOS 7上的主机日志(使用–log-driver syslog )。 我想在macOS(塞拉利昂)复制这个。 但它似乎并没有出现在任何地方。 $ docker run –log-driver syslog -it busybox sh / # logger "Hello world!" / # exit 和: $ sudo cat /var/log/system.log | grep "Hello world" Password: $ 需要什么样的configuration才能使任何任何容器的Docker系统日志logging命令出现在macOS上的日志文件中? 如果我不configuration日志驱动程序,我可以查看这些types的默认系统日志logging。 但是Ruby的syslog实现必须以不同的方式logging。 $ docker run –log-driver syslog -it centos /bin/bash # yum install ruby -y # ruby -e "require 'syslog/logger'; log […]

是否有可能从Docker容器中读取通过stdout传递的消息? (没有`docker日志`)

动机:通过计算一定数量的消息在一定时间范围内通过标准输出来运行Docker容器上的基本运行状况检查 即时目标:从docker exec启动的shell中,读取从主进程(PID 1)输出到stdout的数据, 我甚至不确定我想要什么是可能的。 如果是这样的话,解释为什么不会很感激 – 并有助于提高我的知识。 重现步骤: 启动容器 – container1 docker run -it –name container1 ubuntu bash -c -i "COUNT=0; while true; do echo Keep the dance floor beat going; ((COUNT++)); sleep 1; echo \"Count is: \${COUNT}\"; done;" 在另一个terminal窗口中, docker exec在同一个容器docker exec -it container1 bash启动另一个进程 我可以以某种方式tail / print / read由PID 1通过标准输出传递的消息吗? 我知道有一些解决方法 – […]

Docker Fluentd Logging Driver for multiline

我正在尝试使用fluentd创build一个集中的日志logging系统,用于Docker环境。 目前,我可以使用fluentd docker日志驱动程序将docker日志发送到fluentd,与使用in_tail方法读取docker日志文件相比,这是一个非常干净的解决scheme。 但是,我目前正面临着多线日志问题的问题。 正如你从上面的图片可以看到的那样,多行日志是无序的,这对用户来说是非常混乱的。 有什么办法可以解决? 谢谢。 CW

如何logging在Docker容器内运行的所有进程?

通过使用命令login到容器后 – docker exec -it <container_name> 如何检查容器内所有已处理的运行? 是“ps aux”正确的方法吗? 有更好的替代方法吗? 谢谢