栏目介绍:“玩转OurBMC” 是OurBMC社区开创的知识分享类栏目,主要聚焦于社区和BMC全栈技术相关基础知识的分享,全方位涵盖了从理论原理到实践操作的知识传递。OurBMC社区将通过 “玩转OurBMC” 栏目,帮助开发者们深入了解到社区文化、理念及特色,增进开发者对BMC全栈技术的理解。
欢迎各位关注 “玩转OurBMC” 栏目,共同探索OurBMC社区的精彩世界。同时,我们诚挚地邀请各位开发者向 “玩转OurBMC” 栏目投稿,共同学习进步,将栏目打造成为汇聚智慧、激发创意的知识园地。
上期内容聚焦于 BMC 日志管理框架与 systemd-journald 模块的介绍,本期将继续通过对实际案例的剖析,深入探讨 BMC 日志管理模块中 rsyslog 模块 和 logrotate 工具 的具体作用,并展示其在日常运维中的实际应用操作。旨在帮助各位读者更好地理解和使用 BMC 日志管理模块,为服务器的稳定运行和故障排查提供有力支持。
rsyslog 模块
rsyslog 的全称是 rocket-fast system for log,是专为系统日志设计的高效转发处理工具,它能够接收来自各种来源的日志数据,并将其输出到不同的目的地,通过配置 /etc/rsyslog.conf 实现日志的集中管理和分析。rsyslog 内部集成了多个模块,这些模块可以协同工作,确保日志数据的流畅传输和高效处理。其中,imjournal 和 imuxsock 是两个关键的配置模块,它们在BMC日志管理中扮演着重要的角色。下文主要介绍 imjournal 和 imuxsock 两个模块,如想了解其他模块,可通过 rsyslog 官网获取信息。
1、imjournal模块
该模块主要接受来自 journal 中的日志源,也是目前 BMC 最常见的日志处理方式。结合上文中提到的 SEL 消息,我们可以根据 MESSAGE_ID,来标识 SEL 消息,因此 rsyslog 可以进行筛选,将 ID 相等消息,通过 omfile 模块,以 IPMISELTemplate 定义的模板格式,写入到 "/var/log/ipmi_sel" 文件中。
其中,模板 IPMISELTemplate 由用户自己定义,property 代表 journal中KEY 字段的值,constant 代表常量字符串,如下:
生成到文件中的格式如下:
2、Imuxsock 模块
imuxsock 模块是 rsyslog 的核心输入模块,用于接收来自本地 Unix 域套接字的日志消息。在 BMC 中主要应用于服务器主机串口日志,obmc-console-server 读取串口发送过来的数据,并将这些数据发送到本地 UNIX 套接字上。随后,rsyslog 或者其他应用(如 SOL),通过监听套接字流,实时获取并保存服务器串口的信息,其流程如下所示:
其配置与上述 imjounal 配置类似,其中 SSocket 则是需要访问套接字端口,其数据值来源为 /etc/hostlogger/ttyAMA1.conf 配置中的 STREAM_DST 字段。phosphor-hostlogger 的作用就是将 obmc-console-server 中的数据流转发到配置的 STREAM_DST 端口上。详情如下:
除了这两个模块外,rsyslog 还支持通过配置 IP 和端口将本地的日志上传到远端服务器,这一般是通过编辑 /etc/rsyslog.d/server.conf 文件来实现的。在这个配置文件中,管理员可以指定 rsyslog 监听的 IP 地址和端口号,以及将日志数据发送到远程服务器的相关信息。
总的来说,rsyslog 的各个模块共同协作,实现了从日志消息的收集、处理到输出的完整流程。每个模块都有其独特的功能和作用,共同保证了 rsyslog 的高效和稳定。
logrotate 工具
为了节省磁盘空间和方便日志管理,通常会将日志文件按照时间或大小进行分割,并删除较旧的日志文件。这个过程被称为日志滚动(logrotation),而 logrotate 工具就是用来实现这一功能的。此外,logrotate 还可以对备份的日志文件进行压缩,以进一步节省空间。
以下配置示例,对 rsyslog 配置生成的文件大小进行控制。当 ipmi_sel 文件的大小达到 64KB 时,logrotate 会将其重命名(或 “滚动”)为 ipmi_sel.1,并开始写入新的 ipmi_sel 文件。rotate 配置为 3,则代表可以备份 3 个文件,即最多存储 64K*4 大小的 ipmi_sel 日志文件。
通过玩转 OurBMC 栏目对 BMC 日志管理模块两期内容的介绍,可以了解到 OpenBMC 通过 rsyslog 和 systemd-journald 的协同工作,实现了日志的有效收集、筛选、格式化和存储。同时,也为系统管理员和开发人员提供了强大的日志分析工具,帮助他们更好地监控、诊断和优化系统性能。
欢迎大家关注OurBMC社区,了解更多技术干货。
OurBMC社区官方网站:
https://www.ourbmc.cn/