Tag: logging

Bunyan在aws上的logging器泄露文件描述符

我正在使用bunyan来login我的node.js API,它是由aws托pipe的。 当我加载testingAPI时,它会在4000个文件描述符之后出现。 我们发现应用程序上的打开文件描述符随着每个请求而增加。 configurationbunyanlogging器的代码如下所示 var defaultLogFileName = "/var/log/test_api.log", defaultLogLevel = "debug"; var logger = bunyan.createLogger({ name: 'resumes', streams: [{ path: process.env.LogFileName || defaultLogFileName, level: process.env.LogLevel || defaultLogLevel }] }); app.on('after', function(req) { logger.info("response = ", res); } 我们在ECS托pipe的Docker容器中运行此API,并使用restify。 bunyanlogging器是否正确执行? 有什么我错过了吗?

如何使fail2ban读取json docker日志

是否可以configuration我的fail2ban jail.conf来检查docker日志而不是挂载主机上的日志。 例如将日志path设置为容器日志的path。 Jail.conf: … #example [nginx-http-auth] enabled = true filter = nginx-http-auth port = http,https logpath = /var/lib/docker/containers/819564257d4*/*e0923e-json.log … 但这并没有太大的作用,因为docker logs命令和日志文件之间有一点区别: # docker logs @nginx_container_name 2016/03/23 12:39:52 [error] 6#6:* 350上游过早closures连接,同时读取来自上游的响应头,客户端: @ ATTACKER_IP ,服务器: @MY_DNS ,请求:“GET / Blog / wp-login .php HTTP / 1.1“,上游:” http://172.17.0.3:8001/Blog/wp-login.php “,主机:” @MY_IP:80“ @ATTACKER_IP – – [23 / Mar / 2016:12: […]

如何在使用fluentd进行docker日志时获取容器和图像名称?

我正在使用一个fluentd容器来挂载/ var / lib / docker / containers目录,并且拖曳每个容器的所有日志。 日志存储在/var/lib/docker/containers/$container_id/$container_id-json.log中。 这些不包含容器名称或图像名称。 我需要能够将容器和图像名称分别添加到来自日志文件的每个日志中。 容器名称和映像名称都存储在/var/lib/docker/container/$container_id/config.v2.json中。 我不知道如何从该文件中获取图像和名称,并将其作为logging添加到相应的日志中。 这只是我的第一个想法,可能有更好的方法来做到这一点,随时提供任何意见。 旁注:我故意不使用fluentd作为docker日志logging驱动程序,因为我们以前以类似的方式使用了logspout。 目前的目标是用类似的方式用fluentdreplacelogspout。 如果日志logging驱动程序确实以更简单的方式提供了这些信息,那么稍后我会考虑切换。

Docker容器中Javaexception的Filebeat多行parsing不起作用

我正在运行Filebeat来从运行在容器中的Java服务中发送日志。 此容器有许多其他服务正在运行,并且相同的Filebeat守护程序正在收集主机中运行的所有容器的日志。 Filebeat将日志转发到Logstash,并将它们转储到Elastisearch中。 我正在尝试使用Filebeat多行function将来自Javaexception的日志行组合到一个使用以下Filebeatconfiguration的日志条目中: filebeat: prospectors: # container logs – paths: – "/log/containers/*/*.log" document_type: containerlog multiline: pattern: "^\t|^[[:space:]]+(at|…)|^Caused by:" match: after output: logstash: hosts: ["{{getv "/logstash/host"}}:{{getv "/logstash/port"}}"] 应该聚合成一个事件的Java堆栈跟踪的示例: 这个Java stacktrace是一个来自docker日志条目的副本(在运行docker日志java_service之后 ) [2016-05-25 12:39:04,744][DEBUG][action.bulk ] [Set] [***][3] failed to execute bulk item (index) index {[***][***][***], source[{***}} MapperParsingException[Field name [events.created] cannot contain '.'] at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseProperties(ObjectMapper.java:273) at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseObjectOrDocumentTypeProperties(ObjectMapper.java:218) […]

系统日志从nginx Docker容器到logstash

我的目标是启动一个标准的nginx服务器的普通docker集装箱。 这是我在docker quickstartterminal中的命令行input: docker run –log-driver=syslog –log-opt tag="nginx" –log-opt syslog-address =udp://[IP]:1514 nginx docker集装箱启动和工作,但docker集装箱的输出只是:运行日志作业:configuration的日志logging阅读器不支持阅读 而我的logstash没有得到任何系统日志。 但是我知道我的logstash是在正确的IP和端口上,因为我用其他系统日志来testing它。 docker -v: Docker version 1.10.1, build 9e83765 DOCKER信息: Containers: 5 Running: 5 Paused: 0 Stopped: 0 Images: 135 Server Version: 1.10.1 Storage Driver: aufs Root Dir: /mnt/sda1/var/lib/docker/aufs Backing Filesystem: extfs Dirs: 312 Dirperm1 Supported: true Execution Driver: native-0.2 Logging Driver: […]

Nginx的泊坞窗(13:权限被拒绝)logging请求挂载卷

我正在使用nginx版本:nginx / 1.11.8 我的docker文件如下所示: FROM nginx COPY website /usr/share/nginx/html/website/ RUN chown -R nginx /usr/share/nginx/html RUN chown -R nginx /var/log/nginx/ EXPOSE 80 我正在为我的访问日志名称使用variables,如下所示。 当没有安装到主机上的目录运行时,这工作正常,日志产生。 location / { try_files $uri /index.html; if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})") { set $year $1; set $month $2; set $day $3; } access_log /var/log/nginx/nginx.$hostname.$year-$month-$day.log logs; } 我的主机日志目录是owner:steve group:logs 如果我从访问日志名称中删除variables,那么它正确地logging到主机目录,即 access_log /var/log/nginx/nginx.novars.log logs; 我错过了明显的东西让这个工作使用variables?

