【Deis文档】管理Deis之平台日志

注:本文翻译自Deis官方文档,无任何商业目的,转载请注明出处。

对于平台的组件和部署的应用的日志由两个组件来处理:Logger和Logspout。

deis-logspout运行在所有的CoreOS主机上,收集运行中的容器的日志然后将他们的日志发送到/deis/logs/host 和 /deis/logs/port。

deis-logger收集由logspout发送来的日志然后将他们存档以备控制器组件的使用,和当客户端运行deis logs的时候使用。此组件将其主机和端口发送到/deis/logs/host和/deis/logs/port,通常是消费来自deis-logspout的日志的服务。

将日志存放到自定义的地址

将日志记录到外部的地址可以通过不修改Deis的日志工作流来达到 - 我们可以简单地用ncat来发送CoreOS主机上的主日志。例如,如果我正在使用Papertrail的日志服务,我可以使用Papertrail提供给我的主机地址和端口将一个主机上所有的日志转发到Papertrail。

$ journalctl -o short -f | ncat --udp logs2.papertrailapp.com 23654

这通常只有在我们我们以一个服务的形式交付,我们没有必要自己运行的时候才有用。我可以为此使用fleet服务:

[Unit] Description=Log forwarder
[Service]
ExecStart=/bin/sh -c "journalctl -o short -f | ncat --udp logs2.papertrailapp.com 23654"
[Install]
WantedBy=multi-user.target
[X-Fleet]
Global=true

将此文件保存为log-forwarder.service。用fleetctl load log-forwarder.service && fleetctl start log-forwarder.service加载并启动服务。

很快,你应该开始看到来自你的集群每一个主机的日志出现在Papertrail的控制面板上。

docker

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: