Мониторинг и анализ журналов для различных инфраструктур в режиме реального времени может быть очень утомительной работой. При работе с такими сервисами, как веб-серверы, которые постоянно регистрируют данные, процесс может быть очень сложным и почти невозможным.
Таким образом, знание того, как использовать инструменты для мониторинга, визуализации и анализа журналов в режиме реального времени, может помочь вам отслеживать и устранять проблемы, а также отслеживать подозрительные действия системы.
В этом руководстве будет рассказано, как можно использовать один из лучших инструментов для сбора журналов и анализа в реальном времени - ELK. Используя ELK, широко известный как Elasticsearch, Logstash и Kibana, вы можете собирать, регистрировать и анализировать данные с веб-сервера Apache в режиме реального времени.
Что такое ELK Stack?
ELK - это аббревиатура, используемая для обозначения трех основных инструментов с открытым исходным кодом: Elasticsearch, Logstash и Kibana.
Elasticsearch это инструмент с открытым исходным кодом, разработанный для поиска совпадений в большой коллекции наборов данных с использованием выбора языков и типов запросов. Это легкий и быстрый инструмент, способный с легкостью обрабатывать терабайты данных.
Logstash Engine - это связующее звено между серверной частью и Elasticsearch, позволяющее собирать данные из выбранных источников в Elasticsearch. Он предлагает мощные API, которые легко интегрируются с приложениями, разработанными на различных языках программирования.
Кибана последняя часть стека ELK. Это инструмент визуализации данных, который позволяет визуально анализировать данные и создавать подробные отчеты. Он также предлагает графики и анимацию, которые могут помочь вам взаимодействовать с вашими данными.
Стек ELK очень мощный и может делать невероятные вещи для анализа данных.
Хотя различные концепции, которые мы обсудим в этом руководстве, дадут вам хорошее представление о стеке ELK, обратитесь к документации для получения дополнительной информации.
Elasticsearch: https: // linkfy.в / Elasticsearch-Reference
Logstash: https: // linkfy.в / LogstashReference
Кибана: https: // linkfy.в / KibanaGuide
Как установить Apache?
Прежде чем мы начнем установку Apache и всех зависимостей, стоит отметить несколько вещей.
Мы протестировали этот учебник на Debian 10.6, но он также будет работать с другими дистрибутивами Linux.
В зависимости от конфигурации вашей системы вам потребуются права sudo или root.
Совместимость стека ELK и удобство использования могут различаться в зависимости от версии.
Первый шаг - убедиться, что ваша система полностью обновлена:
sudo apt-get updatesudo apt-get upgrade
Следующая команда - установить веб-сервер apache2. Если вы хотите установить минимальный apache, удалите документацию и утилиты из команды ниже.
sudo apt-get install apache2 apache2-utils apache2-doc -ysudo service apache2 start
К настоящему времени в вашей системе должен быть запущен сервер Apache.
Как установить Elasticsearch, Logstash и Kibana?
Теперь нам нужно установить стек ELK. Устанавливаем каждый инструмент индивидуально.
Elasticsearch
Начнем с установки Elasticsearch. Мы собираемся использовать apt для его установки, но вы можете получить стабильную версию на официальной странице загрузки здесь:
https: // www.эластичный.co / загрузки / elasticsearch
Elasticsearch требует для запуска Java. К счастью, последняя версия поставляется в комплекте с пакетом OpenJDK, что избавляет от необходимости устанавливать его вручную. Если вам нужно выполнить установку вручную, обратитесь к следующему ресурсу:
https: // www.эластичный.co / руководство / en / elasticsearch / ссылка / текущий / настройка.html # jvm-version
На следующем шаге нам нужно загрузить и установить официальный ключ подписи Elastic APT с помощью команды:
wget -qO - https: // артефакты.эластичный.co / GPG-KEY-elasticsearch | sudo apt-key добавить -
Прежде чем продолжить, вам может потребоваться пакет apt-transport-https (требуется для пакетов, обслуживаемых через https), прежде чем продолжить установку.
sudo apt-get install apt-transport-httpsТеперь добавьте информацию о подходящем репо в источники.список.d файл.
echo «deb https: // артефакты.эластичный.co / packages / 7.x / apt стабильный основной »| sudo tee / etc / apt / sources.список.д / резинка-7.Икс.список
Затем обновите список пакетов в вашей системе.
sudo apt-get updateУстановите Elasticsearch, используя следующую команду:
sudo apt-get install elasticsearchУстановив Elasticsearch, запустите и включите запуск при загрузке с помощью команд systemctl:
sudo systemctl демон-перезагрузкаsudo systemctl включить elasticsearch.услуга
sudo systemctl start elasticsearch
Запуск службы может занять некоторое время. Подождите несколько минут и подтвердите, что служба запущена и работает с помощью команды:
sudo systemctl статус elasticsearch.услугаИспользуя cURL, проверьте, доступен ли Elasticsearch API, как показано в выходных данных JSON ниже:
curl -X GET "localhost: 9200 /?симпатичный""имя": "дебиан",
"имя_кластера": "elasticsearch",
"cluster_uuid": "VZHcuTUqSsKO1ryHqMDWsg",
"версия":
«число»: «7.10.1 ",
"build_flavor": "по умолчанию",
"build_type": "deb",
"build_hash": "1c34507e66d7db1211f66f3513706fdf548736aa",
"build_date": "2020-12-05T01: 00: 33.671820Z ",
"build_snapshot": ложь,
"lucene_version": "8.7.0 ",
"minimum_wire_compatibility_version": "6.8.0 ",
"minimum_index_compatibility_version": "6.0.0-beta1 "
,
«Слоган»: «Знаешь, для поиска»
Как установить Logstash?
Установите пакет logstash с помощью команды:
sudo apt-get install logstashКак установить Kibana?
Введите команду ниже, чтобы установить кибану:
sudo apt-get install kibanaКак настроить Elasticsearch, Logstash и Kibana?
Вот как настроить стек ELK:
Как настроить Elasticsearch?
В Elasticsearch данные упорядочиваются по индексам. Каждый из этих индексов имеет один или несколько сегментов. Шард - это автономная поисковая система, используемая для обработки и управления индексами и запросами для подмножества в кластере в Elasticsearch. Шард работает как экземпляр индекса Lucene.
Установка Elasticsearch по умолчанию создает пять шардов и одну реплику для каждого индекса. Это хороший механизм при производстве. Однако в этом уроке мы будем работать с одним шардом и без реплик.
Начните с создания шаблона индекса в формате JSON. В файле мы установим количество шардов равным одному и нулевым репликам для соответствия имен индексов (в целях разработки).
В Elasticsearch шаблон индекса относится к тому, как вы инструктируете Elasticsearch по настройке индекса в процессе создания.
Внутри файла шаблона json (index_template.json) введите следующие инструкции:
"шаблон":"*",
"настройки":
"индекс":
"number_of_shards": 1,
"number_of_replicas": 0
Используя cURL, примените конфигурацию json к шаблону, который будет применен ко всем созданным индексам.
curl -X PUT http: // localhost: 9200 / _template / defaults -H 'Content-Type: application / json' -d @index_template.json"подтверждено": правда
После применения Elasticsearch ответит подтверждением истинности.
Как настроить Logstash?
Чтобы Logstash собирал журналы с Apache, мы должны настроить его для отслеживания любых изменений в журналах путем сбора, обработки, а затем сохранения журналов в Elasticsearch. Для этого вам необходимо настроить путь сбора журнала в Logstash.
Начните с создания конфигурации Logstash в файле / etc / logstash / conf.d / apache.conf
Входфайл
путь => '/ var / www / * / журналы / доступ.бревно'
type => "apache"
filter
Grok
match => "message" => "% COMBINEDAPACHELOG"
выход
elasticsearch
Теперь убедитесь, что вы включили и запустили службу logstash.
sudo systemctl включить logstash.услугаsudo systemctl start logstash.услуга
Как включить и настроить Kibana?
Чтобы включить Kibana, отредактируйте основной .yml файл конфигурации, расположенный в / etc / kibana / kibana.yml. Найдите следующие записи и раскомментируйте их. После этого используйте systemctl для запуска службы Kibana.
сервер.порт: 5601сервер.хост: "localhost"
sudo systemctl включить кибану.service && sudo systemctl start kibana.услуга
Kibana создает шаблоны индекса на основе обработанных данных. Следовательно, вам необходимо собирать журналы с помощью Logstash и хранить их в Elasticsearch, который может использовать Kibana. Используйте curl для создания журналов из Apache.
После того, как у вас появятся журналы из Apache, запустите Kibana в своем браузере, используя адрес http: // localhost: 5601, который запустит страницу индекса Kibana.
В основном вам необходимо настроить шаблон индекса, используемый Kibana для поиска журналов и создания отчетов. По умолчанию Kibana использует шаблон индекса logstash *, который соответствует всем индексам по умолчанию, сгенерированным Logstash.
Если у вас нет конфигурации, нажмите «Создать», чтобы начать просмотр журналов.
Как просматривать журналы кибаны?
По мере того, как вы продолжаете выполнять запросы Apache, Logstash будет собирать журналы и добавлять их в Elasticsearch. Вы можете просмотреть эти журналы в Kibana, нажав на опцию Discover в левом меню.
Вкладка «Обнаружение» позволяет просматривать журналы по мере их создания сервером. Чтобы просмотреть подробную информацию о журнале, просто щелкните раскрывающееся меню.
Прочтите и проанализируйте данные из журналов Apache.
Как искать журналы?
В интерфейсе Kibana вы найдете панель поиска, которая позволяет вам искать данные, используя строки запроса.
Пример: status: active
Узнайте больше о строках запроса ELK здесь:
https: // www.эластичный.co / guide / en / elasticsearch / ссылка / 5.5 / запрос-DSL-запрос-строка-запрос.html # синтаксис строки запроса
Поскольку мы имеем дело с журналами Apache, одно из возможных совпадений - это код состояния. Следовательно, ищите:
ответ: 200Этот код будет искать журналы с кодом состояния 200 (OK) и отображать их в Kibana.
Как визуализировать журналы?
Вы можете создавать визуальные информационные панели в Kibana, выбрав вкладку Visualize. Выберите тип панели управления для создания и выберите индекс поиска. Вы можете использовать значение по умолчанию для целей тестирования.
Заключение
В этом руководстве мы обсудили обзор того, как использовать стек ELK для управления журналами. Однако эта статья может охватить не только эти технологии. Рекомендуем исследовать самостоятельно.