/var/log/messages
- 常规系统消息/var/log/auth.log
- 认证相关日志/var/log/kern.log
- 内核日志/var/log/cron
- 计划任务日志/var/log/maillog
- 邮件服务器日志/var/log/httpd/
- Apache日志目录/var/log/mysql.log
- MySQL数据库日志grep - 文本搜索
grep "error" /var/log/syslog
tail - 查看日志尾部
tail -f /var/log/messages # 实时监控
less/more - 分页查看
less /var/log/syslog
awk - 高级文本处理
awk '/error/ {print $5}' /var/log/syslog
cut - 提取特定列
cut -d' ' -f1-5 /var/log/auth.log
配置示例 (/etc/logrotate.conf
):
/var/log/httpd/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 0640 root adm
sharedscripts
postrotate
/etc/init.d/httpd reload > /dev/null
endscript
}
配置远程日志服务器 (/etc/rsyslog.conf
):
# 启用UDP接收
module(load="imudp")
input(type="imudp" port="514")
# 启用TCP接收
module(load="imtcp")
input(type="imtcp" port="514")
# 定义模板
template(name="RemoteLogs" type="string" string="/var/log/remote/%HOSTNAME%/%PROGRAMNAME%.log")
# 规则
*.* ?RemoteLogs
Logstash配置示例:
input {
file {
path => "/var/log/*.log"
start_position => "beginning"
}
}
filter {
grok {
match => { "message" => "%{SYSLOGTIMESTAMP:timestamp} %{SYSLOGHOST:hostname} %{DATA:program}(?:\[%{POSINT:pid}\])?: %{GREEDYDATA:message}" }
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "syslog-%{+YYYY.MM.dd}"
}
}
# 使用gzip压缩旧日志
find /var/log -name "*.log" -mtime +30 -exec gzip {} \;
# 使用xz获得更高压缩率
find /var/log -name "*.log" -mtime +90 -exec xz {} \;
# 删除超过90天的日志
find /var/log -name "*.log" -mtime +90 -delete
# 使用logrotate自动管理
sudo logrotate -f /etc/logrotate.conf
# 创建专用分区
mkfs.ext4 /dev/sdb1
mkdir /var/log_storage
mount /dev/sdb1 /var/log_storage
# 更新fstab实现自动挂载
echo "/dev/sdb1 /var/log_storage ext4 defaults 0 0" >> /etc/fstab
# 检查日志目录大小
du -sh /var/log
# 监控特定日志文件增长
watch -n 60 'ls -lh /var/log/syslog'
# 当日志超过1GB时发送告警
if [ $(du -m /var/log/syslog | cut -f1) -gt 1024 ]; then
echo "Syslog exceeds 1GB" | mail -s "Log Alert" admin@example.com
fi
Node Exporter配置:
collectors:
enabled: logind,logfiles
Grafana仪表板: - 日志文件大小趋势 - 日志增长率 - 错误/警告计数
日志权限设置:
chmod 640 /var/log/auth.log
chown root:adm /var/log/auth.log
日志完整性保护:
# 安装AIDE进行完整性检查
sudo apt install aide
aideinit
远程日志备份:
# 使用rsync同步到远程服务器
rsync -avz /var/log/ backup-server:/backup/logs/
日志加密:
# 使用gpg加密敏感日志
gpg --encrypt --recipient admin@example.com /var/log/secure.log
通过以上方法,您可以有效管理Linux系统日志,平衡存储需求与分析需求,同时确保日志的安全性和可用性。