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.