
我想从本地的文件中使用 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" } } } ``` |