📅  最后修改于: 2020-11-01 04:25:11             🧑  作者: Mango
在本章中,我们将讨论Logstash的安全性和监视方面。
Logstash是监视生产环境中的服务器和服务的非常好的工具。生产环境中的应用程序会生成不同种类的日志数据,例如访问日志,错误日志等。Logstash可以使用过滤器插件计数或分析错误,访问或其他事件的数量。此分析和计数可用于监视不同的服务器及其服务。
Logstash提供了HTTP Poller之类的插件来监视网站状态监视。在这里,我们正在监视本地Apache Tomcat服务器上托管的名为mysite的网站。
在此配置文件中,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连接进行身份验证和加密。
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可以帮助输入系统源防止诸如拒绝服务攻击之类的攻击。监视日志并分析这些日志中的不同事件可以帮助系统管理员检查传入连接和错误的变化。这些分析可以帮助查看服务器上是否正在发生攻击。
Elasticsearch Company的其他产品,例如x-pack和filebeat,提供了一些功能来与Logstash安全通信。