繁体   English   中英

配置docker-compose日志以省略前置文本

[英]configure docker-compose logs to omit prepended text

当我运行docker-compose up时,我得到以下日志:

kibana_1  | {"type":"log","@timestamp":"2019-09-09T21:41:46Z","tags":["reporting","browser-driver","warning"],"pid":6,"message":"Enabling the Chromium sandbox provides an additional layer of protection."}
kibana_1  | {"type":"log","@timestamp":"2019-09-09T21:41:46Z","tags":["reporting","warning"],"pid":6,"message":"Generating a random key for xpack.reporting.encryptionKey. To prevent pending reports from failing on restart, please set xpack.reporting.encryptionKey in kibana.yml"}
kibana_1  | {"type":"log","@timestamp":"2019-09-09T21:41:46Z","tags":["status","plugin:reporting@7.3.1","info"],"pid":6,"state":"green","message":"Status changed from uninitialized to green - Ready","prevState":"uninitialized","prevMsg":"uninitialized"}
kibana_1  | {"type":"log","@timestamp":"2019-09-09T21:41:46Z","tags":["info","task_manager"],"pid":6,"message":"Installing .kibana_task_manager index template version: 7030199."}
kibana_1  | {"type":"log","@timestamp":"2019-09-09T21:41:46Z","tags":["info","task_manager"],"pid":6,"message":"Installed .kibana_task_manager index template: version 7030199 (API version 1)"}
kibana_1  | {"type":"log","@timestamp":"2019-09-09T21:41:47Z","tags":["info","migrations"],"pid":6,"message":"Creating index .kibana_1."}
kibana_1  | {"type":"log","@timestamp":"2019-09-09T21:41:47Z","tags":["info","migrations"],"pid":6,"message":"Pointing alias .kibana to .kibana_1."}
kibana_1  | {"type":"log","@timestamp":"2019-09-09T21:41:47Z","tags":["info","migrations"],"pid":6,"message":"Finished in 254ms."}
kibana_1  | {"type":"log","@timestamp":"2019-09-09T21:41:47Z","tags":["listening","info"],"pid":6,"message":"Server running at http://0:5601"}

我可以使用一些配置以使其仅吐出JSON吗? 我希望它在每行之前省略"kibana_1 | "部分。

当然,理想情况下,它可以使JSON成为该部分,例如{"source":"kibana_1", ...}

注意:不确定docker-compose是否支持此功能,但是您可以查看Docker日志记录驱动程序。


您可以做的是使用docker-compose logs -fcut命令管道输出。

下面是一个示例:

docker-compose logs -f kibana | cut -d"|" -f2
..
 {"type":"log","@timestamp":"2019-08-11T03:44:01Z","tags":["status","plugin:xpack_main@6.8.1","info"],"pid":1,"state":"green","message":"Status changed from red to green - Ready","prevState":"red","prevMsg":"Request Timeout after 3000ms"}
 {"type":"log","@timestamp":"2019-08-11T03:44:01Z","tags":["status","plugin:graph@6.8.1","info"],"pid":1,"state":"green","message":"Status changed from red to green - Ready","prevState":"red","prevMsg":"Request Timeout after 3000ms"}
 {"type":"log","@timestamp":"2019-08-11T03:44:01Z","tags":["status","plugin:searchprofiler@6.8.1","info"],"pid":1,"state":"green","message":"Status changed from red to green - Ready","prevState":"red","prevMsg":"Request Timeout after 3000ms"}
..

cut -d"|" -f2 cut -d"|" -f2命令将查找| 字符,然后输出所有内容。

您可以通过删除前导空格来使它更进一步(尽管我确信有更好的方法可以做到这一点)。

docker-compose logs -f kibana | cut -d"|" -f2 | cut -d" " -f2
..
{"type":"log","@timestamp":"2019-08-11T03:47:53Z","tags":["status","plugin:maps@6.8.1","error"],"pid":1,"state":"red","message":"Status
{"type":"log","@timestamp":"2019-08-11T03:47:53Z","tags":["status","plugin:index_management@6.8.1","error"],"pid":1,"state":"red","message":"Status
{"type":"log","@timestamp":"2019-08-11T03:47:53Z","tags":["status","plugin:index_lifecycle_management@6.8.1","error"],"pid":1,"state":"red","message":"Status
..

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM