返回
用 TLS 为 Logstash 输出配置 SSL - Elastic Agent
后端
2023-10-03 17:57:57
当Elastic Agent将数据发送到Logstash时,数据可能会通过不安全的网络传输。为了保护这些数据不被窃取或篡改,可以使用安全套接字层(SSL/TLS)加密数据。这可以防止攻击者截取和读取数据。
先决条件
- 已安装并运行Elastic Agent。
- 已安装并运行Logstash。
- Elastic Agent和Logstash位于同一个网络中。
- 拥有Elastic Agent和Logstash的证书和密钥。
配置Elastic Agent以使用SSL
- 创建证书和密钥。
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout agent.key -out agent.crt
- 将证书和密钥复制到Elastic Agent的配置文件目录。
sudo cp agent.crt /etc/elastic-agent/certs/agent.crt
sudo cp agent.key /etc/elastic-agent/certs/agent.key
- 编辑Elastic Agent的配置文件。
sudo nano /etc/elastic-agent/elastic-agent.yml
- 在配置文件中添加以下行:
output.logstash.tls.certificate: /etc/elastic-agent/certs/agent.crt
output.logstash.tls.key: /etc/elastic-agent/certs/agent.key
-
保存并关闭配置文件。
-
重启Elastic Agent。
sudo service elastic-agent restart
配置Logstash以使用SSL
- 创建证书和密钥。
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout logstash.key -out logstash.crt
- 将证书和密钥复制到Logstash的配置文件目录。
sudo cp logstash.crt /etc/logstash/certs/logstash.crt
sudo cp logstash.key /etc/logstash/certs/logstash.key
- 编辑Logstash的配置文件。
sudo nano /etc/logstash/logstash.yml
- 在配置文件中添加以下行:
input {
beats {
port => 5044
ssl => true
certificate => "/etc/logstash/certs/logstash.crt"
key => "/etc/logstash/certs/logstash.key"
}
}
-
保存并关闭配置文件。
-
重启Logstash。
sudo service logstash restart
测试TLS连接
- 使用以下命令测试TLS连接:
curl --cacert /etc/elastic-agent/certs/logstash.crt https://localhost:5044
如果连接成功,您将看到以下输出:
{
"beat": {
"version": "7.16.2",
"name": "elastic-agent",
"hostname": "localhost"
}
}
这表明Elastic Agent和Logstash之间的TLS连接已成功建立。