一、核心日志文件位置
| 日志文件 | 记录内容 | 查看命令 | 
|---|---|---|
/var/log/messages | 
通用系统消息(RHEL/CentOS) | cat /var/log/messages | 
/var/log/syslog | 
通用系统消息(Debian/Ubuntu) | tail -f /var/log/syslog | 
/var/log/auth.log | 
用户认证日志(SSH/sudo) | grep "Failed" /var/log/auth.log | 
/var/log/kern.log | 
内核运行日志 | journalctl -k | 
/var/log/boot.log | 
系统启动日志 | cat /var/log/boot.log | 
/var/log/nginx/* | 
Nginx访问/错误日志 | tail -f /var/log/nginx/access.log | 
二、基础查看方法
- 
实时监控日志
tail -f /var/log/syslog # 持续输出新日志
 - 
按时间筛选
journalctl --since "2024-05-20 09:00:00" --until "2024-05-20 18:00:00"
 - 
关键词过滤
grep -i "error" /var/log/messages # 筛选错误信息
 
三、高级分析技巧
- 
统计HTTP状态码(Nginx示例)
awk '{print $9}' /var/log/nginx/access.log | sort | uniq -c | sort -rn
 - 
检测暴力破解尝试
awk '/Failed password/{print $11}' /var/log/auth.log | sort | uniq -c | sort -n
 - 
日志时间范围提取
sed -n '/May 20 10:00:00/,/May 20 11:00:00/p' /var/log/syslog
 
四、日志轮转配置
- 
查看当前配置
cat /etc/logrotate.conf ls /etc/logrotate.d/
 - 
自定义Nginx日志轮转
sudo nano /etc/logrotate.d/nginx
/var/log/nginx/*.log { daily missingok rotate 30 compress delaycompress notifempty create 0640 www-data adm sharedscripts postrotate /usr/sbin/nginx -s reload endscript } 
五、系统日志服务(journalctl)
- 
基本用法
journalctl -xe # 查看详细系统日志 journalctl -u nginx.service # 查看指定服务日志
 - 
导出日志到文件
journalctl --since "1 hour ago" > recent_logs.txt
 
六、安全审计日志
- 
启用auditd服务
sudo systemctl start auditd sudo auditctl -l # 查看当前规则
 - 
监控文件修改
sudo auditctl -w /etc/passwd -p wa -k passwd_changes ausearch -k passwd_changes # 查询记录
 
七、日志分析工具推荐
| 工具 | 功能 | 安装命令 | 
|---|---|---|
| GoAccess | 实时Web日志分析 | sudo apt install goaccess | 
| Logwatch | 每日日志摘要报告 | sudo apt install logwatch | 
| ELK Stack | 企业级日志分析平台 | 需Docker/独立服务器部署 | 
八、关键故障排查场景
- 
服务器突然重启
grep -i "shutdown" /var/log/messages last reboot # 查看重启历史
 - 
磁盘空间不足
grep "disk full" /var/log/syslog df -h # 检查磁盘使用
 - 
服务启动失败
journalctl -u mysql --no-pager -n 50 # 查看MySQL最后50条日志
 
九、日志归档策略
- 
自动清理旧日志
sudo find /var/log -type f -name "*.log" -mtime +30 -delete
 - 
远程日志备份(rsync示例)
rsync -avz /var/log/ backup-server:/backups/$(hostname)-logs/
 
十、最佳实践建议
- 
统一收集:使用Fluentd/Filebeat集中管理多服务器日志
 - 
敏感信息过滤:配置日志系统不记录密码等隐私数据
 - 
监控告警:设置Logcheck检测异常日志模式
 
通过系统化日志管理,可快速定位80%以上的服务器问题。建议对关键服务(如数据库)建立单独的日志分析流程。
