一、前置准备:确认rsyslog服务状态
CentOS系统中,Syslog功能通常由rsyslog提供(替代传统syslog)。首先需确保服务正常运行:
systemctl命令查看rsyslog是否处于运行状态,若未运行则启动服务。sudo systemctl status rsyslog # 查看状态
sudo systemctl start rsyslog # 启动服务(若未运行)
sudo systemctl enable rsyslog # 设置开机自启
/var/log/messages,可通过tail命令实时查看最新日志,确认服务是否正常记录。sudo tail -f /var/log/messages
二、配置rsyslog监控关键日志
通过修改rsyslog配置文件(/etc/rsyslog.conf或/etc/rsyslog.d/目录下的自定义文件),可将不同类型的系统日志定向到指定文件,便于针对性监控:
/etc/rsyslog.conf),添加或修改规则。sudo vi /etc/rsyslog.conf
/var/log/kern.log(用于监控硬件或驱动问题)。kern.* /var/log/kern.log
/var/log/secure(用于监控非法登录尝试)。authpriv.* /var/log/secure
cron.* /var/log/cron
mail.* /var/log/maillog
sudo systemctl restart rsyslog
三、实时查看与过滤日志
监控系统状态需实时跟踪日志变化,并通过过滤快速定位关键信息:
tail -f命令跟踪日志文件的最新内容(如系统日志、安全日志)。sudo tail -f /var/log/messages # 实时查看系统综合日志
sudo tail -f /var/log/secure # 实时查看安全相关日志
grep命令过滤特定关键字(如“error”“fail”),快速定位异常。sudo tail -f /var/log/messages | grep "error" # 查看系统错误日志
sudo tail -f /var/log/secure | grep "fail" # 查看认证失败日志
watch命令每隔一定时间(如5秒)查看日志末尾的最新内容,适合长期监控。sudo watch -n 5 "tail -n 50 /var/log/messages" # 每5秒查看最后50行日志
四、日志轮转管理(防止日志膨胀)
系统日志会持续增长,需通过logrotate工具定期轮转(压缩、删除旧日志),避免占用过多磁盘空间:
/etc/logrotate.d/rsyslog文件(rsyslog的默认轮转配置),设置按天轮转并保留30天日志。sudo vi /etc/logrotate.d/rsyslog
示例配置(针对/var/log/messages):/var/log/messages {
daily # 每天轮转
rotate 30 # 保留30个旧日志
missingok # 若日志不存在也不报错
notifempty # 若日志为空则不轮转
compress # 压缩旧日志(节省空间)
delaycompress # 延迟压缩(避免压缩当天日志)
sharedscripts # 所有日志轮转完成后执行脚本
}
logrotate命令手动触发轮转,验证配置是否正确。sudo logrotate -vf /etc/logrotate.d/rsyslog # 强制轮转并显示详细过程
五、使用工具增强监控能力
对于大规模或复杂的系统环境,可使用以下工具提升日志监控效率:
sudo yum install logwatch # 安装logwatch
sudo logwatch --output mail # 发送报告到邮箱(需配置邮件服务)
sudo logwatch --output stdout # 输出到终端(测试用)
六、设置日志级别(优化监控粒度)
根据需求调整日志级别,平衡监控详细程度与系统性能:
debug(调试信息,最详细)、info(一般信息)、notice(正常但有意义的事件)、warning(警告,可能出现问题)、err(错误,功能受影响)、crit(严重错误,部分功能失效)、alert(紧急,需立即处理)、emerg(系统不可用)。/etc/rsyslog.conf,设置默认日志级别(如info)。$DefaultLoggingLevel info # 设置默认级别为info(可根据需求改为warning/debug)
warning),减少无关日志。cron.warning /var/log/cron # 只记录cron的warning及以上级别日志
sudo systemctl restart rsyslog