Linux系统使用多种日志服务来记录系统活动,主要包括:
/var/log/messages
:常规系统消息/var/log/syslog
:系统日志(在Debian/Ubuntu中)/var/log/auth.log
:认证相关日志/var/log/kern.log
:内核日志/var/log/boot.log
:系统启动日志/var/log/nginx/
:Nginx日志/var/log/apache2/
:Apache日志/var/log/mysql.log
:MySQL日志# 查看日志文件
cat /var/log/syslog
less /var/log/syslog
tail -f /var/log/syslog # 实时查看日志更新
# 按时间筛选
journalctl --since "2023-01-01" --until "2023-01-02"
journalctl -u nginx.service # 查看特定服务日志
journalctl -p err -b # 查看本次启动的错误日志
journalctl -f # 跟踪日志
journalctl --disk-usage # 查看日志占用空间
journalctl --vacuum-size=200M # 限制日志大小为200MB
配置文件位于/etc/logrotate.conf
和各服务的/etc/logrotate.d/
目录下
示例配置:
/var/log/nginx/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
postrotate
/usr/sbin/nginx -s reload
endscript
}
grep "error" /var/log/syslog
grep -i "fail" /var/log/auth.log
# 统计HTTP状态码
awk '{print $9}' access.log | sort | uniq -c | sort -rn
GoAccess:实时Web日志分析器
goaccess /var/log/nginx/access.log -o report.html --log-format=COMBINED
Logwatch:每日日志摘要
logwatch --detail High
ELK Stack (Elasticsearch, Logstash, Kibana):企业级日志解决方案
# 清空日志文件(不删除文件本身)
> /var/log/syslog
# 或者使用truncate
truncate -s 0 /var/log/syslog
# 检查rsyslog状态
systemctl status rsyslog
# 重启服务
systemctl restart rsyslog
# 查看日志占用空间
du -sh /var/log/
# 清理旧日志
find /var/log -type f -name "*.log" -mtime +30 -delete
通过合理配置和管理日志系统,您可以有效监控系统运行状态,快速定位问题,并满足合规性要求。