在CentOS 6.4系统中,syslog作为核心的日志管理工具,承担着记录系统事件、服务状态及错误信息的重要职责,它通过集中化、规范化的日志处理,帮助管理员快速排查问题、监控系统运行状态,本文将详细介绍CentOS 6.4中syslog的配置、优化及常见问题处理,帮助读者全面掌握这一基础但关键的系统服务。

syslog的基本概念与作用
syslog是一种标准的日志记录系统,广泛应用于类Unix操作系统,在CentOS 6.4中,syslog通过守护进程(如syslogd或rsyslog)接收来自内核、应用程序及网络设备的日志信息,并根据预设规则将其分类存储到不同的文件中,其核心作用包括:记录系统启动、服务运行、用户操作等关键事件;提供审计追踪功能,满足安全合规要求;以及通过日志分析优化系统性能。
syslog的默认配置与文件结构
CentOS 6.4默认使用rsyslog作为syslog的实现,其主配置文件位于/etc/rsyslog.conf,该文件通过规则定义日志的来源、优先级及目标位置,默认情况下,内核日志(优先级为kern.*)会记录到/var/log/kern.log,而认证相关日志(authpriv.*)则存储在/var/log/secure。/etc/rsyslog.d/目录下的配置文件可以扩展默认规则,实现更灵活的日志管理,日志文件通常位于/var/log/目录,包括messages(通用系统日志)、cron(计划任务日志)等。
日志优先级与设施
syslog通过“设施”(facility)和“优先级”(priority)对日志进行分类,设施表示日志的来源,如mail(邮件服务)、daemon(系统守护进程)等;优先级则表示日志的紧急程度,从debug(调试信息)到emerg(紧急事件)共8个级别。*.info表示记录所有设施中优先级为info及以上的日志,而mail.*则记录所有与邮件相关的日志,合理配置优先级可以避免日志文件过大,同时确保关键信息不被遗漏。
配置rsyslog规则
修改/etc/rsyslog.conf或添加自定义配置文件(如/etc/rsyslog.d/custom.conf)可以定制日志处理规则,将所有cron设施的日志发送到远程服务器,可添加以下规则:

*.* @remote-server-ip:514
表示UDP传输,表示TCP传输,规则修改后,需执行service rsyslog restart重启服务使配置生效,通过$IncludeConfig指令可以引入其他配置文件,实现模块化管理。
日志轮转与维护
日志文件会随时间增长,可能导致磁盘空间不足,CentOS 6.4通过logrotate工具实现日志轮转,其配置文件为/etc/logrotate.conf,默认情况下,/var/log/下的日志文件每天轮转一次,保留最近7天的备份。/var/log/messages的轮转规则包括:按日期压缩归档、删除超过7天的旧日志、轮转后通知rsyslog重新打开文件,管理员可根据需求调整轮转频率和保留策略,避免日志管理失控。
网络日志与集中化管理
在多服务器环境中,将日志集中存储到中央服务器便于统一管理,在客户端配置@central-server-ip:514,将日志发送至远程服务器;在中央服务器上,需启用$ModLoad imudp和$UDPServerRun 514以接收UDP日志,为增强安全性,建议使用TLS加密传输或配置防火墙规则限制日志来源IP,集中化日志管理不仅简化了故障排查,还能通过工具如loganalyze实现日志的自动化分析。
常见问题与排查
- 日志丢失:检查
/var/log/目录权限是否正确(通常为640,属主为root、属组为root),以及磁盘空间是否充足。 - 远程日志无法接收:确认中央服务器的防火墙允许514端口,且客户端与服务器网络连通。
FAQs
Q1: 如何查看syslog服务的运行状态?
A1: 执行service rsyslog status命令,若显示“running”则服务正常;若未运行,可通过service rsyslog start启动。

Q2: 如何过滤特定关键词的日志?
A2: 使用grep命令结合正则表达式,例如grep "error" /var/log/messages可查找包含“error”的日志行。