В этой главе мы обсудим аспекты безопасности и мониторинга Logstash.
мониторинг
Logstash — очень хороший инструмент для мониторинга серверов и сервисов в производственных средах. Приложения в производственной среде производят различные типы данных журнала, такие как журналы доступа, журналы ошибок и т. Д. Logstash может подсчитывать или анализировать количество ошибок, обращений или других событий с помощью подключаемых модулей фильтров. Этот анализ и подсчет могут быть использованы для мониторинга различных серверов и их служб.
Logstash предлагает плагины, такие как HTTP Poller для мониторинга состояния сайта. Здесь мы отслеживаем веб-сайт с именем mysite, размещенный на локальном сервере Apache Tomcat.
logstash.conf
В этом файле конфигурации подключаемый модуль 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
стандартный вывод
Если сайт работает, то вывод будет —
Ok
Если мы остановим сайт с помощью приложения Manager от Tomcat, результат изменится на —
down
Безопасность
Logstash предоставляет множество функций для безопасной связи с внешними системами и поддерживает механизм аутентификации. Все плагины Logstash поддерживают аутентификацию и шифрование по HTTP-соединениям.
Безопасность по протоколу HTTP
Существуют настройки, такие как имя пользователя и пароль, для целей аутентификации в различных плагинах, предлагаемых Logstash, как в плагине Elasticsearch.
elasticsearch { user => <username> password => <password> }
Другая аутентификация — это PKI (инфраструктура открытых ключей) для Elasticsearch. Разработчик должен определить два параметра в выходном плагине Elasticsearch, чтобы включить аутентификацию PKI.
elasticsearch { keystore => <string_value> keystore_password => <password> }
В протоколе HTTPS разработчик может использовать сертификат органа для SSL / TLS.
elasticsearch { ssl => true cacert => <path to .pem file> }
Безопасность с транспортным протоколом
Чтобы использовать транспортный протокол с Elasticsearch, пользователям необходимо установить параметры протокола для транспорта. Это позволяет избежать демаршализации объектов JSON и повышает эффективность.
Базовая аутентификация такая же, как выполняется в протоколе http в протоколе вывода Elasticsearch.
elasticsearch { protocol => “transport” user => <username> password => <password> }
Для аутентификации PKI также необходимо, чтобы наборы SSL соответствовали другим параметрам в выходном протоколе Elasticsearch —
elasticsearch { protocol => “transport” ssl => true keystore => <string_value> keystore_password => <password> }
Наконец, для безопасности SSL требуется немного больше настроек, чем для других методов безопасности при общении.
elasticsearch { ssl => true ssl => true keystore => <string_value> keystore_password => <password> truststore =>truststore_password => <password> }
Другие преимущества безопасности от Logstash
Logstash может помочь системным источникам ввода предотвратить атаки, такие как отказ в обслуживании. Мониторинг журналов и анализ различных событий в этих журналах могут помочь системным администраторам проверить изменение входящих соединений и ошибок. Эти анализы могут помочь увидеть, происходит ли атака на серверах.
Другие продукты компании Elasticsearch, такие как x-pack и filebeat, предоставляют некоторые функции для безопасного взаимодействия с Logstash.