如何通过Grok仅捕获包含CRON关键字的日志行?
提取日志中包含CRON的行并进行Grok映射
第一步:过滤含CRON的日志行
针对大型日志文件,用grep命令能高效筛选出包含CRON的日志行,执行以下命令即可:
grep "CRON" /path/to/your/logfile
执行后会得到如下目标日志内容:
Dec 28 22:30:01 user-desktop CRON[65168]: (root) CMD ([ -x /etc/init.d/anacron ] && if [ ! -d /run/systemd/system ]; then /usr/sbin/invoke-rc.d anacron start >/dev/null; fi) Dec 28 23:17:01 user-desktop CRON[65587]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
第二步:用Grok表达式解析字段
拿到过滤后的日志行后,即可使用你指定的Grok表达式完成字段映射:
%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{SYSLOGPROG:syslog_program}
这个表达式会将日志中的时间字符串提取为syslog_timestamp字段,主机名提取为syslog_hostname字段,CRON进程相关信息提取为syslog_program字段,后续你可根据需求继续处理日志的剩余内容。
内容的提问来源于stack exchange,提问作者NinjaGaiden
相关产品推荐
相关产品推荐

