CentOS Syslog日志过滤技巧有哪些
导读:CentOS Syslog日志过滤技巧汇总 CentOS系统中,rsyslog是默认的日志管理工具,支持通过配置文件规则和命令行工具实现灵活的日志过滤。以下是具体技巧: 一、基于rsyslog配置文件的过滤规则 rsyslog通过/etc/...
CentOS Syslog日志过滤技巧汇总
CentOS系统中,rsyslog是默认的日志管理工具,支持通过配置文件规则和命令行工具实现灵活的日志过滤。以下是具体技巧:
一、基于rsyslog配置文件的过滤规则
rsyslog通过/etc/rsyslog.conf及/etc/rsyslog.d/*.conf文件配置过滤逻辑,核心包括属性过滤、表达式过滤和传统优先级过滤。
1. 传统优先级过滤(基础语法)
通过facility.priority组合过滤日志,其中:
facility:日志来源(如kern内核、mail邮件、cron定时任务);priority:日志级别(如emerg紧急、err错误、info信息)。
常用格式:kern.*:记录内核所有级别的日志;mail.crit:记录邮件服务严重及以上级别(crit、alert、emerg)的日志;cron.!info,!debug:排除cron服务的info和debug日志,记录其余级别。
2. 属性过滤(精准匹配)
通过日志的属性字段(如msg内容、hostname主机名、programname程序名)进行过滤,语法为:
:PROPERTY, COMPARE_OPERATION, "VALUE"
常用操作:
contains:包含指定字符串(如:msg, contains, "error");isequal:等于指定值(如:hostname, isequal, "web01");regex:正则匹配(如:msg, regex, "fatal .* error");!:取反(如:msg, !contains, "debug")。
3. 表达式过滤(复杂逻辑)
使用rsyslog的RainerScript语法构建复杂过滤,支持if-else、and/or等逻辑。示例:
if ($programname == 'nginx' and $syslogseverity <
= 3) or ($msg contains 'timeout') then {
action(type="omfile" file="/var/log/nginx_errors.log")
stop
}
该规则表示:若日志来自nginx且级别≤3(err及以上),或消息包含timeout,则写入/var/log/nginx_errors.log并停止后续处理(stop)。
二、命令行工具快速过滤
无需修改配置文件,通过命令行工具实时或批量过滤日志:
1. grep:关键字过滤
- 基本过滤:
grep 'error' /var/log/messages(查找messages文件中包含error的行); - 实时过滤:
tail -f /var/log/messages | grep 'error'(实时监控新增的error日志); - 排除过滤:
grep -v 'debug' /var/log/messages(排除debug级别的日志)。
2. sed:时间范围过滤
通过正则匹配时间戳,过滤特定时间段的日志。示例(过滤2025-10-30的全天日志):
sed -n '/Oct 30 00:00:00/,/Oct 30 23:59:59/p' /var/log/messages
适用于需要分析某时间段日志的场景。
3. awk:多条件组合过滤
通过awk解析日志的设施/级别和内容,实现多条件过滤。示例(过滤cron服务的error日志):
awk '/^Oct 30 00:00:00/,/Oct 30 23:59:59/ {
if (/\[CRON\].*error/) print }
' /var/log/messages
或简化为(若日志格式固定):
awk '/cron.*error/' /var/log/messages
适用于需要提取特定程序或内容的日志。
三、实用技巧增强过滤效率
- 停止日志传播:在配置文件规则末尾添加
& stop,防止日志被后续规则重复处理(如cron.* /var/log/cron.log & stop); - 日志轮转:通过
logrotate配置(如/etc/logrotate.conf)定期压缩、删除旧日志,避免磁盘空间耗尽; - 远程转发:使用
omfwd模块将过滤后的日志发送到远程服务器(如*.* action(type="omfwd" Target="192.168.1.100" Port="514" Protocol="tcp")),实现集中管理。
以上技巧覆盖了CentOS Syslog从基础到高级的过滤需求,可根据实际场景组合使用,提升日志管理效率。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS Syslog日志过滤技巧有哪些
本文地址: https://pptw.com/jishu/738552.html
