Linux 日志系统详解 - 管理、审计与排障最佳实践

👨‍🎓博主简介

  🏅优快云博客专家
  🏅云计算领域优质创作者
  🏅华为云开发者社区专家博主
  🏅阿里云开发者社区专家博主
💊交流社区:运维交流社区 欢迎大家的加入!
🐋 希望大家多多支持,我们一起进步!😄
🎉如果文章对你有帮助的话,欢迎 点赞 👍🏻 评论 💬 收藏 ⭐️ 加关注+💗


1. 日志系统概述

Linux 日志系统,主要记录了操作系统、内核、服务、应用等运行日志,它既是运维排障的"时光机",也是安全审计的"证据链",更是业务洞察的"数据油田",所以我们要对Linux系统的日志有一定的了解,了解他是干什么的,主要存储什么日志的,就可以进一步去分析问题所在,所以是很重要的。

1.1 为什么需要日志系统

维度没有日志有日志
故障排查盲猜,重启玄学秒级定位根因
安全合规口说无凭满足等保/ISO 27001 审计
业务指标拍脑袋决策UV/PV/转化率一目了然
系统健康被动告警主动预测磁盘、内存、流量趋势

2. 常见日志分类与路径

日志路径为:/var/log/

类型日志名称(Centos / Ubuntu说明
内核日志dmesg / kern.log系统启动、硬件检测、驱动加载、内核报错 等日志
通用系统日志messages / syslog系统通用信息日志(info 级别为主)
认证授权日志secure / auth.logSSH、sudo、su、login 成功/失败记录
守护进程日志daemon.log系统后台服务(非 systemd 管理)运行状态
邮件日志maillog / mail.log邮件服务(Postfix、Sendmail)发送/接收记录 日志
引导日志boot.log系统本次启动过程、服务启动结果
定时任务日志croncrond 执行记录(任务开始/结束/报错)
用户登录记录wtmp(成功登录)
btmp(失败登录)
lastlog(最后登录)
用于如下一些命令:
last:最近登录的用户
who:当前登录的用户
lastb:最近登录失败的用户
lastlog:用户最近一次登录的信息
审计日志audit/audit.logauditd 安全审计(权限、文件、系统调用)
软件包日志yum.log
dpkg.logapt/history.log
软件安装、升级、卸载记录
容器日志pods/*/0.log(默认路径)Kubernetes 容器标准输出(通过 CNI 插件或 cri-o/docker)
业务日志(示例)nginx/access.log
mysql/error.log
php-fpm/www-error.log
各应用程序自定义路径,需配合 logrotate 管理

3. 常用日志命令速查

场景命令
查看全部日志journalctl
最近报错详情journalctl -xe
仅看 nginx 服务journalctl -u nginx
本次开机日志journalctl -b
近 1 小时journalctl --since "1 hour ago"
磁盘占用journalctl --disk-usage
实时滚动journalctl -u docker -f
内核信息dmesg -T
最近登录失败的用户lastb
登录历史last / last -n5
查看用户最后一次登录时间lastlog / lastlog | grep root

4. 日志的级别(8个):

级别名称含义
0emerg系统崩溃级,机器已不可用
1alert必须立即处理,否则业务中断
2crit关键资源出错,风险极高
3err运行错误,功能受损
4warning潜在问题,需关注
5notice正常但重要的事件
6info一般运行信息
7debug调试细节,排障时开启

5. 日志轮转:logrotate

logrotate 是 Linux 的“日志保洁员”
时间大小把旧日志切成压缩包,保留指定份数,多余自动删除,并可让服务平滑重载继续写新日志。防止它们把磁盘撑爆。

✅ 一句话总结

logrotate 就是帮你自动打包、压缩、清理、重载日志,防止磁盘被日志撑爆的幕后工具。
会按时间 / 大小归档、压缩、删除。

5.1 配置路径

文件作用
/etc/logrotate.conf全局“总章程”
/etc/logrotate.d/xxx每个服务自己的“保洁细则”
可以每个服务创建一个属于自己的配置。

5.2 Nginx 示例逐行解释

  • 文件名:nginx
/var/log/nginx/*.log {     # 对哪些文件生效
    daily                  # 每天切一次(也可 weekly/monthly/size 100M)
    rotate 7               # 只留 7 份,第 8 份自动删除
    compress               # 切完后 gzip 压缩(节省 80%+ 空间)
    missingok              # 文件不存在也不报错
    notifempty             # 空文件跳过不切
    create 0640 nginx adm  # 新日志文件权限/属主/属组
    postrotate
        systemctl reload nginx   # 切完后让 nginx 重新打开日志文件
    endscript
}

5.3 Redis 二进制安装切割实例

区别在于重启命令。

  • 文件名:redis
/usr/local/redis_cluster/redis_6379/logs/*.log {   
    daily                 
    rotate 7              
    compress              
    missingok             
    notifempty            
    create 0644 root root
    postrotate
         /bin/kill -USR1 `cat /usr/local/redis_cluster/redis_6379/pid/redis_6379.pid 2>/dev/null` 2>/dev/null || true
    endscript
}

解压缩需要用gunzip命令。

logrotate命令更多详解请查看:Linux 系统管理 : logrotate 命令详解

6. 安全审计日志(auditd)

  • 路径:/var/log/audit/audit.log
  • 查询示例:
场景命令
所有 sudo 提权ausearch -x sudo
指定用户行为ausearch -ua alice
指定文件被谁动过ausearch -f /etc/passwd -i
一段时间内的异常ausearch -ts today -k passwd_change
按 key 关键字ausearch -k webconf
生成汇总报表aureport -x --summary
登录统计(btmp 范围)aureport --auth --summary
异常事件(AVC/SELinux)aureport -a
系统调用统计aureport -s --summary
导出 csvaureport -f --format csv -o /tmp/file_access.csv

ausearch命令更多详解请查看:Linux 系统管理 : ausearch 命令详解

7. 实际排障场景对照表

问题现象排查命令 / 日志
服务无法启动systemctl status 服务名journalctl -u 服务名
SSH 登录失败cat /var/log/secure (CentOS) / auth.log (Ubuntu)
Nginx 报错cat /var/log/nginx/error.log
系统崩溃journalctl --since "YYYY-MM-DD HH:MM"
定时任务未执行cat /var/log/cronjournalctl -u cron

8. 日志管理最佳实践

建议说明
✅ 启用 logrotate控制大小、备份、压缩
✅ 权限管控日志中可能含密码、Token,防止越权读取
✅ 集中收集rsyslog → ELK / Graylog / Loki,统一检索
✅ 远程备份防止本地篡改,满足合规
✅ 分级记录关键服务设 error_log warn/error 级,减少噪音
✅ 定期清理保留 7–30 天,磁盘告警前自动清理

9. 总结

模块工具 / 文件用途
主日志系统rsyslog / systemd-journald采集+存储
查看命令journalctl dmesg tail less检索+排障
登录审计last lastlog btmp wtmp用户行为
轮转归档logrotate自动压缩+清理
安全审计auditd auth.log权限&文件事件
评论 32
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

A-刘晨阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值