Logstash – 安全和监控
Logstash – 安全和监控
在本章中,我们将讨论 Logstash 的安全和监控方面。
监控
Logstash 是一个非常好的监控生产环境中的服务器和服务的工具。生产环境中的应用程序会产生不同类型的日志数据,如访问日志、错误日志等。Logstash 可以使用过滤器插件对错误、访问或其他事件的数量进行计数或分析。这种分析和计数可用于监控不同的服务器及其服务。
Logstash 提供了HTTP Poller 等插件来监控网站状态监控。在这里,我们正在监控一个名为mysite的网站,该网站托管在本地 Apache Tomcat 服务器上。
日志文件
在这个配置文件中,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 –f logstash.conf
标准输出
如果站点已启动,则输出将是 –
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 安全通信的功能。