第8章-模块
Logstash模块提供了一个快速的端到端解决方案,用于采集数据并使用专用仪表板对其进行可视化。
可用模块包括:
以上每个模块都内置了Logstash配置、Kibana仪表板和其他元文件,使您可以更轻松地安装Elastic应用栈,并指定用例或数据源。
您可以将模块视为提供三个基本功能,使您更容易入门。运行模块时,它将:
创建Elasticsearch索引。
设置Kibana仪表板,包括在Kibana中可视化数据所需的索引匹配、搜索和可视化。
使用读取和解析数据所需的配置,运行Logstash管道。

运行模块
要运行模块并设置仪表板,请指定以下选项:
bin/logstash --modules MODULE_NAME --setup [-M "CONFIG_SETTING=VALUE"]
此处:
--modules运行MODULE_NAME指定的Logstash模块。-M "CONFIG_SETTING = VALUE"是可选的,会覆盖默认的配置。您可以使用多次。每个覆盖必须以-M开头。有关详细信息,请参阅 命令行设置模块。--setup在Elasticsearch中创建索引匹配,并导入Kibana仪表板和可视化。运行--setup是一次性设置步骤。以后运行模块需省略此选项,以避免覆盖现有的Kibana仪表板。
例如,以下命令使用默认设置运行Netflow模块,并设置netflow索引匹配和仪表板:
bin/logstash --modules netflow --setup
以下命令运行Netflow模块,并覆盖Elasticsearch主机设置。这里假设您已经运行了设置步骤。
bin/logstash --modules netflow -M "netflow.var.elasticsearch.host=es.mycloud.com"
配置模块
要配置模块,您可以在 logstash.yml 中 设置模块,也可以使用 命令行设置模块。
logstash.yml 设置模块
要在 logstash.yml 中设置模块,请将模块定义添加到模块数组。每个模块的定义以短横线( - )开头,接着写 name: module_name,然后是一系列设置模块的键/值对。例如:
modules:
- name: netflow
var.elasticsearch.hosts: "es.mycloud.com"
var.elasticsearch.username: "foo"
var.elasticsearch.password: "password"
var.kibana.host: "kb.mycloud.com"
var.kibana.username: "foo"
var.kibana.password: "password"
var.input.tcp.port: 5606
命令行设置模块
在启动Logstash时,你可以通过指定一个或多个配置来覆盖模块设置,可使用 -M 命令行选项:
-M MODULE_NAME.var.PLUGINTYPE1.PLUGINNAME1.KEY1=VALUE
请注意,完全限定的设置名称包括模块名称。
您可以指定多个覆盖。每个覆盖必须以 -M 开头。
以下命令运行Netflow模块,并覆盖Elasticsearch的 host 和 udp.port设置:
bin/logstash --modules netflow -M "netflow.var.input.udp.port=3555" -M "netflow.var.elasticsearch.hosts=my-es-cloud"
命令行中声明的任何设置都是临时的,并且不会在后续的Logstash运行中保留。如果要保留配置,则需要在 logstash.yml 中进行设置。
您在命令行中指定的设置,将与 logstash.yml 文件中的对应设置合并。如果在两处都设置了同一个选项,则命令行中指定的值优先。