我是靠谱客的博主 魔幻芒果,最近开发中收集的这篇文章主要介绍logstash 输出 oracle,【logstash】 - 使用mutate处理数据,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

使用logstash提取oracle的alter日志的ora错误。

日志格式如下:alter database open

Errors in file d:oraclediagrdbmshxw168hxw168tracehxw168_ora_6148.trc:

ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项

ORA-1589 signalled during: alter database open...

alter database open resetlogs

logstash内容:input{

file{

codec => plain {

charset => "CP936" #windows下的编码是cp936(chcp查看)

}

type => "oracleerr"

path => "D:/logsystem/logstash/bin/test/alert_hxw168.log"

start_position => "beginning"

}

#stdin{type => "hxwtest"}

}

filter{

mutate{

#以:号分割message内容,分割后以数据方式显示。

#比如abc:efg => message[0] = abc message[1]=efg

split => ["message",":"]

}

#第一个数据的内容中ORA-xxxxx这种格式,则这条内容是ora错误。添加二个字段

#oraerr orades

if [message][0] =~ /^ORA-[0-9]{5}/ {

mutate{

add_field =>   {

"ORAERR" => "%{[message][0]}"

"ORADES" => "%{[message][1]}"

}

}

}

}

output{

#有ORAERR字段,则输出。

if [ORAERR]{

stdout{

codec => rubydebug

}

}

}

结果:1.

{

"message" => [

[0] "ORA-00322",

[1] " 日志 2 (用于线程 1) 不是最新副本r"

],

"@version" => "1",

"@timestamp" => "2014-12-12T15:50:53.790Z",

"type" => "oracleerr",

"host" => "huangwen",

"path" => "D:/logsystem/logstash/bin/test/alert_hxw168.log",

"ORAERR" => "ORA-00322",

"ORADES" => " 日志 2 (用于线程 1) 不是最新副本r"

}

2.

{

"message" => [

[0] "ORA-00312",

[1] " 联机日志 2 线程 1",

[2] " 'D",

[3] "\ORACLE\ORADATA\HXW168\REDO02.LOG'r"

],

"@version" => "1",

"@timestamp" => "2014-12-12T15:50:53.790Z",

"type" => "oracleerr",

"host" => "huangwen",

"path" => "D:/logsystem/logstash/bin/test/alert_hxw168.log",

"ORAERR" => "ORA-00312",

"ORADES" => " 联机日志 2 线程 1"

}

最后

以上就是魔幻芒果为你收集整理的logstash 输出 oracle,【logstash】 - 使用mutate处理数据的全部内容,希望文章能够帮你解决logstash 输出 oracle,【logstash】 - 使用mutate处理数据所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部