在本章中,我们将讨论Logstash的安全性和监控方面.
监控
Logstash是一个非常好的工具来监控生产环境中的服务器和服务.生产环境中的应用程序会生成不同类型的日志数据,如访问日志,错误日志等.Logstash可以使用过滤器插件计算或分析错误,访问或其他事件的数量.此分析和计数可用于监视不同的服务器及其服务.
Logstash提供 HTTP Poller 等插件来监控网站状态监控.在这里,我们正在监控托管在本地Apache Tomcat服务器上的名为 mysite 的网站.
logstash.conf
In在此配置文件中,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 =>password => }
对于Elasticsearch,其他身份验证是 PKI(公钥基础结构).开发人员需要在Elasticsearch输出插件中定义两个设置以启用PKI身份验证.
elasticsearch { keystore =>keystore_password => }
在HTTPS协议中,开发人员可以使用权限证书进行SSL/TLS.
elasticsearch { ssl => true cacert =>}
传输协议的安全性
要在Elasticsearch中使用传输协议,用户需要设置协议设置传输.这样可以避免对JSON对象进行非编组并提高效率.
基本身份验证与Elasticsearch输出协议中http协议中执行的身份验证相同.
elasticsearch { protocol => "transport" user =>password => }
PKI身份验证还需要SSL设置与Elasticsearch输出协议中的其他设置一致,并且减去;
elasticsearch { protocol => "transport" ssl => true keystore =>keystore_password => }
最后,SSL安全性需要比其他安全方法更多的设置.
elasticsearch { ssl => true ssl => true keystore =>keystore_password => truststore =>truststore_password => }
Logstash的其他安全优势
Logstash可以帮助输入系统源以防止像拒绝服务攻击.监视日志并分析这些日志中的不同事件可以帮助系统管理员检查传入连接和错误的变化.这些分析可以帮助查看攻击是否正在发生或将要发生在服务器上.
Elasticsearch公司的其他产品,例如 x-pack 和 filebeat 提供了一些与Logstash安全通信的功能.