自动日志旋转不执行

这是我的泊坞窗日志旋转的conf文件(docker-container): /var/lib/docker/containers/*/*.log { rotate 7 hourly compress maxsize 10M missingok create root root delaycompress copytruncate } 这是我的命令来运行日志旋转: sudo logrotate -fv /etc/logrotate.d/docker-container 当我手动运行命令日志正在旋转,但1小时后,它不会自动旋转。 如何启用自动日志旋转?

parsing日志fluentd

我有本地服务器在docker容器中运行,它被设置为使用fluentd作为日志驱动程序。 我有docker撰写文件,在自己的容器中运行fluentd,nginx,elasticsearch和kibana。 所以fluentd从我的服务器取得日志,传递给elasticsearch并显示在Kibana上。 我的问题是,如何parsing我的日志fluentd(elasticsearch或kibana如果不可能在fluentd中)来制作新的标签,所以我可以对它们进行sorting,并且更容易导航。 这是Kibana中显示的当前日志。 现在我想把这个日志string'破解'成新的标签。 在这种情况下: 2017/01/04 13:26:56.574909 UTC (Example deployment.web) [INFO] [GET] /api/device/ 200 10.562379ms 至 date: 2017/01/04 time: 13:26:56.574909 UTC message: (Example deployment.web) logType: [INFO] other: [GET] /api/device/ 200 10.562379ms 我的docker-compose.yml version: "2" services: fluentd: image: fluent/fluentd:latest ports: – "24224:24224" volumes: – ./fluentd/etc:/fluentd/etc command: /fluentd/etc/start.sh networks: – lognet elasticsearch: image: elasticsearch ports: […]

如何loginamazon web services(AWS)?

我有一个在Golang中构build的项目,并部署在AWS的Docker实例中。 在内部我创build一个日志文件,程序在其中写入多个日志。 我怎样才能访问该日志文件? 有没有另一种正确的方法来logging? 谢谢

在docker RTS沙箱中使用log4jloginApache Apex

我想了解在Docker中使用官方RTS Test Sandbox in docker时,如何使用Apache Apex中的log4j查看我的应用程序日志。 更具体地说,我想知道Apex在容器内存储特定于应用程序的日志文件的位置。 我正在运行最新的官方docker图像: https : //hub.docker.com/r/datatorrent/rts/ 使用在http:// localhost:9090 /上运行的dtManage ,我成功上传了我的应用程序并启动了它。 在Monitor选项卡中,我可以看到我的操作员正在接收和发送元组。 当我点击名为AM logs的蓝色buttonAM logs ,会显示3个日志文件的下拉菜单,分别是: AppMaster.sdterr AppMaster.stdout apex.log 当我打开并search所有3个文件的日志时,我可以看到来自apex的许多日志,但是没有打印我的自定义应用程序日志。 我的日志logging代码如下所示: private static final Logger LOG = LoggerFactory.getLogger(Application.class); LOG.info("helloworld"); 在本地模式下运行应用程序时,我的所有日​​志在控制台中都是可见的。 在properties.xml中,我也启用了全面的debugging: <property> <name>dt.attr.DEBUG</name> <value>true</value> </property> 有人可以帮我吗?