Debian文件系统日志记录与分析指南
Debian默认使用rsyslog作为日志守护进程,负责收集、存储系统及服务日志。配置文件位于/etc/rsyslog.conf(主配置)和/etc/rsyslog.d/(自定义配置)。例如,要将所有日志级别(debug、info、notice等)记录到/var/log/syslog,可编辑/etc/rsyslog.conf并添加或取消注释:* /var/log/syslog;若需将Apache访问日志(/var/log/apache2/access.log)转发到rsyslog,可在/etc/rsyslog.d/apache.conf中添加:
module(load="imfile")
input(type="imfile"
File="/var/log/apache2/access.log"
Tag="apache-access:"
Severity="info"
Facility="local7")
修改后重启rsyslog服务:sudo systemctl restart rsyslog。
/etc/mysql/my.cnf或/etc/mysql/mysql.conf.d/mysqld.cnf,开启错误日志和慢查询日志:[mysqld]
log-error = /var/log/mysql/error.log
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow-query.log
long_query_time = 2
重启MySQL服务生效:sudo systemctl restart mysql。/etc/nginx/nginx.conf,配置access_log和error_log路径:http {
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
}
测试配置并重启:sudo nginx -t && sudo systemctl restart nginx。修改php.ini(通常位于/etc/php/{version}/fpm/php.ini或/etc/php/{version}/apache2/php.ini),开启错误日志:
error_log = /var/log/php_errors.log
error_reporting = E_ALL
display_errors = Off
log_errors = On
重启PHP-FPM服务:sudo systemctl restart php{version}-fpm。
cat(全量查看)、less(分页查看)、tail -f(实时跟踪最新日志):cat /var/log/syslog
less /var/log/auth.log
tail -f /var/log/syslog
grep筛选特定信息(如错误日志):grep "ERROR" /var/log/syslog
grep "Failed password" /var/log/auth.log # 查看失败登录尝试
awk提取字段(如时间戳、IP),sort+uniq -c统计频率:awk '{print $1, $2, $3}' /var/log/syslog # 提取前三个字段(时间、主机、进程)
grep "ERROR" /var/log/syslog | sort | uniq -c | sort -nr # 统计错误类型及次数
tail -f结合grep实时查看特定事件:tail -f /var/log/syslog | grep "kernel:"
对于使用systemd的Debian系统(如Debian 8及以上),journalctl是查询系统日志的强大工具:
journalctl -bjournalctl -u nginx.servicejournalctl --since "2025-09-20" --until "2025-09-25"journalctl -p err(仅显示错误级别日志)sudo apt install gnome-system-log,运行:gnome-system-log。sudo apt install ksystemlog,运行:ksystemlog。防止日志文件过大占用磁盘空间,自动压缩、删除旧日志。配置文件位于/etc/logrotate.conf(全局)和/etc/logrotate.d/(服务级)。例如,/etc/logrotate.d/rsyslog配置syslog轮转:
/var/log/syslog {
daily
rotate 7
compress
missingok
notifempty
create 0644 root root
}
表示每天轮转,保留7天压缩日志,文件缺失时不报错,空文件也轮转,创建新日志时设置权限为0644。
生成每日/每周日志报告,汇总关键事件(如登录失败、磁盘空间不足)。安装:sudo apt install logwatch,运行:sudo logwatch --output mail(发送邮件报告),或sudo logwatch --output stdout(终端显示)。可通过/etc/logwatch/conf/services.conf调整监控服务。
/var/log/syslog提取字段);syslog格式)。若需监控目录/文件访问(如/etc目录),可使用auditd服务:
sudo apt install auditd audispd-plugins/etc/audit/rules.d/audit.rules,添加:-a exit,always -F path=/etc -F perm=r -k etc_access # 监控/etc目录的读操作
sudo systemctl restart auditdausearch工具查看etc_access关键字日志:sudo ausearch -k etc_access # 查看所有相关日志
sudo ausearch -k etc_access -ts today # 查看今日日志
ausearch,将结果发送到邮箱或保存到文件。