我想从本地的文件中使用 logstash 导入 ElasticSearch 中,文件格式如下
[email protected] aaaaaaa
[email protected] aaaaaaa
[email protected] bbbbbbbb
[email protected] bbbbbbb
我想根据每行两个字段,一行一条数据。请问该如何写 logstash 的 filter 呢?
1
wayne1007 2017-12-26 13:41:42 +08:00
logstash 的 filter 支持正则表达式
|
2
mason961125 2017-12-26 13:50:04 +08:00
下面三个 QQ 都试了下,都是存在的。
|
3
badttt 2017-12-26 18:45:33 +08:00
这种类型数据建议使用 dissect,不要用 gork
|
4
Terenc3 2017-12-27 00:11:43 +08:00
1. 用 filebeat 读取文件,然后丢给 logstash 处理:
``` - input_type: log paths: - [your file path here] tags: email_analysis output.logstash: hosts: ["your logstash host here"] ``` 2. logstash 用 grok 处理完成后存到 elasticsearch 或其他地方: ``` filter { if "email_analysis" in [tags] { grok { match => { "message" => "%{NOTSPACE:username}\@%{NOTSPACE:mail_host}%{SPACE}%{NOTSPACE:your_patterns}" } } } } ``` 3. 这是 elasticsearch 的配置: ``` output { if "email_analysis" in [tags] { elasticsearch { hosts => ["es6-node1.t.com:9200"] manage_template => false index => "your-index" } } } ``` |