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
    

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软考 系统架构设计师系列知识点之系统性能(1)

所属章节: 第2章. 计算机系统基础知识 第9节. 系统性能 系统性能是一个系统提供给用户的所有性能指标的集合。它既包括硬件性能(如处理器主频、存储器容量、通信带宽等)和软件性能(如上下文切换、延迟、执行时间等)&a…

【深度学习】四种天气分类 模版函数 从0到1手敲版本

引入该引入的库 import torch import torch.nn as nn import matplotlib.pyplot as plt import torch.nn.functional as F import torchvision import torch.optim as optim %matplotlib inline import os import shutil import glob os.environ["KMP_DUPLICATE_LIB_OK&q…

iOS应用审核问题解决方案及优化方法 ✨

摘要 本文将针对iOS应用提交审核时可能遇到的问题,如“你必须在Xcode中添加com.apple.developer.game-center密钥”,以及突然间提交送审报错情况进行探讨。通过大量查询资料和尝试,结合案例分析,提供了解决方案和优化方法&#x…

【模糊逻辑】Type-1 Fuzzy Systems-2

【模糊逻辑】Type-1 Fuzzy Systems 3.4.3 模糊化及其推理的影响3.4.3.1 Singleton Fuzzifier例3.5例3.6 3.4.3.2 Non-Singleton Fuzzifier例3.7 Non-Singleton Fuzzifier 量化求解 Firing Level 3.5 对规则触发(Fired-Rule)的输出集进行组合3.5.1Mamdani…

【linux】CentOS查看系统信息

一、查看版本号 在CentOS中,可以通过多种方法来查看版本号。以下是几种常用的方法: 使用cat命令查看/etc/centos-release文件: CentOS的版本信息存储在/etc/centos-release文件中。可以使用cat命令来显示该文件的内容,从而获得C…

力扣hot100:153. 寻找旋转排序数组中的最小值(二分的理解)

由力扣hot100:33. 搜索旋转排序数组(二分的理解)-CSDN博客,我们知道二分实际上就是找到一个策略将区间“均分”。对于旋转数组问题,在任何位置分开两个区间,如果原区间不是顺序的,分开后必然有一…

BRAM底层原理详细解释(1)

目录 一、原语 二、端口简述 2.1 端口简介 2.2 SDP端口映射 三、端口信号含义补充说明 3.1 字节写使能(Byte-Write Enable)- WEA and WEBWE: 3.2 地址总线—ADDRARDADDR and ADDRBWRADDR 3.3 数据总线—DIADI, DIPADIP, DIBDI, and D…

【c++初阶】C++入门(下)

✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅ ✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨ 🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿&#x1…

AI元年,这5款AI写作能为你提供帮助

自从人工智能技术的迅猛发展以来,AI在各个领域都取得了巨大的进步。其中,AI写作工具成为越来越多人关注的焦点。在这个AI元年,小编想向大家分享5款可能对你有帮助的AI写作工具,如果你也想找AI写作相关的工具,那么来看看…

【数据结构基础】之八大排序(C语言实现)

【数据结构基础】之八大排序(C语言实现) 🐧 冒泡排序♈️ 冒泡排序原理及代码实现♈️ 稳定性分析 🐧 选择排序♈️ 选择排序原理及代码实现♈️ 稳定性分析 🐧 插入排序♈️ 插入排序的原理及代码实现♈️ 稳定性分析 &#x1f4…

(附源码)基于Spring Boot和Vue的智能订餐与外卖系统设计与实现

1. 引言 这部分通常包含了研究背景、研究意义、国内外研究现状、本文研究内容以及论文结构安排。 研究背景:介绍当前外卖市场的快速发展,以及智能订餐系统对改善人们生活的影响。研究意义:强调这类系统在现代生活中的作用和开发的创新点。国…

Kubernetes一文上手【手把手系列】

目录 Kubernetes前言部署方式的演变 K8S概述K8S架构Master节点1. API Server2. Etcd3. Controller Manager4. Scheduler Node节点1. kubelet2. kube-proxy3. 容器运行时 组件与插件1. Kubernetes DNS2. Dashboard3. Heapster4. Ingress Controller K8S核心概念PodSerivceNamesp…

CodeSys创建自定义的html5控件

文章目录 背景创建html5control.xml文件控件界面以及逻辑的实现使用的资源安装自定义的html5控件库 背景 查看官方的资料:https://content.helpme-codesys.com/en/CODESYS%20Visualization/_visu_html5_dev.html 官方的例子:https://forge.codesys.com/…

使用 PyOpenGL 进行 2D 图形渲染总结

一、说明 OpenGL是一个广泛使用的开放式跨平台实时 3D 图形库,开发于二十多年前。它提供了一个低级API,允许开发人员以统一的方式访问图形硬件。在开发需要硬件加速且需要在不同平台上运行的复杂 2D 或 3D 应用程序时,它是首选平台。它可以在…

liunx centos7 下通过yum删除安装已经安装的php

执行下面命令查看php相关的包 rpm -qa | grep php 只需要卸载几个名为common的包即可,其他同版本依赖会被全部删除,删除php71w-common,71w版本的依赖包全部会被删除。 查看php包的命令 rpm -qa | grep php 或 yum list installed | gre…

unity编辑器扩展高级用法

在PropertyDrawer中,您不能使用来自GUILayout或EditorGUILayout的自动布局API,而只能使用来自GUI和EditorGUI的绝对Rect API始终传递相应的起始位置和维度。 你需要 计算显示嵌套内容所需的总高度将此高度添加到public override float GetPropertyHeig…

实用工具推荐:适用于 TypeScript 网络爬取的常用爬虫框架与库

随着互联网的迅猛发展,网络爬虫在信息收集、数据分析等领域扮演着重要角色。而在当前的技术环境下,使用TypeScript编写网络爬虫程序成为越来越流行的选择。TypeScript作为JavaScript的超集,通过类型检查和面向对象的特性,提高了代…

Linux :环境基础开发工具

目录: 1. Linux 软件包管理器 yum 1. 什么是软件包 2. 查看软件包 3. 如何安装软件 4. 如何卸载软件 2. Linux开发工具 1. Linux编辑器-vim的基本概念 2. vim使用 3. vim的基本操作 4. vim正常模式命令集 5. vim末行模式命令集 6. 简单vim配置 3. Linux编译器-gcc/…

常用相似度计算方法总总结

一、欧几里得相似度 1、欧几里得相似度 公式如下所示: 2、自定义代码实现 import numpy as np def EuclideanDistance(x, y):import numpy as npx np.array(x)y np.array(y)return np.sqrt(np.sum(np.square(x-y)))# 示例数据 # 用户1 的A B C D E商品数据 [3.3…

知识管理软件那么多,怎么挑选才适合初创企业?

对于初创企业来说,资源有限,效率显得尤其重要。此时,一个强大的知识管理软件就显得必不可少。它不仅利于信息的录入、查找和共享,还可以帮助团队更好的组织和协作,提高工作效率。那么,在众多的知识管理软件…