CentOS Syslog使用技巧汇总
/var/log目录下,常见文件包括/var/log/messages(系统内核与服务消息)、/var/log/secure(安全认证信息)、/var/log/boot.log(系统启动日志)、/var/log/dmesg(内核启动消息)。tail -f /var/log/messages命令可实时查看日志文件的最新内容,便于监控系统实时状态。grep命令过滤日志中的关键信息,例如grep "error" /var/log/messages可找出所有包含“error”的日志行;结合journalctl(适用于CentOS 7及以上版本)使用journalctl | grep 'error'能搜索systemd管理的所有日志。yum install rsyslog安装rsyslog(CentOS默认日志服务),安装完成后通过systemctl start rsyslog启动服务,并用systemctl enable rsyslog设置开机自启,确保服务持续运行。/etc/rsyslog.conf文件,取消以下两行的注释(或添加)以启用UDP/TCP远程日志接收:module(load="imudp")input(type="imudp" port="514")module(load="imtcp")input(type="imtcp" port="514")*.* @192.168.1.100:514,@表示UDP,@@表示TCP),重启rsyslog服务使配置生效。logrotate工具自动管理日志轮转,编辑/etc/logrotate.d/rsyslog文件(或创建自定义配置文件),设置轮转规则。例如,按天轮转/var/log/messages并保留30天:/var/log/messages { daily rotate 30 compress delaycompress missingok notifempty create 640 root adm }$programname变量将特定服务的日志写入单独文件,例如将Nginx日志写入/var/log/nginx.log:if $programname == 'nginx' then /var/log/nginx.log& stop可停止后续规则匹配,避免重复记录。$syslogseverity变量过滤特定级别的日志,例如仅记录错误及以上级别日志:if $syslogseverity <= 3 then /var/log/error.log0=emerg、1=alert、2=crit、3=err,数值越小级别越高)。$template定义日志输出格式,例如添加时间戳、主机名、程序名:$template CustomFormat,"%timegenerated% %syslogtag% %msg%\n"*.* ?CustomFormat。firewall-cmd --permanent --add-port=514/udp和firewall-cmd --permanent --add-port=514/tcp命令,然后firewall-cmd --reload重新加载配置。/etc/rsyslog.conf,添加module(load="imudp" ssl.caCert="/path/to/ca.crt" ssl.cert="/path/to/server.crt" ssl.key="/path/to/server.key")(UDP示例),并配置客户端使用@@(encrypted)连接。systemctl status rsyslog查看rsyslog服务是否运行正常,若有错误需根据提示修复。rsyslogd -N1命令检查语法是否正确(-N1表示仅检查语法,不实际启动服务)。logger "Test remote log message"命令发送测试日志,登录服务器检查/var/log/目录下是否有对应的日志文件(如/var/log/secure或自定义路径)。