返回

用 TLS 为 Logstash 输出配置 SSL - Elastic Agent

后端

当Elastic Agent将数据发送到Logstash时,数据可能会通过不安全的网络传输。为了保护这些数据不被窃取或篡改,可以使用安全套接字层(SSL/TLS)加密数据。这可以防止攻击者截取和读取数据。

先决条件

  • 已安装并运行Elastic Agent。
  • 已安装并运行Logstash。
  • Elastic Agent和Logstash位于同一个网络中。
  • 拥有Elastic Agent和Logstash的证书和密钥。

配置Elastic Agent以使用SSL

  1. 创建证书和密钥。
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout agent.key -out agent.crt
  1. 将证书和密钥复制到Elastic Agent的配置文件目录。
sudo cp agent.crt /etc/elastic-agent/certs/agent.crt
sudo cp agent.key /etc/elastic-agent/certs/agent.key
  1. 编辑Elastic Agent的配置文件。
sudo nano /etc/elastic-agent/elastic-agent.yml
  1. 在配置文件中添加以下行:
output.logstash.tls.certificate: /etc/elastic-agent/certs/agent.crt
output.logstash.tls.key: /etc/elastic-agent/certs/agent.key
  1. 保存并关闭配置文件。

  2. 重启Elastic Agent。

sudo service elastic-agent restart

配置Logstash以使用SSL

  1. 创建证书和密钥。
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout logstash.key -out logstash.crt
  1. 将证书和密钥复制到Logstash的配置文件目录。
sudo cp logstash.crt /etc/logstash/certs/logstash.crt
sudo cp logstash.key /etc/logstash/certs/logstash.key
  1. 编辑Logstash的配置文件。
sudo nano /etc/logstash/logstash.yml
  1. 在配置文件中添加以下行:
input {
  beats {
    port => 5044
    ssl => true
    certificate => "/etc/logstash/certs/logstash.crt"
    key => "/etc/logstash/certs/logstash.key"
  }
}
  1. 保存并关闭配置文件。

  2. 重启Logstash。

sudo service logstash restart

测试TLS连接

  1. 使用以下命令测试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连接已成功建立。