首页 > 其他分享 >journal日志管理

journal日志管理

时间:2024-03-14 16:58:07浏览次数:17  
标签:查看 管理 -- journal 指定 journalctl 日志

目录

1 简介

2 语法

3 常用示例

只查看内核日志

查看系统启动日志

查看指定时间的日志

显示尾部指定行数日志

实时滚动显示最新日志

查看某个 Unit 的日志

查看指定进程的日志

查看某个路径的脚本的日志

显示日志占据的硬盘空间

指定日志文件占据的最大空间

指定日志文件保存多久

4 journalctl相关配置


1 简介

在Linux系统中,journal是systemd的一个组件,由journald处理。它的主要作用是捕获系统日志信息、内核日志信息,以及来自原始RAM磁盘的信息,早期启动信息以及所有服务中写入STDOUT和STDERR数据流的信息。这些日志信息被写入到二进制文件中,可以使用journalctl工具进行查询和阅读。

journal可以说是为Linux服务器打造的一种新系统日志方式,它提供了一个集中化的管理方案,从而统一打理全部内核及用户级进程的日志信息。这有助于系统管理员更方便地查看和分析系统的运行状况,以及进行故障排除和问题定位。

同时,journal也涉及到日志持久化的问题。由于日志文件对系统的运行和调试至关重要,因此需要通过持久化机制确保这些日志信息的可靠性和完整性。

需要注意的是,journal只是Linux系统中日志管理的一部分,不同的程序和服务可能使用不同的日志记录格式和管理方式。因此,在实际使用中,需要根据具体的系统环境和需求来选择合适的日志管理方案。

2 语法

命令格式为:

journalctl [OPTIONS…] [MATCHES…]

常用选项:

-f :      实时跟新显示

