赞
踩
本教程由羞涩梦整理同步发布,本人技术分享站点:blog.hukanfa.com
转发本文请备注原文链接,本文内容整理日期:2024-03-19
csdn 博客名称:五维空间-影子,欢迎关注
说明
docker logs -f imageId
命令方式实时查看容器运行日志java
程序,可以通过tee
命令将日志转存到文件同时不影响控制台日志输出java -jar xxx.jar | tee /logs/app.log
说明
json-file
是docker默认使用的日志驱动插件,默认情况下运行中的容器日志存放在如下目录# 默认的日志路径
/var/lib/docker/containers/容器ID/容器ID-json.log
# 常用的日志驱动插件如下
local json-file syslog gelf fluentd loki
提示
/var/lib/docker/containers/容器ID/
生成新的日志文件,日志会走日志驱动插件的存储流程操作如下
# 可以通过修改配置,限制单个日志文件大小及保留的日志份数
vim /etc/docker/daemon.json
...
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3"
},
...
docker run --log-driver json-file --log-opt max-size=10m alpine echo hello world
docker-compose
方式运行设置# 将控制台标准及错误输出上传到远程机集中保存,当然可以对rsyslog配置更细致的分类存储规则,这里不细讲 version: '3' services: superset: image: superset:diy-v1.8 container_name: superset hostname: superset restart: always ports: - 8080:8088 environment: - TZ=Asia/Shanghai - SUPERSET_SECRET_KEY=oCghysSLvk2BSa9bPEOz6avKzjLHYkedO6ztCZ/sv5j3pwuIg63wVLeY volumes: - ./logs:/app/superset_home logging: driver: "syslog" options: syslog-address: "tcp://192.168.26.22:514" tag: "superset" # 给日志打上标识,这样在远程机上查看日志时就知道是哪个服务的日志了
rsyslog
配置/etc/rsyslog.conf
,仅供参考### 打开一下注释,允许通过 tcp 和 udp 协议进行传输
module(load="imudp") # needs to be done just once
input(type="imudp" port="514")
module(load="imtcp") # needs to be done just once
input(type="imtcp" port="514")
### 新增以下两项
# 定义远程日志存储的模板,这里按照远程主机ip地址进行日志分类存储
# /data/nfsShare/192.168.26.21/192.168.26.21_2024-03-18.log
$template Remote,"/data/nfsShare/%fromhost-ip%/%fromhost-ip%_%$YEAR%-%$MONTH%-%$DAY%.log"
# 这是一条匹配规则,只有符合规则的远程IP或主机名称才会应用上面定义的模板。否则存到默认路径 /var/log/message
:fromhost-ip, isequal, "192.168.26.21" ?Remote
:fromhost-ip, isequal, "vpc-hukanfa-01" ?Remote
# 一般linux操作系统都默认安装了这个服务
systemctl restart rsyslog
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。