Linux 系统日志管理
2025-02-17
1. 系统日志概述
1.1 日志类型
系统日志
/var/log/syslog/var/log/messages/var/log/dmesg
应用日志
/var/log/apache2//var/log/nginx//var/log/mysql/
安全日志
/var/log/auth.log/var/log/secure/var/log/audit/
2. 日志管理工具
2.1 基本命令
# 查看实时日志
tail -f /var/log/syslog
# 搜索日志内容
grep "error" /var/log/syslog
# 统计日志数量
wc -l /var/log/syslog2.2 日志分析工具
# 安装 logwatch
apt install logwatch # Ubuntu/Debian
yum install logwatch # CentOS/RHEL
# 使用 logwatch
logwatch --detail High --range All --output stdout3. 日志配置
3.1 rsyslog 配置
# 编辑 rsyslog 配置
vim /etc/rsyslog.conf
# 重启 rsyslog 服务
systemctl restart rsyslog3.2 logrotate 配置
# 编辑 logrotate 配置
vim /etc/logrotate.conf
# 创建自定义规则
vim /etc/logrotate.d/custom4. 日志分析方法
4.1 ���用分析命令
# 提取错误信息
awk '/error/' /var/log/syslog
# 统计访问 IP
awk '{print $1}' access.log | sort | uniq -c
# 分析时间段
sed -n '/May 20 10:00:00/,/May 20 11:00:00/p' syslog4.2 日志监控脚本
#!/bin/bash
# 监控日志文件大小
log_file="/var/log/syslog"
max_size=100000000 # 100MB
current_size=$(du -b "$log_file" | cut -f1)
if [ $current_size -gt $max_size ]; then
echo "Log file too large: $log_file"
logger "Warning: Log file size exceeded threshold"
fi5. 日志安全
5.1 日志加密
# 使用 GPG 加密日志
gpg -c logfile.log
# 日志文件权限设置
chmod 640 /var/log/secure
chown root:adm /var/log/secure5.2 远程日志
# 配置远程日志服务器
# 在 /etc/rsyslog.conf 中添加
*.* @remote-host:514
# 启用 TCP 传输
*.* @@remote-host:5146. 最佳实践
日志策略
- 确定日志级别
- 设置保留期限
- 规划存储空间
监控告警
- 设置关键字告警
- 监控日志大小
- 配置自动响应
安全考虑
- 日志访问控制
- 日志完整性检查
- 日志备份策略