在CentOS系统中,绝大多数日志文件集中存储在**/var/log/**目录下,常见日志文件及其用途如下:
/var/log/messages
:记录系统一般信息(如内核消息、服务启动/停止、硬件检测等),是系统故障诊断的核心日志之一。/var/log/boot.log
:详细记录系统启动过程(如硬件初始化、驱动加载、服务启动顺序)。/var/log/dmesg
:内核环缓冲区日志,包含硬件检测、设备驱动加载等信息(可通过dmesg
命令查看)。/var/log/secure
:记录安全事件(如SSH登录尝试、sudo命令执行、用户认证失败等),是安全审计的关键依据。/var/log/audit/audit.log
:审计日志(需开启auditd服务),记录系统调用、文件访问、网络连接等详细信息。/var/log/httpd/access_log
(Apache访问日志,记录HTTP请求详情)、/var/log/httpd/error_log
(Apache错误日志);/var/log/nginx/access_log
/error_log
(Nginx同理)。/var/log/mysqld.log
//var/log/mysql/error.log
(MySQL数据库错误与运行日志)。/var/log/cron
:记录cron定时任务的执行情况(如任务启动时间、输出结果)。命令行工具是日志分析的基础,适合快速筛选、统计和定位问题:
grep "ERROR" /var/log/messages
(查找系统日志中的ERROR级别日志);grep "Failed password" /var/log/secure
(查找SSH登录失败记录)。tail -f /var/log/messages
(实时跟踪系统日志);tail -f /var/log/secure
(实时监控安全日志)。awk '{print $1, $2, $3}' /var/log/httpd/access_log
(提取Apache访问日志中的时间、IP、请求方法);awk -F'"' '{print $6}' /var/log/httpd/access_log | sort | uniq -c | sort -nr
(统计Apache访问日志中最常访问的URL)。sed -n 's/.*ERROR.*/&/p' /var/log/messages
(提取系统日志中包含“ERROR”的行);sed 's/IP:[0-9.]*/IP:XXX/g' /var/log/secure
(替换日志中的IP地址为XXX)。sort /var/log/secure | uniq -c
(统计安全日志中每行的出现次数);grep "Failed password" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr
(统计SSH登录失败的IP及次数)。journalctl -b
(查看当前启动的日志);journalctl -u sshd
(查看sshd服务的日志);journalctl --since "2025-09-01" --until "2025-09-30"
(查看9月份的日志)。对于复杂的日志分析需求(如大规模日志收集、可视化、长期存储),可使用以下工具:
yum install logwatch -y
(安装);logwatch --output mail --mailto your_email@example.com --detail high
(配置发送邮件报告)。yum install elasticsearch -y
)、Logstash(yum install logstash -y
)、Kibana(yum install kibana -y
);配置Logstash收集Apache日志(编辑/etc/logstash/conf.d/apache.conf
),启动服务后通过Kibana访问可视化界面。yum install graylog-server graylog-web-interface -y
(安装);配置Graylog(设置管理员密码、添加日志源),通过Web界面查看日志分析结果。yum install goaccess -y
(安装);goaccess /var/log/httpd/access_log -o report.html --log-format=COMBINED
(生成HTML格式的Apache访问报告)。为防止日志文件过大占用磁盘空间,需使用logrotate工具定期轮转日志(如按天/周分割、压缩旧日志、删除过期日志)。
/etc/logrotate.conf
(全局配置,如轮转周期、保留数量);/etc/logrotate.d/
(针对特定服务的配置,如/etc/logrotate.d/httpd
用于Apache日志)。/etc/logrotate.d/httpd
,添加以下内容(按天轮转,保留30天,压缩旧日志):/var/log/httpd/*.log {
daily
missingok
rotate 30
compress
delaycompress
notifempty
create 640 root root
sharedscripts
postrotate
systemctl reload httpd > /dev/null 2>&1 || true
endscript
}
logrotate -vf /etc/logrotate.conf
(强制立即轮转并显示详细信息)。tail -f
或journalctl -f
监控/var/log/secure
(安全事件)、/var/log/messages
(系统异常)、应用日志(如Apache/Nginx错误日志),及时发现异常(如频繁登录失败、服务崩溃)。/var/log/secure
中出现“Invalid user”时发送邮件/短信通知),提前应对安全威胁。/var/log/secure
中的SSH登录记录与/var/log/messages
中的服务启动记录),分析问题的根本原因(如登录失败是否导致服务中断)。