Tag: 日志

使用PHP官方泊坞窗图像设置日志logging

我正在使用官方的PHP泊坞窗图像,但不知道如何设置日志logging工作。 我想查看我的error_log()结果在一个文件中。 更新 :我把/usr/src/php/php.ini-development改名为/usr/src/php/php.ini-development ,但是我只能看到使用docker logs截断docker logs 。

使用Docker运行应用程序的多个实例时,是否有最佳实践logging?

我正在尝试创build一个将在多台机器上的多个Docker实例上运行的应用程序。 由于我的容器将运行nginx作为他们的命令, docker logs将显示nginx日志的输出,这很好。 但是,这引出了一个问题:我的应用程序应该在哪里login? 我想过的选项如下。 login主机文件系统 据我所知,为了能够识别哪个Docker容器已经写入日志,我必须创build类似/var/logs/myapplication ,并为每个容器创build一个文件夹,并告诉我的应用程序在容器内写入进入该目录。 例如,我将不得不创build/var/logs/myapplication/instance-1并将其作为一个卷装入我的Docker容器中。 这种方法的问题是很难收集日志。 我将不得不ssh到不同的机器,进入每台机器的/var/logs/myapplication目录,并获取日志读取它们。 当我知道有一个问题时,这很好,但是当我试图监视整个系统的时候会感到困惑。 login数据库 在这种方法中,所有Docker容器都将写入数据库,并且数据库的其中一列将是container_name以便可以根据容器名称筛选日志。 这种方法的问题是,我从来没有使用数据库来保存日志,我真的不知道他们是否应该这样使用。 回到原来的问题 所以我的问题是,当你有多台机器上有多个容器的时候,是否有经过validation的最佳实践?

在docker的Pythonlogging器不工作

我想在泊坞窗上使用我的Python应用程序。 我正在使用一个名为autologging的包,它实际上使用了python的logging库。 当我在Docker容器中使用我的应用程序时,它会打印出sys打印出来的logging,而不是logging器产生的logging。 我试图在compose.yml文件中定义以下内容,但它仍然不起作用: stdin_open: True tty: True privileged: True cap_add: – "ALL" environment: – PYTHONUNBUFFERED=0 我也尝试了-u选项。

用Fail2ban和Docker安全服务器

我在一个docker容器中使用了nginx,我可以很容易地在主机上与我的nginx docker容器共享我的日志文件。 日志是在它上面,并在/var/log/nginx文件夹上工作。 我在主机上安装了fail2ban来检查日志文件,特别是access.log 。 我testing一个简单的filter # Fail2Ban configuration file # Author: Miniwark [Definition] failregex = ^<HOST> .*"GET .*w00tw00t # try to access to admin directory ^<HOST> .*"GET .*admin.* 403 ^<HOST> .*"GET .*admin.* 404 # try to access to install directory ^<HOST> .*"GET .*install.* 404 # try to access to phpmyadmin ^<HOST> .*"GET .*dbadmin.* 404 […]

停止写入标准输出和stderror的Tomcat

我们使用docker。 我们使用fluentd作为我们的docker集装箱的日志驱动程序。 我们使用tomcat来为Java应用程序提供服务。 当在java应用程序中抛出exception时,我们使用log4j来处理这个exception。 为了控制日志logging,我已经根据https://tomcat.apache.org/tomcat-6.0-doc/logging.html中的说明在tomcat上安装了log4j。 这是我正在使用的configuration。 log4j.rootLogger = INFO, CATALINA # Define all the appenders log4j.appender.CATALINA = org.apache.log4j.DailyRollingFileAppender log4j.appender.CATALINA.File = ${catalina.base}/logs/catalina log4j.appender.CATALINA.Append = true log4j.appender.CATALINA.Encoding = UTF-8 # Roll-over the log once per day log4j.appender.CATALINA.DatePattern = '.'yyyy-MM-dd'.log' log4j.appender.CATALINA.layout = org.apache.log4j.PatternLayout log4j.appender.CATALINA.layout.ConversionPattern = stewart %d [%t] %-5p %c- %m%n log4j.appender.LOCALHOST = org.apache.log4j.DailyRollingFileAppender log4j.appender.LOCALHOST.File = ${catalina.base}/logs/localhost log4j.appender.LOCALHOST.Append […]

