# Logstash間通信
您可以通過將Lumberjack output連接到Beats input來建立兩臺Logstash機器之間的通信。如果數據路徑跨網絡或者穿透防火墻,你可能需要這種配置。如果沒有迫切的需求,請不要實施這種方案。
如果你正在尋找關于在一個Logstash實例中連接多個管道的信息,查看[管道間通信(beta)](https://www.elastic.co/guide/en/logstash/6.5/pipeline-to-pipeline.html)
# 配置概述
使用Lumberjack協議來連接兩個Logstash機器。
1. 生成一個可信的SSL證書(lumberjac協議需要)
2. 復制SSL證書到上游Logstash機器。
3. 復制SSL證書和key到下游Logstash機器。
4. 設置上游Logstash機器使用Lumberjack output來發送數據。
5. 設置下游Logstash機器通過Beats input監聽來自Lumberjack的連接。
6. 測試
## 生成一個自簽名證書和key
使用`openssl req`命令來生成一個自簽名證書和key。`openssl req`命令在某些系統中是可用的。你可能需要安裝OpenSSL命令對于其他的系統。
運行下面的命令:
```bash
openssl req -x509 -batch -nodes -newkey rsa:2048 -keyout lumberjack.key -out lumberjack.cert -subj /CN=localhost
```
Where:
+ `lumberjack.key`是SSL key的名字。
+ `lumberjack.cert`是SSL 證書的名字。
+ `localhost`是上游Logstash主機的名字
命令會輸出類似下面的信息:
```
Generating a 2048 bit RSA private key
.................................+++
....................+++
writing new private key to 'lumberjack.key'
```
## 復制SSL證書和key
復制SSL證書到上游Logstash機器。
復制SSL證書和key到下游Logstash機器。
## 啟動上游Logstash實例
啟動Logstash并生成測試事件:
```bash
bin/logstash -e 'input { generator { count => 5 } } output { lumberjack { codec => json hosts => "mydownstreamhost" ssl_certificate => "lumberjack.cert" port => 5000 } }'
```
這個命令示例發送5個事件到mydownstreamhost:5000使用SSL證書。
(個人測試`mydownstreamhost`應該為IP地址,或者可以被解析的域名或者Hostname)
## 啟動下游Logstash實例
啟動下游Logstash實例:
```bash
bin/logstash -e 'input { beats { codec => json port => 5000 ssl => true ssl_certificate => "lumberjack.cert" ssl_key => "lumberjack.key"} }'
```
This sample command sets port 5000 to listen for incoming Beats input.
## 驗證
觀察下游Logstash機器是否有傳入事件。你應該會看到五個類似于以下內容的事件:
```json
{
"@timestamp" => 2018-02-07T12:16:39.415Z,
"sequence" => 0
"tags" => [
[0] "beats_input_codec_json_applied"
],
"message" => "Hello world",
"@version" => "1",
"host" => "ls1.semicomplete.com"
}
```
If you see all five events with consistent fields and formatting, incrementing by one, then your configuration is correct。
- 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模塊