[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管道。

## 運行模塊
要運行模塊并設定儀表盤,你需要指定下面的選項:
```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來強調命令行優先級較高 ?
- Emmm
- Logstash簡介
- 開始使用Logstash
- 安裝Logstash
- 儲存你的第一個事件
- 通過Logstash解析日志
- 多個輸入和輸出插件的混合使用
- Logstash是如何工作的
- 執行模型Execution Model
- 設置并運行Logstash
- Logstash目錄布局
- Logstash配置文件
- logstash.yml
- Secrets keystore for secure settings
- 從命令行運行Logstash
- 以服務的方式運行Logstash
- 在Docker中運行Logstash
- 配置容器版Logstash
- Logging
- 關閉Logstash
- 安裝X-Pack
- 設置X-Pack
- 升級Logstash
- 使用包管理升級
- 直接下載進行升級
- 升級至6.0
- Upgrading with the Persistent Queue Enabled
- 配置Logstash
- 管道配置文件的結構
- 訪問配置中的事件數據和字段
- 在配置中使用環境變量
- Logstash配置示例
- 多管道
- 管道間通信(beta)
- 重載配置文件
- 管理多行事件
- Glob Pattern Support
- Converting Ingest Node Pipelines
- Logstash間通信
- 配置集中式管道管理
- X-Pack Monitoring
- X-Pack Security
- X-Pack Settings
- Field References Deep Dive(深入字段引用)
- 管理Logstash
- 集中式管道管理
- 使用Logstash模塊
- 使用Elastic Cloud
- Logstash ArcSight模塊