Docker专题-03 Log-Driver日志转存

news/2024/4/27 13:41:19

Docker专题教程

`注`:
  • 本教程由羞涩梦整理同步发布,本人技术分享站点:blog.hukanfa.com

  • 转发本文请备注原文链接,本文内容整理日期:2024-03-19

  • csdn 博客名称:五维空间-影子,欢迎关注

  • 说明

    • 容器运行后,可以通过docker logs -f imageId 命令方式实时查看容器运行日志
    • 如果容器内的主应用是java程序,可以通过tee命令将日志转存到文件同时不影响控制台日志输出
    java -jar xxx.jar  | tee /logs/app.log
    
    • 如果容器内应用程序已经自定义日志生成路径,此时只要挂载出来即可
    • 除了以上方式存储日志外,还可以通过下面的方法将容器日志集中保存,方便集中管理、限制日志大小及后续告警

1.3.1 log-driver 介绍

  • 说明

    • json-file是docker默认使用的日志驱动插件,默认情况下运行中的容器日志存放在如下目录
    # 默认的日志路径
    /var/lib/docker/containers/容器ID/容器ID-json.log
    

    image-20240319111611017

    • 当然docker-log-driver也提供了多套现成的日志驱动插件
    # 常用的日志驱动插件如下
    local  json-file  syslog  gelf  fluentd  loki
    
  • 提示

    • 日志的销毁是随着容器而销毁,stop容器不会导致日志销毁,rm容器后日志才跟随其一并移除
    • 只有重启容器或启动构建新的容器才会走新的日志驱动
    • 配置生效后不会在目录/var/lib/docker/containers/容器ID/生成新的日志文件,日志会走日志驱动插件的存储流程
    • 使用命令docker logs还是会将容器日志打印出来

1.3.2 log-driver 配置

  • 操作如下

    • 全局配置
    # 可以通过修改配置,限制单个日志文件大小及保留的日志份数
    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.8container_name: supersethostname: supersetrestart: alwaysports:- 8080:8088environment:- TZ=Asia/Shanghai- SUPERSET_SECRET_KEY=oCghysSLvk2BSa9bPEOz6avKzjLHYkedO6ztCZ/sv5j3pwuIg63wVLeYvolumes:- ./logs:/app/superset_homelogging:driver: "syslog"options:syslog-address: "tcp://192.168.26.22:514"tag: "superset"  # 给日志打上标识,这样在远程机上查看日志时就知道是哪个服务的日志了
    

    image-20240319134307538

    • 附上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
    
    • 配置完需重启 rsyslog 服务
    # 一般linux操作系统都默认安装了这个服务
    systemctl restart rsyslog
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.cpky.cn/p/10953.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

win10笔记本在显示设置中不慎将主显示器禁用掉导致开机黑屏的解决方案

因为笔记本电脑的显示扩展接口有问题,所以在电脑开机之后,会误识别出几个不存在的扩展屏幕,所以我就想从显示设置中将这几个误识别出来的扩展屏幕禁用掉(不然鼠标总是移动到主屏幕边界之外的地方),在显示设…

【c++】c++背景(c++的前世今生)

主页:醋溜马桶圈-CSDN博客 专栏:c_醋溜马桶圈的博客-CSDN博客 gitee:mnxcc (mnxcc) - Gitee.com 目录 1. 什么是C 2. C发展史 3. C的重要性 3.1 语言的使用广泛度 3.2在工作邻域 1. 操作系统以及大型系统软件开发 2. 服务器端开发 3. …

网络安全笔记-day6,NTFS安全权限

文章目录 NTFS安全权限常用文件系统文件安全权限打开文件安全属性修改文件安全权限1.取消父项继承权限2.添加用户访问权限3.修改用户权限4.验证文件权限5.总结权限 强制继承父项权限文件复制移动权限影响跨分区同分区 总结1.权限累加2.管理员最高权限2.管理员最高权限 NTFS安全…

关机恶搞小程序

1. system("shutdown")的介绍 当system函数的参数是"shutdown"时,它将会执行系统的关机命令。 具体来说,system("shutdown")的功能是向操作系统发送一个关机信号,请求关闭计算机。这将触发操作系统执行一系列…

【滑动窗口、矩阵】算法例题

目录 三、滑动窗口 30. 长度最小的子数组 ② 31. 无重复字符的最长子串 ② 32. 串联所有单词的子串 ③ 33. 最小覆盖子串 ③ 四、矩阵 34. 有效的数独 ② 35. 螺旋矩阵 ② 36. 旋转图像 ② 37. 矩阵置零 ② 38. 生命游戏 ② 三、滑动窗口 30. 长度最小的子数组 ② 给…

<深度学习初识>——《深度学习笔记》

深度学习笔记 一、人工智能简介 1.人工智能发展的重要时间节点 1.1人工智能孕育期 1.2人工智能诞生期 1.3人工智能第一次浪潮的发展 1.4人工智能的第一次寒冬 第一次寒冬主要面临的几个问题: 1.5人工智能第二次浪潮的发展 1.6人工智能的第二次寒冬 1.7人工智能第…