文章目录
一、Linux日志系统概述
1、日志的重要性
- 系统状态监控
- 故障排查定位
- 安全审计分析
- 性能优化依据
- 合规性要求满足
2、日志分类
型 | 存储位置 | 典型内容 |
---|---|---|
系统日志 | /var/log/messages | 内核、系统服务通用日志 |
认证日志 | /var/log/secure | 用户登录、sudo操作记录 |
启动日志 | /var/log/boot.log | 系统启动过程记录 |
内核日志 | /var/log/kern.log | 内核相关事件 |
计划任务日志 | /var/log/cron | cron任务执行记录 |
邮件日志 | /var/log/maillog | 邮件系统相关操作 |
应用程序日志 | /var/log/{application}/ | 各应用程序专用日志 |
二、核心日志管理工具
1、syslog(传统系统日志)
(1)配置文件
bash
/etc/syslog.conf
(2)配置语法
bash
# 格式:设备.优先级 动作
auth.* /var/log/auth.log
*.emerg *
mail.err /var/log/mail.err
(3)优先级说明
优先级 | 数值 | 说明 |
---|---|---|
emerg | 0 | 系统不可用 |
alert | 1 | 需要立即采取行动 |
crit | 2 | 严重情况 |
err | 3 | 错误条件 |
warn | 4 | 警告条件 |
notice | 5 | 正常但重要的事件 |
info | 6 | 信息性消息 |
debug | 7 | 调试级信息 |
(4)应用场景
- 传统Linux系统日志管理
- 兼容性要求高的环境
- 简单日志收集需求
2、rsyslog(增强型系统日志)
(1)核心特性
- 支持TCP/UDP传输
- 日志内容过滤
- 模板化输出
- 高性能队列处理
- 支持MySQL/PostgreSQL存储
(2)配置文件结构
/etc/rsyslog.con
bash
# 模块加载
$ModLoad imuxsock # 本地系统日志
$ModLoad imklog # 内核日志
# 模板定义
$template MyTemplate,"%timestamp% %hostname% %syslogtag% %msg%\n"
# 规则配置
*.info;mail.none;authpriv.none /var/log/messages
authpriv.* /var/log/secure
# 远程日志配置
*.* @192.168.1.100:514
(3)高级功能配置示例
- 日志存储到MySQL:
bash
$ModLoad ommysql
*.* :ommysql:localhost,Syslog,rsyslog,password
- 日志文件切割:
bash
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$FileOwner root
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
(4)应用场景
- 企业级日志集中管理
- 需要结构化存储的环境
- 高并发日志处理场景
3、journald(systemd日志系统)
(1)核心特性
- 二进制日志存储
- 结构化日志记录
- 实时日志查询
- 与systemd深度集成
(2)配置文件
bash
/etc/systemd/journald.conf
(3)常用配置参数
bash
[Journal]
Storage=persistent # 存储方式(persistent/volatile)
Compress=yes # 启用压缩
SystemMaxUse=1G # 最大磁盘使用量
SystemMaxFileSize=100M # 单个文件最大尺寸
MaxRetentionSec=1month # 日志保留时间
(4)常用命令
bash
# 实时日志监控
journalctl -f
# 按服务查询
journalctl -u nginx.service
# 结构化显示
journalctl -o json-pretty
# 时间范围查询
journalctl --since "2023-07-01" --until "2023-07-10"
(5)应用场景
- 使用systemd的系统
- 需要结构化日志分析
- 实时日志监控需求
4、logrotate(日志轮转)
(1)配置文件
bash
/etc/logrotate.conf
应用特定配置:/etc/logrotate.d/
(2)典型配置示例
bash
/var/log/firewalld {
weekly
missingok
rotate 4
copytruncate
minsize 1M
}
(3)核心参数说明
作用 | |
---|---|
daily/weekly | 轮转周期 |
rotate N | 保留历史文件数量 |
compress | 启用gzip压缩 |
delaycompress | 延迟压缩前一个日志文件 |
size 100M | 按大小触发轮转 |
missingok | 文件不存在时不报错 |
create 0640 user group | 新日志文件权限设置 |
(4)手动执行
bash
logrotate -vf /etc/logrotate.d/bgubx
(5)应用场景
- 防止日志文件过大
- 自动化日志归档
- 符合存储策略要求