AWS ECS – 如何从ECS容器login到cloudwatch?

我有一个在ECS集群中运行给定任务的容器。 我想在cloudwatch中logging这个任务的结果。 我试图编辑容器来使用awslogs并设置下面的参数: awslogs-group awslogs-region 当我尝试运行任务时,出现以下有用的错误: 有没有一种成熟的MVP方法来设置容器在AWS中login到cloudwatch?

将Docker容器日志configuration到特定文件的最简单方法

我想在Docker中运行一些Python服务,他们打印日志到stout和sterr。 日志文件在Docker默认目录中的所有位置,越来越大吃我的空间。 我想更改日志文件位置的原因是因为: 环境是centos 6.5与docker1.7.1(我不能改变这一点),我有麻烦swtichdocker图像文件夹(这是另一个问题,这个问题是关于日志logging) Docker 1.8已经发布了一个日志旋转选项。 –log-opt max-size=50m其中1.7不能使用。 我search了很长时间,甚至没有一篇文章谈到configurationdocker容器日志到主机中的特定文件。 我看到的最后的结论是: 使用–log-driver = syslog,然后使用logstash(必须设置另一个服务logstash,代价高昂) 使用–log-driver = syslog,logging到papertrail和loggly,这是另一个需要付费的webservice。 谷歌的一些顶级文章都与他们有关,也许他们的SEO我认为,真的很糟糕。 使用一些docker容器项目,如https://github.com/gliderlabs/logspout ,仍然使用–log-driver = syslog将日志传输到另一个服务…为什么它不会只写入主机中的文件。 .. 如果应用程序login到文件位置(如/tmp/nginx.log ,则可以使用-v(–volume)将文件映射到主机。 但是我的python服务在命令行中只logging到stout而不是文件,我不能修改它们的代码! 关于以上的认可主要有两种方式: 使用–log-driver = syslog和另一个服务 良好的隔离 只需将相同的configuration添加到所有容器(-log-opt syslog-address = [tcp | udp | tcp + tls]:// host:port) 但需要一个或多个外部服务 使用volumne地图 需要更改代码或命令 需要为每个容器设置卷映射(可能不同) 我认为最好的方法是:使用另一个docker容器/服务(无状态,简单或无configuration)来汇聚日志,然后只写一个主机文件(不要发送到另一个服务) 更新: 我使用的一个docker容器是从这个Dockerfile中修改的。 它的命令行是docker run -d binux/pyspider phantomjs 。

Fluent docker tail vs docker fluentd logging driver

我不能决定哪一个在实际应用中更强大: 一)使用fluentddocker日志驱动程序 – docker将其数据发送到fluentd驱动程序 B)使用fleund来拖拽默认的docker json日志。 为什么我对A有问题? 那么,在编程中就像是“控制倒置”原理一样: 它是一个更多的依赖项,如果没有正确设置docker将无法启动 当所有日志都作为stdout转发到同一端口时,过滤和格式化不同types的日志可能会很痛苦。 最大的问题是:在遇到失败的情况下,无法恢复日志! 我更倾向于解决schemeB,但我错过了一些关于这个问题的经验。 我想念什么?

在Docker中运行应用程序时,将应用程序日志从文件夹stream到标准输出

我遇到了一件麻烦事: 我的容器运行命令/opt/1C/…/crserver –some-params 这个应用程序可以写日志到特定的文件夹,不能标准输出 问题是我怎样才能stream这个文件像tail -F /opt/logs/*但保持我的容器过程相同?

我可以使用logspout在Docker群集上进行全局系统日志logging吗?

我有一个运行Docker 1.12的单一Docker主机,能够使用gliderlabs / logspout将docker日志集中到papertrail。 是否有可能将此configuration部署到Docker Swarm上的所有节点? 我努力了: docker service create –name logspout –mode=global \ gliderlabs/logspout \ syslog+tls://<yourhost>.papertrailapp.com:<yourport> 但是服务不断重新开始。 在docker(非swarm实例)上,您需要将unix:///var/run/docker.sock套接字unix:///var/run/docker.sock映射到papertrail文档中 。 这是可能的群体服务? 如何将docker socket安装到服务中?