Logstash - Segurança e monitoramento
Neste capítulo, discutiremos os aspectos de segurança e monitoramento do Logstash.
Monitoramento
Logstash é uma ferramenta muito boa para monitorar os servidores e serviços em ambientes de produção. Os aplicativos em ambiente de produção produzem diferentes tipos de dados de log, como logs de acesso, logs de erro, etc. O Logstash pode contar ou analisar o número de erros, acessos ou outros eventos usando plug-ins de filtro. Esta análise e contagem podem ser utilizadas para monitorar diferentes servidores e seus serviços.
Logstash oferece plug-ins como HTTP Pollerpara monitorar o monitoramento de status do site. Aqui, estamos monitorando um site chamadomysite hospedado em um servidor Apache Tomcat local.
logstash.conf
Neste arquivo de configuração, o plug-in http_poller é usado para acessar o site especificado no plug-in após um intervalo de tempo especificado na configuração de intervalo. Finalmente, ele grava o status do site em uma saída padrão.
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"}
}
}
}
Execute o logstash
Podemos executar o Logstash com o seguinte comando.
>logstash –f logstash.conf
stdout
Se o site estiver ativo, a saída será -
Ok
Se pararmos o site usando o Manager App do Tomcat, a saída mudará para -
down
Segurança
O Logstash fornece muitos recursos para comunicação segura com sistemas externos e suporta mecanismo de autenticação. Todos os plug-ins Logstash oferecem suporte para autenticação e criptografia em conexões HTTP.
Segurança com protocolo HTTP
Existem configurações como usuário e senha para fins de autenticação em vários plug-ins oferecidos pelo Logstash, como no plug-in Elasticsearch.
elasticsearch {
user => <username>
password => <password>
}
A outra autenticação é PKI (public key infrastructure)para Elasticsearch. O desenvolvedor precisa definir duas configurações no plug-in de saída Elasticsearch para habilitar a autenticação PKI.
elasticsearch {
keystore => <string_value>
keystore_password => <password>
}
No protocolo HTTPS, um desenvolvedor pode usar o certificado da autoridade para SSL / TLS.
elasticsearch {
ssl => true
cacert => <path to .pem file>
}
Segurança com protocolo de transporte
Para usar o protocolo de transporte com Elasticsearch, os usuários precisam definir a configuração do protocolo para transporte. Isso evita o desempacotamento de objetos JSON e leva a mais eficiência.
A autenticação básica é a mesma realizada no protocolo http no protocolo de saída Elasticsearch.
elasticsearch {
protocol => “transport”
user => <username>
password => <password>
}
A autenticação PKI também precisa que os conjuntos SSL sejam verdadeiros com outras configurações no protocolo de saída Elasticsearch -
elasticsearch {
protocol => “transport”
ssl => true
keystore => <string_value>
keystore_password => <password>
}
Por fim, a segurança SSL exige um pouco mais configurações do que outros métodos de segurança na comunicação.
elasticsearch {
ssl => true
ssl => true
keystore => <string_value>
keystore_password => <password>
truststore =>
truststore_password => <password> }
Outros benefícios de segurança do Logstash
O Logstash pode ajudar a inserir as fontes do sistema para prevenir contra ataques como ataques de negação de serviço. O monitoramento de logs e a análise dos diferentes eventos nesses logs podem ajudar os administradores de sistema a verificar a variação nas conexões de entrada e erros. Essas análises podem ajudar a ver se o ataque está acontecendo ou vai acontecer nos servidores.
Outros produtos da Elasticsearch Company, como x-pack e filebeat fornece algumas funcionalidades para comunicação segura com o Logstash.