Tag: logging

stream利的JSONparsing器:获取无法parsing的消息

在我目前的项目中,我必须处理不同types的日志logging在一个来源(http)中进入我的fluentd。 大多数条目是JSON格式的,但在某些情况下,我必须处理明文logging。 (例如,在设置日志库之前的例外情况)。 我如何处理我的fluentd-config中的这种情况? 我的详细设置:我使用Docker的fluentd-logging-driver作为一些带有node.js-app的容器。 node.js-app有一个日志logging库,它以json格式将所有内容logging到stdout / stderr。 每个运行时exception也将被格式化为json。 我的问题只发生在node.js无法启动(如缺less依赖关系..)。 在这种情况下,exception将被格式化为纯文本。 这会导致fluentd中的错误,因为它不能被parsing。 Fluentd也运行在一个容器中。 我的第一个方法是将fluentd-own-messages(包括parsing器错误消息)也logging到我的elasticsearch中,但是原来的消息get的来源是这种方法丢失的。 我运行了大约15个不同的服务,所以我真的需要我的exception的“源”。 <source> @type forward port 24224 </source> <filter fluent.**> @type record_transformer <record> fields.module fluentd #fields.module is my identifier for the source </record> </filter> <match fluent.**> @include elastic.conf #elastic configuration is in a separate file </match> # JSON-Parse <filter **> @type parser […]

Docker日志将JSON日志解释为string

我们的Go服务器以JSON的forms输出日志到stdout,每一行看起来像下面这样: {"time": "2017-06-01 14:00:00", "message": "Something happened", "level": "DEBUG"} 我们的docker-compose使用标准的json-filelogging器,它将每行logging在一个log字段中作为一个转义string,如下所示: { "log": "{\"time\": \"2017-06-01 14:00:00\", \"message\": \"Something happened\", \"level\": \"DEBUG\"}\"", "timestamp": "<the time>", …more fields… } 但是我们不希望将日志字段作为string转义,我们希望将其作为JSONembedded到同一级别: { "log": { "time": "2017-06-01 14:00:00", "message": "Something happened", "level": "DEBUG" }, "timestamp": "<the time>", …more fields… } 这可以实现吗?

如何着色docker集装箱的日志

我有容器,在日志中有时会写出对我来说重要的关键词,我想在terminal中用颜色突出显示这个词,但重要的是仍然可以实时查看所有内容日志(–follow)。 我只是尝试命令 docker logs -f my_app –tail=100 | grep –color -E '^myWord' 但不工作。 所以存在某种方式来做到这一点?

在Kubernetes集群中的自定义docker容器与使用Stackdriver的日志

我想知道为了发送在我的自定义Apache容器中创build的日志(部署在Kubernetes的一个容器中)到Stackdriver收集器必须遵循哪些步骤。 我注意到,如果我使用标准的apache(或nginx)容器创build一个窗格,access.log和error.log会自动发送到Stackdriver。 实际上,我可以在Kubernetes仪表板和Google Cloud Dashboard上看到日志 – >日志logging – >日志,但是我没有看到任何与我的自定义Apache相关的东西。 有什么build议么?

Docker:电池历史logging – 拉取拒绝访问或需要dockerlogin

我正在关注https://github.com/google/battery-historian 我正试图在我的Mac上执行以下命令: $ docker run -p 5665:9999 gcr.io/android-battery-historian/stable:3.0 –port 9999 但是我得到以下错误: Unable to find image 'gcr.io/android-battery-historian/stable:3.0' locally docker: Error response from daemon: pull access denied for gcr.io/android-battery-historian/stable, repository does not exist or may require 'docker login'. 任何导致赞赏。

在达到限制时限制elasticsearch索引的大小和翻转

我有一个运行elasticsearch的docker容器,最近我遇到了容器因为空间不足而停下来的情况。 现在我无法启动(立即停止)并清理磁盘。 我知道我可以在一些时间基础上(日常)将日志写入不同的索引(然后我已经这样做了),然后清理它们,但即使采用这种方法,当我的容器生成如此多的日志时,我的清理工作开始之前,空间不足,将被打破。 我今后如何通过elasticsearch来防止这种情况,以确保我的索引不超过我定义的限制? 是否有更好的方法来pipe理elasticsearch日志占用的磁盘空间?

如何pipe理/旋转/删除mesos日志

我使用以下命令启动mesos主容器: ExecStart=/usr/bin/docker run –rm \ -e MESOS_HOSTNAME={{ ansible_hostname }} \ -e MESOS_IP={{mesos.external_ip}} \ -e MESOS_QUORUM={{mesos.quorum}} \ -e MESOS_ZK={{mesos.zk}} \ -e MESOS_LOG_DIR=/var/log/mesos -v /var/log/mesos:/var/log/mesos \ -e MESOS_WORK_DIR=/var/lib/mesos -v {{mesos_work_dir}}:/var/lib/mesos \ –name mesos-master –net host {{docker.master}} 我得到了大量的mesos日志: mesos日志 lrwxrwxrwx. 1 root root 60 Apr 19 17:14 mesos-master.INFO -> mesos-master.vdorct1.invalid-user.log.INFO.20170419-141458.6 -rw-r–r–. 1 root root 23983 Apr 19 16:46 […]

Docker日志文件:如何知道笔记的时间?

我有从docker容器服务器的日志文件。 我怎么能知道什么时候确切的行被写入? 日志视图如下所示: … [90mGET /api/clients [32m200 [90m31ms[0m [90mGET /api/clients/564adbadf9e6a9cf7281053f/getAllClientsByAdmin [32m200 [90m19ms[0m [90mPOST /api/clients/50000b00000389/heartBeat [32m200 [90m38ms – 210b[0m [90mGET /api/clients [36m304 [90m17ms[0m [90mGET /api/clients [36m304 [90m19ms[0m [90mGET /api/clients/56a752ad53259fa20629da24/getAllClientsByAdmin [36m304 [90m26ms[0m [90mGET /api/clientFiles/download/7aa4f7d3e4a5ecaebd86696f642c9204 [33m404 [90m4ms – 9b[0m [90mGET /api/clients [36m304 [90m14ms[0m [90mGET /api/clients/4edd40c86762e0fb12000003/getAllClientsByAdmin [36m304 [90m19ms[0m [90mGET /api/clients/5644a32ce9e9a5125be6adc1/getAllClientsByAdmin [32m200 [90m88ms[0m [90mGET /api/clients [32m200 [90m80ms[0m [90mGET /api/clients/5644a32ce9e9a5125be6adc1/getAllClientsByAdmin [32m200 […]

Google Container Engine stdout日志不显示

我的标准输出日志没有显示在Google日志查看器中,或者在使用kubectl logs <pod> 。 集群启用了云日志logging,并且每个节点上都运行了stream畅的容器。 Python代码示例: logger = logging.getLogger() logger.setLevel(logging.INFO) handler = logging.StreamHandler(sys.stdout) handler.setLevel(logging.INFO) logger.addHandler(handler) logger.info("test log") 他们的文档中的“counter-pod”示例在我的集群上工作,所以fluentd容器正在拾取stdout并将其发送到Logs Viewer。 任何build议我应该尝试的事情? 提前致谢。

为Docker Logstash映像设置日志位置

我正在尝试创build一个Logstash与自定义http进行交互的Docker镜像。 想知道如何设置Logstash将要读取的日志位置的物stream。 Logstash进程在EC2上运行,并将使用基于文件的input从Apache,HAProxy,Jboss应用程序读取。 如果有人能够更多地指出这一点,将非常感激。