使用Filebeat传输CSV文件

时间:2019-11-13 09:32:48

标签: csv bigdata logstash elastic-stack filebeat

案例

从客户端PC推送csv文件到服务器端的弹性文件

松紧带已经安装好了。我可以从我的电脑访问它并使用演示数据。现在,我想学习如何使用自己的数据进行推送。我已经从kaggle准备了数据。

客户端

我已经在客户端下载了文件拍并提取了它。 我已将filebeat.yml编辑为

filebeat.inputs:
- input_type: log
  paths:
    - C:\Users\Charles\Desktop\DATA\BrentOilPrices.csv
document_type: test_log_csv
output.logstash:
  hosts: ["10.64.2.246:5044"]

我也用

进行了测试
./filebeat test config

返回: 确定配置

服务器端

将logstash.conf编辑为

input {
beats {
port =>5044
}
}

filter {

if "test_log_csv" in [type]
{
csv {
columns=>["Date","Price"]
separator=>","
}
mutate{
convert => ["Price","integer"]
}
date{
match=>["Date","d/MMM/yy"]
}
}
}

output {
if "test_log_csv" in [type]
{
elasticsearch
{
hosts=>"127.0.0.1:9200"
index=>"test_log_csv%{+d/MM/yy}"
}
}

客户端

我跑步

Start-Service filebeat

它什么也不返回。

我检查了我的kibana,没有日志。 我想念什么?

在客户端编辑了filebeat.yml

filebeat.inputs:
- input_type: log
  paths:
    - 'C:\Users\Charles\Desktop\DATA\BrentOilPrices.csv'
fields:
document_type: test_log_csv
output.logstash:
  hosts: ["10.64.2.246:5044"]

1 个答案:

答案 0 :(得分:1)

document_type选项已从6.X版本的Filebeat中删除,因此不再创建type字段,因为您的条件基于此字段,因此管道将无法工作。另外,即使在Windows上,也应尝试使用正斜杠(/)。

尝试更改以下配置,然后再次测试。

filebeat.inputs:
- input_type: log
  paths:
    - 'C:/Users/Charles/Desktop/DATA/BrentOilPrices.csv'
fields:
  type: test_log_csv
fields_under_root: true
output.logstash:
  hosts: ["10.64.2.246:5044"]

选项fields_under_root: true将在文档的根目录中创建字段type,如果删除此选项,该字段将被创建为[fields][type],并且您需要更改该字段的条件。