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

2024-03-20 07:36

本文主要是介绍Docker专题-03 Log-Driver日志转存,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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
    

这篇关于Docker专题-03 Log-Driver日志转存的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/828732

相关文章

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

如何自定义一个log适配器starter

《如何自定义一个log适配器starter》:本文主要介绍如何自定义一个log适配器starter的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求Starter 项目目录结构pom.XML 配置LogInitializer实现MDCInterceptor

Golang 日志处理和正则处理的操作方法

《Golang日志处理和正则处理的操作方法》:本文主要介绍Golang日志处理和正则处理的操作方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录1、logx日志处理1.1、logx简介1.2、日志初始化与配置1.3、常用方法1.4、配合defer

Apache 高级配置实战之从连接保持到日志分析的完整指南

《Apache高级配置实战之从连接保持到日志分析的完整指南》本文带你从连接保持优化开始,一路走到访问控制和日志管理,最后用AWStats来分析网站数据,对Apache配置日志分析相关知识感兴趣的朋友... 目录Apache 高级配置实战:从连接保持到日志分析的完整指南前言 一、Apache 连接保持 - 性

Nacos日志与Raft的数据清理指南

《Nacos日志与Raft的数据清理指南》随着运行时间的增长,Nacos的日志文件(logs/)和Raft持久化数据(data/protocol/raft/)可能会占用大量磁盘空间,影响系统稳定性,本... 目录引言1. Nacos 日志文件(logs/ 目录)清理1.1 日志文件的作用1.2 是否可以删除

SpringBoot实现文件记录日志及日志文件自动归档和压缩

《SpringBoot实现文件记录日志及日志文件自动归档和压缩》Logback是Java日志框架,通过Logger收集日志并经Appender输出至控制台、文件等,SpringBoot配置logbac... 目录1、什么是Logback2、SpringBoot实现文件记录日志,日志文件自动归档和压缩2.1、

使用nohup和--remove-source-files在后台运行rsync并记录日志方式

《使用nohup和--remove-source-files在后台运行rsync并记录日志方式》:本文主要介绍使用nohup和--remove-source-files在后台运行rsync并记录日... 目录一、什么是 --remove-source-files?二、示例命令三、命令详解1. nohup2.

MySQL精准控制Binlog日志数量的三种方案

《MySQL精准控制Binlog日志数量的三种方案》作为数据库管理员,你是否经常为服务器磁盘爆满而抓狂?Binlog就像数据库的“黑匣子”,默默记录着每一次数据变动,但若放任不管,几天内这些日志文件就... 目录 一招修改配置文件:永久生效的控制术1.定位my.cnf文件2.添加核心参数不重启热更新:高手应

ubuntu如何部署Dify以及安装Docker? Dify安装部署指南

《ubuntu如何部署Dify以及安装Docker?Dify安装部署指南》Dify是一个开源的大模型应用开发平台,允许用户快速构建和部署基于大语言模型的应用,ubuntu如何部署Dify呢?详细请... Dify是个不错的开源LLM应用开发平台,提供从 Agent 构建到 AI workflow 编排、RA

Docker安装MySQL镜像的详细步骤(适合新手小白)

《Docker安装MySQL镜像的详细步骤(适合新手小白)》本文详细介绍了如何在Ubuntu环境下使用Docker安装MySQL5.7版本,包括从官网拉取镜像、配置MySQL容器、设置权限及内网部署,... 目录前言安装1.访问docker镜像仓库官网2.找到对应的版本,复制右侧的命令即可3.查看镜像4.启