目录
一、Linux日志系统概述
1.1 日志的重要性
-
系统状态监控
-
故障排查定位
-
安全审计分析
-
性能优化依据
-
合规性要求满足
1.2 日志分类~~
[root@localhost log]# ls
anaconda dnf.log qemu-ga vmware-network.2.log
audit dnf.rpm.log README vmware-network.3.log
boot.log firewalld samba vmware-network.log
boot.log-20250528 gdm secure vmware-vgauthsvc.log.0
boot.log-20250529 hawkey.log speech-dispatcher vmware-vmsvc-root.log
btmp kdump.log spooler vmware-vmtoolsd-root1.log
chrony lastlog sssd vmware-vmtoolsd-root.log
cron maillog tallylog vmware-vmusr-root1.log
cups messages tuned vmware-vmusr-root.log
dnf.librepo.log private vmware-network.1.log wtmp
| 日志类型 | 存储位置 | 典型内容 |
|---|---|---|
| 系统日志 | /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}/ | 各应用程序专用日志 |
二、核心日志管理工具
2.1 syslog(传统系统日志)
2.1.1 配置文件
/etc/syslog.conf
2.1.2 优先级说明
| 优先级 | 数值 | 说明 |
|---|---|---|
| emerg | 0 | 系统不可用 |
| alert | 1 | 需要立即采取行动 |
| crit | 2 | 严重情况 |
| err | 3 | 错误条件 |
| warn | 4 | 警告条件 |
| notice | 5 | 正常但重要的事件 |
| info | 6 | 信息性消息 |
| debug | 7 | 调试级信息 |
2.1.3 应用场景
-
传统Linux系统日志管理
-
兼容性要求高的环境
-
简单日志收集需求
2.2 rsyslog(增强型系统日志)
2.2.1 核心特性
-
支持TCP/UDP传输
-
日志内容过滤
-
模板化输出
-
高性能队列处理
-
支持MySQL/PostgreSQL存储
2.2.2 配置文件结构
/etc/rsyslog.conf
[root@localhost ~]# cd /etc/rsyslog.conf
[root@localhost etc]# cat rsyslog.conf
# rsyslog configuration file
# For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html
# or latest version online at http://www.rsyslog.com/doc/rsyslog_conf.html
# If you experience problems, see http://www.rsyslog.com/doc/troubleshoot.html
# 模块加载
$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.1:1
2.2.3 应用场景
-
企业级日志集中管理
-
需要结构化存储的环境
-
高并发日志处理场景
2.3 journald(systemd日志系统)
2.3.1 核心特性
-
二进制日志存储
-
结构化日志记录
-
实时日志查询
-
与systemd深度集成
2.3.2 配置文件
/etc/systemd/journald.conf
[root@localhost ~]# cd /etc/sys
sysconfig/ sysctl.d/ systemd/
[root@localhost ~]# cd /etc/systemd/
[root@localhost systemd]# ls
coredump.conf logind.conf sleep.conf system.conf user.conf
journald.conf pstore.conf system user
[root@localhost systemd]# cat journald.conf
[Journal]
#Storage=auto
#Compress=yes
#Seal=yes
#SplitMode=uid
#SyncIntervalSec=5m
#RateLimitIntervalSec=30s
#RateLimitBurst=10000
#SystemMaxFileSize=100M
SystemMaxUse=1000M
#MaxFileSec=1month
2.3.3 常用配置参数
[Journal]
Storage=persistent # 存储方式(persistent/volatile)
Compress=yes # 启用压缩
SystemMaxUse=1G # 最大磁盘使用量
SystemMaxFileSize=100M # 单个文件最大尺寸
MaxRetentionSec=1month # 日志保留时间
2.3.4 常用命令
# 实时日志监控
journalctl -f
[root@localhost systemd]# journalctl -f
5月 29 19:31:35 localhost.localdomain systemd[1]: packagekit.service: Consumed 1.438s CPU time.
5月 29 19:45:45 localhost.localdomain systemd[1]: Starting dnf makecache...
5月 29 19:45:46 localhost.localdomain dnf[51503]: 元数据缓存近期已刷新。
5月 29 19:45:46 localhost.localdomain systemd[1]: dnf-makecache.service: Deactivated successfully.
# 按服务查询
journalctl -u init.scope
[root@localhost ~]# journalctl -u init.scope
5月 29 08:49:14 localhost systemd[1]: Starting Create Volatile Files and Directories...
5月 29 08:49:14 localhost systemd[1]: Finished Create Volatile Files and Directories.
5月 29 08:49:15 localhost systemd[1]: Finished Setup Virtual Console.
# 结构化显示
journalctl -o cat
[root@localhost ~]# journalctl -o cat
Linux version 5.14.0-427.13.1.el9_4.x86_64 (mockbuild@iad1-prod-build001.bld.equ.rockylinux.>
The list of certified hardware and cloud instances for Enterprise Linux 9 can be viewed at t>
Command line: BOOT_IMAGE=(hd0,msdos1)/vmlinuz-5.14.0-427.13.1.el9_4.x86_64 root=/dev/mapper/>
x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'
# 时间范围查询
journalctl --since "2023-07-01" --until "2023-07-10"
2.3.5 应用场景
-
使用systemd的系统
-
需要结构化日志分析
-
实时日志监控需求
2.4 logrotate(日志轮转)
2.4.1 配置文件
/etc/logrotate.conf 应用特定配置:/etc/logrotate.d/
[root@localhost etc]# cat logrotate.conf
# see "man logrotate" for details
# global options do not affect preceding include directives
# rotate log files weekly
weekly
[root@localhost ~]# cd /etc/logrotate.d/
[root@localhost logrotate.d]# ls
bootlog chrony firewalld kvm_stat rsyslog sssd wtmp
btmp dnf iscsiuiolog psacct samba wpa_supplicant
2.4.2 典型配置示例
/var/log/nginx/*.log {
daily
missingok
rotate 30
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
postrotate
systemctl reload nginx
endscript
}
2.4.3 核心参数说明
| 参数 | 作用 |
|---|---|
| daily/weekly | 轮转周期 |
| rotate N | 保留历史文件数量 |
| compress | 启用gzip压缩 |
| delaycompress | 延迟压缩前一个日志文件 |
| size 100M | 按大小触发轮转 |
| missingok | 文件不存在时不报错 |
| create 0640 user group | 新日志文件权限设置 |
2.4.4 手动执行
[root@localhost ~]# logrotate -vf /etc/logrotate.d/nginx
2.4.5 应用场景
-
防止日志文件过大
-
自动化日志归档
-
符合存储策略要求
三、高级日志管理方案
3.1 ELK Stack(分布式日志)
组件构成:
-
Elasticsearch:日志存储与检索
-
Logstash:日志收集处理
-
Kibana:数据可视化
3.1.1 典型架构
-
Filebeat采集日志
-
Logstash过滤处理
-
Elasticsearch存储
-
Kibana展示分析
3.1.2 Filebeat配置示例
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/nginx/*.log
output.logstash:
hosts: ["logstash:5044"]
3.2 auditd(安全审计)
3.2.1 核心配置文件
/etc/audit/auditd.conf
[root@localhost ~]# cd /etc/audit/
[root@localhost audit]# ls
auditd.conf audit.rules audit-stop.rules plugins.d rules.d
3.2.2 审计规则配置
# 监控文件访问
-a exit,always -F path=/etc/passwd -F perm=wa
# 监控用户登录
-a exit,always -F arch=b64 -S execve -k user_exec
3.2.3 审计日志查询
ausearch -k user_exec -i
aureport -au
四、故障排查指南
4.1 常见问题处理
-
日志不写入:
-
检查服务状态:
systemctl status rsyslog[root@localhost ~]# systemctl status rsyslog ● rsyslog.service - System Logging Service Loaded: loaded (/usr/lib/systemd/system/rsyslog.service; enabled; preset: enabled) Active: active (running) since Thu 2025-05-29 08:50:08 CST; 11h ago Docs: man:rsyslogd(8) -
验证文件权限:
ls -l /var/log/messages[root@localhost ~]# ls -l /var/log/messages -rw-------. 1 root root 1200887 5月 29 20:19 /var/log/messages -
测试日志生成:
logger "Test Message"
-
配置验证:
rsyslogd -N1 # 检查配置文件语法
journalctl --verify # 验证日志完整性
-
存储异常处理:
# 查看磁盘空间
df -h /var
# 查找大文件
du -sh /var/log/*



4269

被折叠的 条评论
为什么被折叠?



