💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
[TOC] # 使用Logstash模块 Logstash模块提供了一个快速的,点对点的获取数据和可视化仪表盘的解决方案。 可用的有这些模块: - [Elastic Cloud](https://www.elastic.co/guide/en/logstash/6.5/connecting-to-cloud.html) - [ArcSight 模块](https://www.elastic.co/guide/en/logstash/6.5/arcsight-module.html) - [Netflow 模块](https://www.elastic.co/guide/en/logstash/6.5/netflow-module.html) - [Microsoft Azure 模块](https://www.elastic.co/guide/en/logstash/6.5/azure-module.html) 每个模块都预先打包了Logstash配置,Kibana仪表板和其他元文件,使您可以更轻松地设置Elastic Stack为特定用例或数据源。 你可以理解为模块提供了三个基础功能以便更容易开始。当你运行模块的时候,它会: 1. 创建Elasticsearch index(索引) 2. 设置Kibana仪表盘,包括索引模式,搜索,和在Kibana中可视化您的数据所需的可视化。 3. 使用配置中需要读取和解析的数据运行Logstash管道。 ![Logstash modules overview](https://www.elastic.co/guide/en/logstash/6.5/static/images/logstash-module-overview.png) ## 运行模块 要运行模块并设定仪表盘,你需要指定下面的选项: ```bash bin/logstash --modules MODULE_NAME --setup [-M "CONFIG_SETTING=VALUE"] ``` Where: + `--modules`通过`MODULE_NAME`指定运行的Logstash模块 + `-M "CONFIG_SETTING=VALUE"`是可选项,并覆盖设置中的指定配置。可以指定多个设置。每个设置都需要以`-M`开始。在[在命令行中指定模块设置](https://www.elastic.co/guide/en/logstash/6.5/logstash-modules.html#overriding-logstash-module-settings)查看更多信息。 + `--setup`创建在Elasticsearch中创建一个index pattern并将其导入到Kibana仪表盘和可视化。运行`--setup`是一次性步骤。后续运行中不需要再次指定一面覆盖已经在Kibana仪表盘中存在的设定。(Running `--setup` is a one-time setup step. Omit this option for subsequent runs of the module to avoid overwriting existing Kibana dashboards.) 比如,下面的命令使用默认的设置运行Netflow模块,并设置netflow 的index pattern和仪表盘: ```bash bin/logstash --modules netflow --setup ``` 下面运行的Netflow 模块覆盖了Elasticsearch的`host`设置。这里假定你已经运行了setup步骤。(就是已经 `--setup`过了) ```bash bin/logstash --modules netflow -M "netflow.var.elasticsearch.host=es.mycloud.com" ``` ## 配置模块 要配置一个模块,你可以在`logstash.yml`[配置文件](https://www.elastic.co/guide/en/logstash/6.5/logstash-settings-file.html)中进行指定,也可以使用命令行进行指定。 ### 在`logstash.yml`中指定模块设置 要在`logstash.yml`文件中指定模块配置,you add a module definition to the modules array.每个模块定义都以(-)开始,然后是`name: module_name`然后是一系列的name/value键值对。示例: ```yaml 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 ``` (感觉罗里吧嗦的。不就是一个遵循yaml语法的配置文件,说那么一大堆。) 要查看可用的模块设定,查看模块对应的文档。 ### 在命令行中指定模块设置 你可以在启动Logstash的时候指定一个或多个设置来覆盖设定。在命令行中使用`-M`选项来指定需要覆盖的设定: ```bash -M MODULE_NAME.var.PLUGINTYPE1.PLUGINNAME1.KEY1=VALUE ``` 注意,完整的模块设置名称包含模块名。 你可以指定多个模块设置,每个都以`-M`开始。 下面的命令运行了Netflow模块,且同时指定Elasticsearch `host`设置和`udp.port`设置。 ```bash bin/logstash --modules netflow -M "netflow.var.input.udp.port=3555" -M "netflow.var.elasticsearch.hosts=my-es-cloud" ``` 任何命令行中指定的设置都是暂时的,下次运行Logstash的时候不会持续存在。如果需要持久存在,需要在`logstash.yml`文件中进行配置。 在命令行中指定的设置和文件中的会合并,如果同时存在,则命令行中的优先。 # 总结 罗里吧嗦的真是,这一整篇也就几句话概括。 1. 命令格式:`bin/logstash --module MODULE_NAME --setup [-M "CONFIG_SETTING=VALUE"]` 2. `--setup`执行一次就可以了。 3. `-M "CONFIG_SETTING=VALUE"`指定模块设置,优先级高于配置文件的优先级,多个设置使用多个`-M` 4. 模块配置可以通过`logstash.yml`进行配置,格式遵循`yaml`语法。可用配置参考相关文档。 5. 通篇使用的都是overrides来强调命令行优先级较高 ?