# 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模块