Logstash - Bezpieczeństwo i monitorowanie
W tym rozdziale omówimy aspekty bezpieczeństwa i monitorowania Logstash.
Monitorowanie
Logstash to bardzo dobre narzędzie do monitorowania serwerów i usług w środowiskach produkcyjnych. Aplikacje w środowisku produkcyjnym generują różne rodzaje danych dziennika, takie jak dzienniki dostępu, dzienniki błędów itp. Logstash może zliczać lub analizować liczbę błędów, dostępów lub innych zdarzeń za pomocą wtyczek filtrów. Ta analiza i liczenie mogą być używane do monitorowania różnych serwerów i ich usług.
Logstash oferuje wtyczki takie jak HTTP Pollerdo monitorowania stanu strony internetowej. Tutaj monitorujemy witrynę o nazwiemysite hostowany na lokalnym serwerze Apache Tomcat.
logstash.conf
W tym pliku konfiguracyjnym wtyczka http_poller jest używana do trafienia na witrynę określoną we wtyczce po przedziale czasu określonym w ustawieniu interwału. Wreszcie zapisuje stan witryny na standardowe wyjście.
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"}
}
}
}
Uruchom logstash
Możemy uruchomić Logstash za pomocą następującego polecenia.
>logstash –f logstash.conf
stdout
Jeśli witryna działa, wynik będzie -
Ok
Jeśli zatrzymamy witrynę za pomocą rozszerzenia Manager App Tomcat, wynik zmieni się na -
down
Bezpieczeństwo
Logstash zapewnia wiele funkcji do bezpiecznej komunikacji z systemami zewnętrznymi i obsługuje mechanizm uwierzytelniania. Wszystkie wtyczki Logstash obsługują uwierzytelnianie i szyfrowanie w połączeniach HTTP.
Bezpieczeństwo dzięki protokołowi HTTP
Istnieją ustawienia, takie jak użytkownik i hasło do celów uwierzytelniania w różnych wtyczkach oferowanych przez Logstash, takich jak wtyczka Elasticsearch.
elasticsearch {
user => <username>
password => <password>
}
Drugie uwierzytelnianie to PKI (public key infrastructure)dla Elasticsearch. Deweloper musi zdefiniować dwa ustawienia we wtyczce wyjściowej Elasticsearch, aby włączyć uwierzytelnianie PKI.
elasticsearch {
keystore => <string_value>
keystore_password => <password>
}
W protokole HTTPS programista może użyć certyfikatu urzędu dla SSL / TLS.
elasticsearch {
ssl => true
cacert => <path to .pem file>
}
Bezpieczeństwo z protokołem transportowym
Aby używać protokołu transportowego z Elasticsearch, użytkownicy muszą ustawić protokół transportu. Pozwala to uniknąć cofania krosowania obiektów JSON i prowadzi do większej wydajności.
Uwierzytelnianie podstawowe jest takie samo, jak w protokole http w protokole wyjściowym Elasticsearch.
elasticsearch {
protocol => “transport”
user => <username>
password => <password>
}
Uwierzytelnianie PKI wymaga również, aby zestawy SSL były prawdziwe z innymi ustawieniami w protokole wyjściowym Elasticsearch -
elasticsearch {
protocol => “transport”
ssl => true
keystore => <string_value>
keystore_password => <password>
}
Wreszcie, bezpieczeństwo SSL wymaga trochę więcej ustawień niż inne metody bezpieczeństwa w komunikacji.
elasticsearch {
ssl => true
ssl => true
keystore => <string_value>
keystore_password => <password>
truststore =>
truststore_password => <password> }
Inne korzyści związane z bezpieczeństwem dzięki Logstash
Logstash może pomóc wprowadzać źródła systemowe, aby zapobiec atakom, takim jak ataki typu „odmowa usługi”. Monitorowanie dzienników i analizowanie różnych zdarzeń w tych dziennikach może pomóc administratorom systemu w sprawdzaniu różnic w połączeniach przychodzących i błędach. Analizy te mogą pomóc sprawdzić, czy atak ma miejsce, czy też będzie miał miejsce na serwerach.
Inne produkty firmy Elasticsearch, takie jak x-pack i filebeat zapewnia pewne funkcje do bezpiecznej komunikacji z Logstash.