Logstash - 安全和监控


在本章中,我们将讨论 Logstash 的安全和监控方面。

监控

Logstash是一个非常好的监控生产环境中的服务器和服务的工具。生产环境中的应用程序会产生不同类型的日志数据,例如访问日志、错误日志等。Logstash 可以使用过滤器插件来统计或分析错误、访问或其他事件的数量。这种分析和计数可用于监控不同的服务器及其服务。

Logstash提供了HTTP Poller等插件来监控网站状态。在这里,我们正在监控本地 Apache Tomcat 服务器上托管的名为mysite的网站。

Logstash.conf

在此配置文件中,http_poller 插件用于在间隔设置中指定的时间间隔后访问插件中指定的站点。最后,它将站点的状态写入标准输出。

input {
   http_poller {
      urls => {
         site => "http://localhost:8080/mysite"
      }
      request_timeout => 20
      interval => 30
      metadata_target => "http_poller_metadata"
   }
}
output {
   if [http_poller_metadata][code] == 200 {
      stdout {
         codec => line{format => "%{http_poller_metadata[response_message]}"}
      }
   }
   if [http_poller_metadata][code] != 200 {
      stdout {
         codec => line{format => "down"}
      }
   }
}

运行logstash

我们可以使用以下命令运行 Logstash。

>logstash –f logstash.conf

标准输出

如果站点已启动,则输出将为 -

Ok

如果我们使用Tomcat 的管理器应用程序停止该站点,输出将更改为 -

down

安全

Logstash 提供了大量与外部系统安全通信的功能,并支持身份验证机制。所有 Logstash 插件都支持通过 HTTP 连接进行身份验证和加密。

HTTP 协议的安全性

Logstash 提供的各种插件(如 Elasticsearch 插件)中都有用于身份验证目的的用户和密码等设置。

elasticsearch {
   user => <username>
   password => <password>
}

另一种身份验证是Elasticsearch 的PKI(公钥基础设施) 。开发人员需要在 Elasticsearch 输出插件中定义两个设置来启用 PKI 身份验证。

elasticsearch {
   keystore => <string_value>
   keystore_password => <password>
}

在HTTPS协议中,开发者可以使用SSL/TLS的权威证书。

elasticsearch {
   ssl => true
   cacert => <path to .pem file>
}

传输协议的安全性

要在 Elasticsearch 中使用传输协议,用户需要将协议设置设置为传输。这避免了 JSON 对象的反编组并提高了效率。

基本身份验证与 Elasticsearch 输出协议中的 http 协议中执行的身份验证相同。

elasticsearch {
   protocol => “transport”
   user => <username>
   password => <password>
}

PKI 身份验证还需要 SSL 设置与 Elasticsearch 输出协议中的其他设置一致 -

elasticsearch {
   protocol => “transport”
   ssl => true
   keystore => <string_value>
   keystore_password => <password>
}

最后,与其他通信安全方法相比,SSL 安全性需要更多的设置。

elasticsearch {
   ssl => true
   ssl => true
   keystore => <string_value>
   keystore_password => <password>
   truststore => 
   truststore_password => <password>
}

Logstash 的其他安全优势

Logstash 可以帮助输入系统源来防止拒绝服务攻击等攻击。监控日志并分析这些日志中的不同事件可以帮助系统管理员检查传入连接和错误的变化。这些分析可以帮助了解攻击是否正在或即将在服务器上发生。

Elasticsearch 公司的其他产品(例如x-packfilebeat)提供了一些与 Logstash 安全通信的功能。