【问题标题】:Logstash config-file don't catch my logs, but debugger didLogstash 配置文件没有捕捉到我的日志,但调试器捕捉到了
【发布时间】:2016-02-18 11:15:38
【问题描述】:

所以,我在 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 会记住他在“sincedb”文件中读过或没有读过的内容:我在每次测试之前都会删除这些文件,但你知道会发生什么。

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

-我真的不知道我是否必须在路径的末尾写上“.txt”。但无论如何,它们都不起作用。

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

【问题讨论】:

    标签: regex config logstash multiline elastic-stack


    【解决方案1】:

    所以,经过更多测试,我成功了。我复制了一个日志文件的内容并将其粘贴到另一个文件中:它有效。

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

    【讨论】:

    • 删除/root/.sincedb_*文件后是否重启了logstash?
    • 我不知道可能是什么问题,但删除 $HOME/.sincedb_* 总是对我有用。
    • 顺便说一句,我们是否同意关闭logstash正在发出ctrl+c信号?然后用 "bin/logstash -f name_of_file.conf" 重启?
    • 这里我有答案:您必须在 删除文件之前停止 logstash。希望这会对某人有所帮助
    猜你喜欢
    • 1970-01-01
    • 2016-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-21
    相关资源
    最近更新 更多