Logstash配置文件不会捕获我的日志,但调试器确实如此

时间:2016-02-18 11:15:38

标签: regex config logstash multiline elastic-stack

所以,我在elk-stack上有点新鲜,而且我在进一步试验这些工具时遇到了问题。我使用的是linux机器。 首先,这是我的配置文件:

input {
    file {
        type => "openerp"
        path => "/home/jvc/Documents/log/openerp-cron.log.2014-11-20.txt"
        start_position => "beginning"
        codec => multiline{
                pattern => "^%{TIMESTAMP_ISO8601} "
                negate => true
                what => previous
        }
    }
}
filter{
    if [type]=="openerp"{
        date{
            match => ["timestamp","yyyy-MM-dd HH:mm:ss,SSS"]
        }
        grok{
            patterns_dir => "./patterns"
            match => { "message" => "%{ODOOLOG}" }
        }
    }
}
output{
    file{
        path => "/home/jvc/Bureau/testretour.txt"
    }
}

我也有一些模式:

REQUESTTIMESTAMP %{MONTHDAY}/%{MONTH}/%{YEAR} %{TIME}
REQUEST %{IPORHOST:client} %{USER:ident} %{USER:auth} [%{REQUESTTIMESTAMP:request_timestamp}] "%{WORD:request_type} %{URIPATHPARAM:request} HTTP/%{NUMBER:httpversion}" %{NUMBER:response} -
ODOOMISC %{GREEDYDATA}
ODOOLOG %{TIMESTAMP_ISO8601:timestamp} %{POSINT:pid} %{LOGLEVEL:level} (?:%{USERNAME:user}|\?) %{PROG:module}: (?:%{REQUEST}|%{ODOOMISC:misc})

日志的一些例子:

2014-11-21 08:00:16,715 17798 DEBUG noe openerp.addons.base.ir.ir_cron: cron.object.execute('noe', 1, '*', u'crossovered.budget.lines', u'computeblank')
2014-11-21 08:00:17,172 17798 WARNING noe openerp.osv.orm.browse_record.noe_utils.synchro_date: Field 'conform' does not exist in object 'browse_record(noe_utils.synchro_date, 13)'
2014-11-21 08:00:17,172 17798 ERROR noe openerp.sql_db: Programming error: can't adapt type 'browse_record', in query SELECT id
FROM crossovered_budget_lines
WHERE is_blank='t'
AND general_budget_id in %s
AND date_from <= %s AND date_to >= %s
2014-11-21 08:00:17,173 17798 ERROR noe openerp.addons.base.ir.ir_cron: Call of self.pool.get('crossovered.budget.lines').computeblank(cr, uid, *()) failed in Job 10

我在使用此配置时遇到问题。由于某些我无法找到的原因,这没有任何结果。 我尝试过 - 做过:

- 首先,我测试了我的grok,以及我在网上找到的一些grok调试器中的多行模式。所有这些都匹配我的日志。

- 在使用多线编解码器之前,我使用了多线过滤器。这个工作,但似乎已被弃用。所以它不是解决方案。

- 我知道logstash记住他曾经读过的&#34; sincedb&#34; files:我在每次测试之前删除这些,但你知道会发生什么。

- 我尝试使用-verbose运行logstash,但没有显示任何错误。

- 我真的不知道是否必须写&#34; .txt&#34;在我的路径尽头。但无论如何,它们都不起作用。

我错过了什么吗?提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

所以,随着更多的测试我成功了。我复制了我的一个日志文件的内容并将其粘贴到另一个文件中:它可以工作。

但是,现在还有另一个问题:如果删除“sincedb”文件不起作用,我怎么能“清空”logstash的缓存?