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
stdout
如果网站已启动,则输出将为−
Ok
如果我们使用Tomcat的Manager App停止网站,则输出将更改为−
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-pack 和 filebeat)提供了一些与 Logstash 安全通信的功能。