-n [#] : 显示最近#行日志,默认为10

-o verbose : 查看日志详细参数,-o 后可以指定其他显示格式,默认short格式

-x, --catalog:

    在日志的输出中增加一些解释性的短文本, 以帮助进一步说明日志的含义、

-e, --pager-end

    在分页工具内立即跳转到日志的尾部。 此选项隐含了 -n 1000

   以确保分页工具不必缓存太多的日志行。 不过这个隐含的行数可以被明确设置的 -n选项覆盖

-b [#]  : 

    显示当前启动或指定的启动,如果#为正数,将从日志头开始正向查找

    如果为负数或为零,将从日志尾开始反向查找

    "-b 1" 表示按时间顺序第一次启动日志

    "-b 2" 表示第二次启动日志

    "-b 0" 表示最后一次启动

    "-b -1" 表示最近第二次启动

--list-boots :列出每次启动的 序号(也就是相对于本次启动的偏移量)

-k : 仅显示内核日志

-u [UNIT|PATTERN] :

    显示指定服务unit的日志或者符合 PATTERN模式的单元,如 sshd.service

    这相当于添加了一个 "_SYSTEMD_UNIT=UNIT" 匹配项,或一组PATTERN 匹配项

-p [PRIORITY] :

    显示具有指定优先级的条目,根据日记级别显示

    日志等级数字与其名称之间的对应关系如下:

        0: emerg

        1: alert

        2: crit

        3: err

        4: warning

        5: notice

        6: info

        7: debug
 

-S/--since 'time' : 

    显示从指定时间开始的日志

    参数的格式类似 "2012-10-30 18:17:16" 这样

    如果省略了"时:分:秒"部分,则相当于设为 "00:00:00"

    除了"年-月-日 时:分:秒"格式,参数还可以进行如下设置:

    (1)设为 "yesterday", "today", "tomorrow"以表示那一天的零点(00:00:00)

    (2)设为 "now" 以表示当前时间

    (3)可以在"年-月-日 时:分:秒"前加上 "-"(前移) 或 "+"(后移)前缀以表示相对于当前时间的偏移。

   

-U/--until  'time' : 显示到指定时间内的日志

--system,--user

    仅显示系统服务与内核的日志(--system)、 仅显示当前用户的日志(--user)

    如果两个选项都未指定,则显示当前用户的所有可见日志


--disk-usage

   此选项并不用于显示日志内容,

   而是用于显示所有日志文件(归档文件与活动文件)的磁盘占用总量


--vacuum-size=, --vacuum-time=, --vacuum-files=

   这些选项并不用于显示日志内容,

   而是用于清理日志归档文件(并不清理活动的日志文件), 以释放磁盘空间。

   --vacuum-size= 可用于限制归档文件的最大磁盘使用量 (可以使用 "K", "M", "G", "T"

 后缀)

   --vacuum-time= 可用于清除指定时间之前的归档 (可以使用 "s", "m", "h",

  "days", "weeks", "months", "years" 后缀);

         --vacuum-files=可用于限制日志归档文件的最大数量

    注意,--vacuum-size= 对 --disk-usage的输出仅有间接效果

    因为 --disk-usage 输出的是归档日志与活动日志的总量

   同样,--vacuum-files= 也未必一定会减少日志文件的总数,因为它同样仅作用于归档文件而不会删除活动的日志文件。

   此三个选项可以同时使用,以同时从三个维度去限制归档文件。

   若将某选项设为零,则表示取消此选项的限制。

3 常用示例

只查看内核日志

  journalctl -k

查看系统启动日志

# 最近一次启动日志

  journalctl -b

# 上一次启动日志

  journalctl -b -1

查看指定时间的日志

# 显示 2020-10-30日 18点30分30秒到当前时间之间的所有日志信息

 journalctl --since="2020-10-30 18:30:30"

 # 获取从昨天到现在的日志

  journalctl --since yesterday

 # 获取某一个时间段到当前时间的前一个小时的日志

 journalctl --since 09:00 --until "1 hour ago"

# 获取当前时间的前20分钟的ssh服务日志

  journalctl --since "20 min ago" -u sshd.service

# 获取某一天到某一个时间段的日志信息

 journalctl --since "2021-05-05" --until "2021-05-05 03:00"

显示尾部指定行数日志

# 显示尾部20行日志

journalctl -n 20

实时滚动显示最新日志

    journalctl -f

查看某个 Unit 的日志

# 查看nginx服务日志  

journalctl -u nginx.service

journalctl -u nginx.service --since today

journalctl -u nginx.service -f

 # 合并显示多个 Unit 的日志

journalctl -u nginx.service -u php-fpm.service --since today

查看指定进程的日志

journalctl _PID=1

查看某个路径的脚本的日志

journalctl /usr/bin/bash

显示日志占据的硬盘空间

journalctl --disk-usage

指定日志文件占据的最大空间

journalctl --vacuum-size=1G

指定日志文件保存多久

journalctl --vacuum-time=1years

4 journalctl相关配置

1、限定journal体积的膨胀速度

    SystemMaxUse=: 指定journal所能使用的最高持久存储容量。

    SystemKeepFree=: 指定journal在添加新条目时需要保留的剩余空间。

    SystemMaxFileSize=: 控制单一journal文件大小,符合要求方可被转为持久存储。

    RuntimeMaxUse=: 指定易失性存储中的最大可用磁盘容量(/run文件系统之内)。

    RuntimeKeepFree=: 指定向易失性存储内写入数据时为其它应用保留的空间量(/run文件系统之内)。

    RuntimeMaxFileSize=: 指定单一journal文件可占用的最大易失性存储容量(/run文件系统之内)。

    通过设置上述值,大家可以控制journald对服务器空间的消耗及保留方式。

2、日志持久化

默认此程序只负责对日志进行查看而不能对日志进行保存和采集,那么关机后再开机(重启),只能查看到开机后的日志, 因为系统之前的日志是保存在内存中的,所以关机后就被清空了,那么再开机时用journalctl是看不到的之前的日志信息的

可以在/etc/systemd/journald.conf文件中调整systemd-journald服务的配置设置,以使日志在重新引导后仍然存在,

配置Systemd Journald

要将systemd-journald服务配置为在重新启动后永久保留系统日志,您需要将Storage设置为persistent。

可以为Storage参数设置的其他值是:

    [1]、persistent:将日志存储在/var/log/journal目录中,该目录在重新启动后仍然存在。

    [2]、volatile:将日记存储在volatile/run/log/journal目录中,这不会导致系统重启。

    [3]、auto:rsyslog将确定使用持久性存储(persistent)还是易失性存储(volatile)

           如果存在/var/log/journal目录,则rsyslog使用持久性存储,否则使用易失性存储。

实现永久存储方式:

方式1、修改 /etc/systemd/journald.conf

  

    [Journal]

    Storage=persistent

    提交更改后,请重新启动systemd-journald服务以使配置更改生效:

 sudo systemctl restart systemd-journald

   

方式2、创建/var/log/journal目录

 mkdir -p /var/log/journal
 systemctl restart systemd-journald

标签:查看,管理,--,journal,指定,journalctl,日志
From: https://blog.csdn.net/h4241778/article/details/136714152

相关文章

  • 团队管理中的心理学智慧:从理解到引领
    团队管理中的心理学智慧:从理解到引领团队管理,作为组织运营的核心环节,已经逐渐从传统的任务分配和进度监控,转变为对团队成员深层次心理需求的洞察与满足。在这个变革的过程中,心理学知识发挥着至关重要的作用。一、深入了解团队成员的心理需求团队成员的心理需求是多样化的,不同成......
  • java毕设jsp酒店预约管理系统毕业设计
    简介基于JavaJSP的酒店预约管理系统是一个利用Java技术和JSP页面实现的酒店在线预约平台。该系统通过简洁明了的界面,为用户提供酒店信息查询、房间预约及管理等功能,同时支持管理员对酒店及预约信息进行高效管理。采用JSP技术,使得系统具备良好的扩展性和可维护性,为用户提......
  • 【掌握版本控制:Git 入门与实践指南】远程操作|标签管理
                             ......
  • 并发支持库:互斥锁及其管理
    目录互斥std::mutex(c++11)std::timed_mutex(c++11)std::recursive_mutex(c++11)std::recursive_timed_mutex(c++11)std::shared_mutex(c++17)shared_timed_mutex(C++14)通用互斥(mutex)管理std::lock_guard(c++11)std::scoped_lock(c++17)std::unique_lock(C++11)std::shared_loc......
  • ELK日志处理部署笔记
    ELK概念简介ELK建立在三个服务上即Elasticsearch::日志检索和储存Logstash::日志收集分析处理Kibana::日志可视化Elasticsearch集群模式Elasticsearch采用了经典的raft模式,推荐将一部分专门配置为候选主节点(master-eligiblenodes),而另一部分节点则仅作为......
  • Jmeter —— jmeter设置HTTP信息头管理器模拟请求头
    HTTP信息头管理器HTTP信息头管理器是在有需要模拟请求头部的时候进行设置的,添加方式是右击线程组--配置元件--HTTP信息头管理器​可以通过抓包工具或者F12获取http请求的header头部信息;如下图:​复制并点击jmeter中的从剪贴板添加,就会自动添加到http信息头管理器的列表......
  • 实例带你了解GaussDB的索引管理
    本文分享自华为云社区《GaussDB数据库的索引管理》,作者:Gauss松鼠会小助手2。一、引言GaussDB数据库是华为公司倾力打造的自研企业级分布式关系型数据库,索引的设计和管理对于提高查询性能至关重要。下面将通过实际例子深入研究GaussDB数据库的索引管理。二、GaussDB数据库中的......
  • python基于flask共享单车管理系统 234if
    快速发展的社会中,人们的生活水平都在提高,生活节奏也在逐渐加快。为了节省时间和提高工作效率,越来越多的人选择利用互联网进行线上打理各种事务,然后线上管理系统也就相继涌现。与此同时,人们开始接受方便的生活方式。他们不仅希望页面简单大方,还希望操作方便,可以快速锁定他们需要......
  • 基于web的电子产品销售管理系统的设计与实现
    资源地址:https://download.csdn.net/download/u014308676/85231950资源包含了完整代码,数据库文件,完整的毕业论文word,和答辩ppt。        文档描述了实现如何构造一个B/S结构的图书馆信息管理系统,对电子产品销售管理系统的需求分析、模块的划分、数据库的实现、功能模......
  • Node.js毕业设计办公用品管理系统(Express)
    本系统(程序+源码)带文档lw万字以上  文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义选题背景:随着信息技术的飞速发展,企业对于办公效率和资源管理的要求越来越高。传统的办公用品管理方式主要依赖人工记录和统计,这种方式不仅效率低下,而且容易出现错误......