Debian Context系统日志分析指南
Debian系统的日志文件集中存储在/var/log目录下,常见日志文件及其作用如下:
/var/log/syslog//var/log/messages:记录系统全局消息,包括内核、系统服务、设备驱动等非内核引导信息及应用程序信息;/var/log/auth.log(Debian/Ubuntu):核心安全审计日志,记录用户登录、注销、sudo/su使用、SSH登录尝试等身份验证事件;/var/log/kern.log:内核生成的消息,涵盖硬件问题、驱动程序信息等;/var/log/dmesg:内核环形缓冲区信息,主要显示系统启动时的内核消息(可通过dmesg命令查看);/var/log/boot.log:记录系统启动过程中服务启动和关闭的信息;/var/log/faillog:记录用户登录失败的尝试(可通过faillog命令查看);/var/log/lastlog:记录每个用户最后一次登录的信息(可通过lastlog命令查看);/var/log/wtmp//var/log/utmp:utmp记录当前登录用户信息(who命令数据来源),wtmp记录历史登录和注销信息(last命令数据来源)。journalctl(Systemd日志工具)journalctl是Debian系统默认的日志管理工具,可直接查看systemd管理的所有服务日志,支持按时间、服务、优先级等条件过滤:
journalctl;journalctl -u nginx;journalctl --since "2025-10-01" --until "2025-10-31";journalctl -b;journalctl -p err。cat:查看日志文件内容(如cat /var/log/syslog);tail:实时查看日志文件的最后几行或最新内容(如tail -n 10 /var/log/syslog查看最后10行,tail -f /var/log/syslog实时跟踪最新内容);grep:过滤日志中的特定关键词(如grep "error" /var/log/syslog查找错误信息,grep "Failed password" /var/log/auth.log查找SSH登录失败记录);less:分页查看日志文件内容(如less /var/log/syslog,支持上下翻页、搜索);awk/sed:复杂文本处理(如awk '/error/ {print $1, $2}' /var/log/syslog提取错误日志的时间戳和消息,sed 's/error/ERROR/g' /var/log/syslog替换关键词)。logrotatelogrotate用于自动管理日志文件,防止日志过大占用磁盘空间,支持轮转、压缩、删除旧日志及邮件通知:
sudo apt-get update && sudo apt-get install logrotate;/etc/logrotate.conf,自定义配置存放在/etc/logrotate.d/目录下(如/etc/logrotate.d/rsyslog配置rsyslog日志轮转);/etc/logrotate.d/syslog):/var/log/syslog
{
daily
rotate 7
compress
delaycompress
missingok
notifempty
create 640 root adm
sharedscripts
postrotate
/usr/lib/rsyslog/rsyslog-rotate
endscript
}
该配置表示每日轮转syslog文件,保留最近7个压缩日志,轮转后重启rsyslog服务。gnome-systemlog:GNOME桌面环境的系统日志查看器,提供图形化界面查看、过滤(按时间、服务、优先级)和搜索日志文件;ksystemlog:KDE桌面环境的系统日志查看器,功能与gnome-systemlog类似,支持日志分类和过滤;Graylog:开源日志管理平台,可集中收集、存储和分析多源日志,支持实时监控、告警和可视化(需额外部署)。/var/log/auth.log,搜索“Failed password for”关键字,提取攻击源IP(如grep "Failed password for" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr);last命令查看用户登录记录(如last),或lastlog查看所有用户的最后一次登录信息;journalctl -b查看系统启动日志,或systemctl status 服务名称(如systemctl status nginx)查看服务状态;dmesg命令查看内核环形缓冲区日志(如dmesg | grep -i error)。