Anolis8和CentOS7的日志对比
Anolis8和CentOS7的日志对比
功能/用途 | CentOS 7 | Anolis 8.10 | 差异解析 | 常用查看方式(CentOS 7) | 常用查看方式(Anolis 8) |
---|---|---|---|---|---|
包管理 | yum.log | dnf.log, dnf.rpm.log, dnf.librepo.log, hawkey.log | Anolis 8.10 默认用 dnf;hawkey 是 dnf 的依赖库 | tail -n 50 /var/log/yum.log | tail -n 50 /var/log/dnf.log |
系统消息总览 | messages | 无 messages | ==Anolis 默认依赖 systemd journal,不再写入 /var/log/messages== | tail -f /var/log/messages | journalctl -xe |
认证/安全 | secure | 无 secure | ==同样默认在 journal 中查看,如 journalctl -u sshd== | tail -f /var/log/secure | journalctl -u sshd |
计划任务 | cron | 无 cron | 同样转到 journal | tail -f /var/log/cron | journalctl -u crond |
系统引导 | boot.log | 无 boot.log | ==用 journalctl -b== | cat /var/log/boot.log | journalctl -b |
dmesg | dmesg | 无 | ==dmesg 内容也在 journal 中可查== | cat /var/log/dmesg 或 dmesg | dmesg 或 journalctl -k |
rhsm(红帽订阅管理) | rhsm | 无 | ==Anolis 是开源版本,无 RHSM== | tail -f /var/log/rhsm/rhsm.log | 无(默认无此目录) |
spooler, tallylog | 有 | 无 | ==不常用,取决于安装包== | lastlog、faillog 等 | 无,但可通过lastlog,faillock查看 |
服务日志 | 有 | 有 | 安装的具体服务产生的日志 | tail -f /var/log/httpd/access_log 等 | tail -f /var/log/httpd/access_log 等 |
btmp | btmp | btmp + 历史文件(btmp-20250701) | 系统轮转后多了历史文件 | lastb | lastb |
private | 无 | private | 可能存放私有敏感日志(取决于服务) | 无 | 根据服务查看 |
sssd | 无 | sssd | 如果启用了 SSSD 服务,会有认证相关日志 | 无 | journalctl -u sssd |
Anolis OS 8.x日志系统大量采用journalctl
的原因
1. Systemd 全面接管 init 系统
- 从 RHEL/CentOS 7 开始,Systemd 引入,但仍兼容传统日志路径。
- 到 RHEL 8 / Anolis 8,Systemd 日志系统(
journald
)成为核心组件。 - journald 接管了:
- 系统引导日志
- 服务日志(sshd、crond 等)
- 内核日志(dmesg)
- 安全认证日志(替代
/var/log/secure
)
日志由 Systemd 统一管理,更标准、可控、支持结构化输出。
2. 结构化日志支持更强大的检索与分析
journalctl
不是纯文本文件,而是结构化二进制日志文件(默认保存在/run/log/journal/
或/var/log/journal/
)。- 优势:
- 按服务(
-u
)过滤日志; - 按时间范围、级别、PID 过滤;
- 支持 JSON、short、cat 等多种输出格式;
- 性能更高,便于集中式日志采集(如 Fluentd、rsyslog、systemd-remote)。
- 按服务(
3. 减少对传统日志文件的依赖
- 传统的
/var/log/messages
、/var/log/secure
、/var/log/cron
等文件:- 在 Anolis 8.x 默认不再生成;
- 可通过配置
rsyslog
或systemd-journald
启用文本日志备份; - 推荐直接使用
journalctl
进行分析。
4. 统一日志管理模型便于容器与云环境适配
- Anolis OS 面向云原生、企业级场景,采用 systemd + journalctl 便于与容器、Kubernetes 集成:
- 容器服务(Docker、Podman)默认将日志写入 journald;
- 统一日志接口便于集中采集;
- 安全性和访问控制更好(可限制非 root 用户读取)。
仍需传统日志时的解决方案
启用 rsyslog:
1
sudo systemctl enable rsyslog --now
修改
/etc/systemd/journald.conf
配置:1
2
3[Journal]
Storage=persistent
ForwardToSyslog=yes重启 systemd-journald:
1
sudo systemctl restart systemd-journald
总结
原因 | 说明 |
---|---|
Systemd 接管服务管理 | journald 成为日志核心组件 |
支持结构化日志 | 更强查询能力,利于云环境 |
减少传统日志冗余 | 降低文本日志写盘压力 |
容器/K8s 日志集成更好 | 统一日志采集标准接口 |
可配置兼容传统日志 | 可开启 rsyslog 保留旧方式 |
日志收集方案
- Fluentd 的插件
in_systemd
插件可以直接读取 journald 产生的二进制日志,解析成结构化文本日志。 - 省去先用
journalctl
导出再处理的步骤,实现实时高效日志采集。
重点关注对象
一、系统层面
日志路径/命令 | 说明 | 用途 |
---|---|---|
/var/log/messages 或 journalctl -xe |
系统核心消息、服务异常、内核警告 | 系统健康、故障排查第一入口 |
/var/log/secure 或 journalctl -u sshd |
SSH 登录、sudo、认证失败 | 审计安全事件、防止暴力破解 |
/var/log/boot.log 或 journalctl -b |
系统启动过程 | 排查开机慢、硬件驱动问题 |
dmesg 或 journalctl -k |
内核硬件信息 | 硬件异常、驱动问题排查 |
二、服务层面
日志路径/命令 | 说明 |
---|---|
/var/log/crond 或 journalctl -u crond |
定时任务执行情况 |
/var/log/httpd/ 、/var/log/nginx/ |
Web 访问和错误日志 |
/var/log/php-fpm/ |
PHP 应用错误 |
/var/log/mysqld.log 、/var/log/mariadb/mariadb.log |
数据库运行情况 |
/var/log/sssd/ 或 journalctl -u sssd |
域认证/身份管理日志 |
/var/log/samba/ 、/var/log/zabbix/ |
特定服务日志 |
三、安全与审计
日志文件 | 用途 |
---|---|
/var/log/secure |
登录和认证信息 |
/var/log/btmp (lastb 查看) |
登录失败历史 |
/var/log/wtmp (last 查看) |
登录登出历史 |
/var/log/audit/audit.log |
SELinux/安全审计 |
四、软件包和系统变更
日志路径 | 用途 |
---|---|
/var/log/yum.log 或 /var/log/dnf.log |
软件安装和升级记录 |
/var/log/rhsm/ |
红帽订阅管理日志 |
/var/log/anaconda/ |
系统安装日志 |
五、业务重点关注日志
- 根据具体业务关注对应日志目录,如:
- Web 服务:
/var/log/nginx/
、/var/log/httpd/
- 数据库:
/var/log/mysql/
、/var/log/mariadb/
- 应用日志:
/var/log/your_app/
- Web 服务:
- 建议结合日志平台(ELK、Loki、Zabbix、Prometheus 等)进行统一管理。
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment