systemd-journald日志持久化的操作方法

简介:

一、背景

每当遇到诸如网卡、数据库、Apache及其他一些应用无法正常启动时,系统会提示我们使用journalctl -ex命令进行查看,往往能迅速找到相关日志,分析日志后问题一般能够迅速被解决。虽然经常使用,但是也没有过多深究。

在CentOS7.X中,systemd统一管理着所有unit的启动日志,systemd-journald就是一个被systemd管理的进型日志管理服务,可以收集来自内核、系统早期启动阶段的日志、系统守护进程在启动和运行中的标准输出和错误信息,还有syslog的日志。该日志服务仅仅把日志集中保存在单一结构的日志文件/run/log中,由于日志是经过压缩和格式化的二进制数据,所以在查看和定位的时候很迅速,我们可以只用journalctl一条命令就能查看所有日志(内核日志和 应用日志)。

[root@ChatDevOps ~]# systemctl list-units|grep journal*
  systemd-journal-flush.service                                                       loaded active exited    Flush Journal to Persistent Storage
  systemd-journald.service                                                            loaded active running   Journal Service
  systemd-journald.socket                                                             loaded active running   Journal Socket

对于journal的配置,我们可以参见配置文件:/etc/systemd/journald.conf,可以根据实际情况进行自定义,默认情况下并不会持久化保存日志,只会保留一个月的日志。如果需要永久保留改日志文件呢?

二、操作步骤

1.创建相关的目录来存放journal日志,修改权限,重启systemd-journal服务。

[root@ChatDevOps ~]# mkdir /var/log/journal
[root@ChatDevOps ~]# chgrp systemd-journal /var/log/journal
[root@ChatDevOps ~]# chmod g+s /var/log/journal
[root@ChatDevOps ~]# systemctl restart systemd-journald

2.重启数次观察日志记录结果。

[root@ChatDevOps ~]# journalctl --list-boots
-2 3b8ad5992dc84becbee8e7d2c1a053cd 二 2018-06-12 10:54:34 CST—二 2018-06-12 11:03:57 CST
-1 13935fc1d8d9499baf4bbc453daf1e56 二 2018-06-12 11:04:05 CST—二 2018-06-12 20:08:03 CST
 0 eed68f873742408ca746a2272961f73d 二 2018-06-12 20:08:21 CST—二 2018-06-12 20:09:43 CST

从上面我们可以清晰地看到本日内的三次引导记录。

3.观察最近一次引导过程。

[root@ChatDevOps ~]# journalctl -b 0

4.之前/run/log/journal目录已经不存在,取而代之的是/var/log/journal目录。

三、总结

1.journalctl是一个非常好用的日志查看命令。

2.关于journal的使用可以参见下文:https://blog.csdn.net/zstack_org/article/details/72356864

相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
相关文章
|
4月前
|
存储 缓存 监控
用 C++ 红黑树给公司电脑监控软件的日志快速排序的方法
本文介绍基于C++红黑树算法实现公司监控电脑软件的日志高效管理,利用其自平衡特性提升日志排序、检索与动态更新效率,并结合实际场景提出优化方向,增强系统性能与稳定性。
156 4
|
6月前
|
Prometheus 监控 Cloud Native
使用docker-compose管理多服务项目:日志监控方法指南
通过上述步骤,可以建立有效的日志监控系统,这不仅有助于问题的迅速定位和解决,而且对于分析系统性能、用户行为模式等都是一个宝贵的资源。只要正确配置和维护,Docker Compose管理的多服务项目可以高效地进行日志监控与分析。
271 0
|
9月前
|
存储 Windows
【Azure Cloud Service】微软云服务上的日志收集方法
本文介绍了在使用微软云服务(Cloud Service Extended Support)时,如何收集日志以分析未记录在应用日志中的服务异常。由于云服务基于传统虚拟机模式,需通过远程桌面登录实例,查看IIS、Windows Event及云服务组件日志(如WindowsAzureGuestAgent)。此外,可使用CollectGuestLogs.exe工具打包日志,或通过“File Server Resource Manager”检查日志存储配额是否不足。附参考文档链接供深入学习。
309 29
|
Kubernetes Ubuntu Windows
【Azure K8S | AKS】分享从AKS集群的Node中查看日志的方法(/var/log)
【Azure K8S | AKS】分享从AKS集群的Node中查看日志的方法(/var/log)
360 3
|
9月前
|
SQL 运维 关系型数据库
MySQL Binlog 日志查看方法及查看内容解析
本文介绍了 MySQL 的 Binlog(二进制日志)功能及其使用方法。Binlog 记录了数据库的所有数据变更操作,如 INSERT、UPDATE 和 DELETE,对数据恢复、主从复制和审计至关重要。文章详细说明了如何开启 Binlog 功能、查看当前日志文件及内容,并解析了常见的事件类型,包括 Format_desc、Query、Table_map、Write_rows、Update_rows 和 Delete_rows 等,帮助用户掌握数据库变化历史,提升维护和排障能力。
|
C++ 开发者 Python
实现Python日志点击跳转到代码位置的方法
本文介绍了如何在Python日志中实现点击跳转到代码位置的功能,以提升调试效率。通过结合`logging`模块的`findCaller()`方法记录代码位置信息,并使用支持点击跳转的日志查看工具(如VS Code、PyCharm),开发者可以从日志直接点击链接定位到出错代码,加快问题排查。
|
存储 Prometheus 监控
Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行
本文深入探讨了在Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行。
517 5
|
数据可视化 应用服务中间件 Apache
优化集中式日志记录的方法:添加 Logstash 过滤器
优化集中式日志记录的方法:添加 Logstash 过滤器
235 1
|
XML Java Maven
logback在springBoot项目中的使用 springboot中使用日志进行持久化保存日志信息
这篇文章详细介绍了如何在Spring Boot项目中使用logback进行日志记录,包括Maven依赖配置、logback配置文件的编写,以及实现的日志持久化和控制台输出效果。
logback在springBoot项目中的使用 springboot中使用日志进行持久化保存日志信息
|
存储 运维 监控
【Docker专栏】Docker日志管理与监控的最佳方法
【5月更文挑战第7天】本文探讨了Docker容器的日志管理与监控,强调其在运维中的重要性。Docker默认使用`json-file`日志驱动,可通过`docker logs`命令查看。建议选择合适日志驱动,配置日志选项,并集成ELK Stack等工具进行高级分析。实时监控、设置警报、分析数据和审计日志是实践关键。最佳实践包括日志数据与容器数据分离、使用日志代理、保护敏感信息及遵守法规。关注新技术以提升系统稳定性和安全性。
1693 10
【Docker专栏】Docker日志管理与监控的最佳方法