加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

ruby – 从Docker容器登录macOS中的syslog/console?

发布时间:2020-12-16 03:40:52 所属栏目:安全 来源:网络整理
导读:我将Docker容器设置为将日志发送到CentOS 7上的主机日志(使用log-driver syslog).我想在macOS(Sierra)上复制这个.但它似乎没有出现在任何地方. $docker run --log-driver syslog -it busybox sh/ # logger "Hello world!"/ # exit 和: $sudo cat /var/log/s

我将Docker容器设置为将日志发送到CentOS 7上的主机日志(使用–log-driver syslog).我想在macOS(Sierra)上复制这个.但它似乎没有出现在任何地方.

$docker run --log-driver syslog -it busybox sh
/ # logger "Hello world!"
/ # exit

和:

$sudo cat /var/log/system.log | grep "Hello world"
Password:
$

什么配置是必要的,以使任何容器的任何Docker系统日志记录命令都可以出现在macOS上的日志文件中?

如果我不配置日志驱动程序,我可以查看这些类型的默认系统日志记录.但Ruby的syslog实现必须以不同方式记录.

$docker run --log-driver syslog -it centos /bin/bash
# yum install ruby -y
# ruby -e "require 'syslog/logger'; log = Syslog::Logger.new 'my_program'; log.info 'this line will be logged via syslog(3)'"
# exit
$sudo tail -n 10000 /var/log/system.log | grep "syslog(3)"
$
最佳答案
这取决于您如何记录您的消息.
如Daniel Walsh“Better ways of handling logging in containers ”所述:

One big problem with standard docker containers is that any service that writes messages to syslog or directly to the journal get dropped by default.
Docker does not record any logs unless the messages are written to STDIN/STDERR. There is no logging service running inside of the container to catch these messages.

所以一个简单的echo最终应该在syslog中,如chentex/random-logger图像所示.

从Docker for Mac / Log and Troubleshooting开始,您可以在docker运行后直接查看是否有任何日志:

To view Docker for Mac logs at the command line,type this command in a terminal window or your favorite shell.

$syslog -k Sender Docker

检查?/ Library / Containers / com.docker.docker / Data / com.docker.driver.amd64-linux / log的内容.
系统日志驱动程序已于PR 11458添加

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读