logstash接收设备日志(logstash解析日志文件的配置)

话不多说,直接上干货如有问题下方评论区评论,本人直接回复,我来为大家科普一下关于logstash接收设备日志?下面希望有你要的答案,我们一起来看看吧!

logstash接收设备日志(logstash解析日志文件的配置)

logstash接收设备日志

话不多说,直接上干货!

如有问题下方评论区评论,本人直接回复

以下是读取两个java服务的日志文件进行解析

input { file { #日志文件地址 path => "/usr/local/sffkszh_app/scm/logs/*.log.*" type => "scm" #排除不想监听的文件 #exclude => "1.log" #添加自定义的字段 #add_field => {"test"=>"test"} #增加标签 #tags => "tag1" #设置新事件的标志 #delimiter => "\n" #设置多长时间扫描目录,发现新文件 #discover_interval => 15 #设置多长时间检测文件是否修改 #stat_interval => 1 #监听文件 beginning起始位置,默认是end start_position => "beginning" #监听文件读取信息记录的位置,重启logstash不会重复读取数据 sincedb_path => "../scmRecord.txt" #设置多长时间会写入读取的位置信息 #sincedb_write #_interval => 15 #docinfo => true } file { path => "/usr/local/sffkszh_app/asu/log/*.log" type => "asu" #排除不想监听的文件 #exclude => "1.log" #添加自定义的字段 #add_field => {"test"=>"test"} #增加标签 #tags => "tag1" #设置新事件的标志 #delimiter => "\n" #设置多长时间扫描目录,发现新文件 #discover_interval => 15 #设置多长时间检测文件是否修改 #stat_interval => 1 #监听文件 beginning起始位置,默认是end start_position => "beginning" #监听文件读取信息记录的位置,重启logstash不会重复读取数据 sincedb_path => "../asuRecord.txt" #设置多长时间会写入读取的位置信息 #sincedb_write #_interval => 15 #docinfo => true } } filter { multiline { pattern => "%{DATESTAMP}" negate => true what => "previous" } if [type] == 'scm' { if "index:" in [message] { grok { match => [ # 解析日志文件定义的打印数据 "message","%{URIHOST:logDate} %{TIME:logTime} %{SYSLOG5424SD} %{LOGLEVEL:logLevel} %{JAVACLASS}- index:%{NOTSPACE:esIndex},type:%{NOTSPACE:esType},data:%{DATA:esData},description:%{NOTSPACE:esDescription}" ] } }else { drop {} } } if [type] == 'asu' { if "index:" in [message] { grok { match => [ "message","%{URIHOST:logDate} %{HAPROXYTIME:logTime} %{SYSLOG5424SD} %{LOGLEVEL:logLevel} %{JAVACLASS} %{SYSLOG5424SD} - index:%{DATA:esIndex},type:%{DATA:esType},data:%{DATA:esData},description:%{NOTSPACE:esDescription}" ] } }else { drop {} } } ruby { code => "event['time'] = event['@timestamp']" } # 时间名称修改 mutate { add_field => ["time", "%{@timestamp}"] } # 删除不需要的字段 mutate { remove_field => ["@timestamp"] remove_field => ["message"] remove_field => ["@version"] remove_field => ["tags"] } # ruby { # code => " # event.set('userMessage', event.get('userMessage')) # event.set('userId', event.get('userId')) # " # } if [logLevel] == "WARN" { drop {} } if [logLevel] == "ERROR" { drop {} } # message中不包含index的将删除 #if ([message] !~ "^index") { # drop {} #} date { match => ["@timestamp", "yyyy-MM-dd HH:mm:ss"] locale => "cn" } } output { elasticsearch { hosts => "192.168.10.14:9200" # 动态索引库 index => "%{esIndex}" # 动态类型 #document_type => "%{esType}" } stdout { # JSON格式输出 codec => json_lines } }

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页