我有这个日志文件:http://dpaste.com/3fe2vny
我只想提取某些信息,例如日期时间和发布的事件数。我尝试把这个放进elasticsearch的结果是挂起了logstash。不知道我做错了什么,因为我是新手。
我试图做的是简单地获取日志文件中的所有内容并将其传递到elasticsearch。我明白 grok
必须用来抓取特定的部分,但我还没有到那个水平只是相当。
我的目标是提取:
start: Mon Apr 27 13:35:25 2015
finish: Mon Apr 27 13:35:36 2015
number of events posted: 10
日志文件:
test_web_events.py: START: Mon Apr 27 13:35:25 2015
# TESTCASE TestWebPost ==================================================
# START TEST METHOD #################################: test_10_post_valid_json
[2015-04-27T13:35:25.657887] HTTP DELETE http://pppdc9prd3net:8080/rastplatz/v1/sink/db?k0=bradford4
{}
HTTP response: 200
0
POSTING event_id b29b6c7c-48cd-4cd9-b3c4-aa0a7edc1f35 to businessevent
Content-Type: text/plain
POSTING event_id 13678af1-3e3a-4a6e-a61c-404eb94b9768 to businessevent
Content-Type: text/plain
POSTING event_id 47b70306-2e7c-4cb2-9e75-5755d8d101d4 to businessevent
Content-Type: text/plain
POSTING event_id 6599cdb2-0630-470d-879d-1130cf70c605 to businessevent
Content-Type: text/plain
POSTING event_id d088ce29-fa0d-4f45-b628-045dba1fd045 to businessevent
Content-Type: text/plain
POSTING event_id 07d14813-b561-442c-9b86-dc40d1fcc721 to businessevent
Content-Type: text/plain
POSTING event_id b6aea24a-5424-4a0f-aac6-8cbaecc410db to businessevent
Content-Type: text/plain
POSTING event_id 016386bd-eac5-4f1c-8afc-a66326d37ddb to businessevent
Content-Type: text/plain
POSTING event_id 6610485d-71af-4dfa-9268-54be5408a793 to businessevent
Content-Type: text/plain
POSTING event_id 92786434-02f7-4248-a77b-bdd9d33b57be to businessevent
Content-Type: text/plain
Posted 10 events
# END TEST METHOD ###################################: test_10_post_valid_json
test_web_events.py: FINISH: Mon Apr 27 13:35:36 2015
conf文件:
input {
file {
path => "/home/bli1/logstash-1.5.0/tmp/bradfordli2_post.log"
codec => multiline {
pattern => "^."
negate => true
what => "previous"
}
}
}
output {
elasticsearch { protocol => http host => "127.0.0.1:9200"}
stdout { codec => rubydebug }
}
1条答案
按热度按时间vxqlmq5t1#
你可以用这样的方法:
这指示多行筛选器/编解码器将所有不包含start:的行放入上一个logevent中。
然后可以使用grok模式提取3条信息。注意,您必须指示grok使用grok模式开头的多行开关查看多行消息,如下所示:
如果您使用的是多线程输入/多个并行工作线程,请给出警告。目前logstash多行处理中存在一些bug,这些bug可能导致并行处理时各种事件的行相互混合。我也不确定这是否与你有关,但看看这个:
https://github.com/elastic/logstash/issues/1754
另一条消息。我真的不明白什么是多行过滤器和编解码器之间的区别,以及当使用一个或另一个。我在我的项目中使用过滤器,但它工作正常。