Logstash CSV简介
Logstash CSV是Logstash中可用的过滤器插件,其最新版本为v3.1.1,于2021年6月推出并发布。这有助于获得输入的字段,其中有CSV数据,然后通过解析进一步处理,如果字段被提及,则进一步存储字段的指定值以及它们的名称。在这篇文章中,我们将深入了解Logstash CSV,并尝试通过使用副标题来理解它,其中包括CSV介绍、如何使用Logstash CSV、创建Logstash CSV、CSV配置和有关结论。
CSV是Logstash中可用的过滤器。它接受包含字段的CSV数据的输入,并通过解析进一步处理,并存储包含字段信息的数据。这个过滤器的效率是能够解析包含任何指定分隔符值的任何数据。数据也可以只有逗号作为分隔符。
Logstash CSV过滤器插件具有相同的行为,而不考虑支持的ECS兼容性,ECS代表Elastic Common Schema。在这种情况下,插件会发送一个发出的警告,说当我们打开ECS时,目标没有被设置,这意味着它被启用。在这种情况下,为了防止模式中可能出现的冲突,你可以确保提到目标选项。
如何使用Logstash CSV?
Logstash CSV过滤器插件可以通过在logsatsh.xml文件中配置它,根据我们的处理要求指定输入、过滤器和输出三个部分来使用。在使用CSV时,我们必须遵循一些标准的做法和步骤,如下所述-- 1.
- 创建一个CSV格式的文件,其中包含所有以逗号分隔的数据,或任何特定的分隔符和用引号字符括起来的字段。为演示目的,我们创建了educba_articles文件,该文件包含以下内容,如图所示------。

- 在Logstash配置文件中提到配置,这将有助于Logstash理解应该如何导入CSV数据,以及应该考虑的所有注意事项。这应该通过创建一个配置文件并使用输入、过滤和输出三个部分来提及每一步的细节。我们所创建的配置文件的内容如下所示 -

- 通过在命令中指定你为CSV处理创建的配置文件来运行Logstash。Logstash会在过滤数据、解析数据和存储数据时考虑这些配置。当运行Logstash命令并在命令中指定配置时,我们会得到以下输出 -

创建Logstash CSV
我们有一个名为educba_articles.CSV的样本CSV文件,它包含了关于文章的细节。让我们写下使用CSV的配置,以便它能够解析这个CSV数据。
input {
file {
start_position => "beginning"
sincedb_path => "/SAMPLE/null"
path => "/educba/material/techmology_contents/educba_articles.CSV"
}
}
filter {
CSV {
skip_header => "true"
separator => ","
columns => ["ARTICLE_ID","CREATED_ON","TYPE_OF_PAYMENT","TOPIC","WRITER_GENDER","HOST_ADDRESS","CREATED_FOR","RESIDENT_OF","HOW_OLD"]
}
}
output {
elasticsearch {
index => "demo-CSV"
hosts => "http://localhost:9200"
}
stdout {}
}
在指定的配置下运行的Logstash的执行结果如下所示 -

Logstash CSV配置
CSV过滤器支持各种配置设置或选项,其中包括以下内容-- 1.
| 配置设置 | 可选/必需 | 输入的类型 |
| 列数 | 可选的 | 阵列值 |
| 自动生成的列名 | 可选的 | 布尔型 |
| 转换 | 可选的 | 哈希值 |
| 自动检测列名 | 可选的 | 布尔值 |
| 分离器 | 可选的 | 字符串值 |
| 引用字符 | 可选的 | 字符串值 |
| Esc兼容性 | 可选 | 字符串值 |
| 靶子 | 可选的 | 字符串值 |
| 跳过空行 | 可选的 | 布尔值 |
| 来源 | 可选的 | 字符串值 |
| 跳过标题 | 可选的 | 布尔值 |
| 跳过空栏 | 可选的 | 布尔值 |
| 识别 | 可选的 | 字符串 |
| 添加字段 | 可选的 | 哈希值 |
| 启用度量衡 | 可选的 | 布尔值 |
| 添加标签 | 可选的 | 数组值 |
| 移除标签 | 可选的 | 数组值 |
| 周期性刷新 | 可选的 | 布尔型 |
| 删除字段 | 可选的 | 阵列值 |
正如我们从表中观察到的,任何配置选项的指定都不是必须的。如果我们想改变该选项的默认值和行为,它可以在可选的基础上进行。让我们详细研究一些非常重要的配置 -
- 分隔符- 该选项采用字符串类型的值,当没有指定时,默认值为",",用于指定一个字符或字符串,作为CSV文件中列的分隔符。虽然逗号是分隔符的默认值,但我们甚至可以通过指定字符串或字符串来改变它,这将作为指定数据中不同列的分隔符,有助于教学制表。另外,设置在这些选项上的值不应该有\t,而应该是标签的实际字符。
- 跳过空行或空列- 默认情况下,设置为false,接受布尔值。然而,如果我们想跳过空行或空列,我们可以将个别设置的值设为真。
- 目标- 这个选项没有任何默认值,接受字符串类型的输入值,这有助于指定字段作为目标,CSV源的数据将被放在这里。默认情况下,数据被写入事件的根值。
- Quote char- 当没有指定为""时,它有默认值,应该指定一个字符串值,这样我们就可以指定CSV中存在的字段的引号。如果不指定,双引号会被当作分隔符。
- Source- 这是应该被视为源数据的字符串值;当没有指定时,考虑的默认值是 "消息 "字符串。在解析时,CSV数据源的值会被进一步扩展,这样就可以形成目标数据结构。
总结
Logstash CSV是Logstash中可用的过滤器插件,它用于接受包含CSV数据文件的输入,然后进一步解析它并根据需要将其存储为字段。