Назад в блог

Как установить Elastic Stack на Ubuntu 18.04

Как установить Elastic Stack на Ubuntu 18.04

The Elastic Stack (ранее известное как ELK Stack) — это мощное решение для централизованного логирования. Это набор программного обеспечения с открытым исходным кодом, разработанный Elastic. Оно позволяет администраторам искать, анализировать и визуализировать логи, полученные из любого источника в любом формате. Это практика, известная как централизованное логирование. Централизованное логирование может быть очень полезным при поиске проблем с серверами и приложениями, так как оно позволяет искать по всем логам из одного места. Оно также может помочь выявить проблемы на нескольких серверах путем сопоставления логов в определенное время.

В этом руководстве вы узнаете, как установить Elastic Stack на Ubuntu 18.04. Сначала воспользуйтесь нашим руководством, чтобы легко установить сервер Ubuntu на CloudSigma.

The Elastic Stack на Ubuntu

The Elastic Stack состоит из следующих компонентов:

  • Elasticsearch: распределенная поисковая система RESTful. Она хранит все собранные данные.
  • Logstash: — компонент обработки данных Elastic Stack. Он отправляет входящие данные в Elasticsearch.
  • Kibana: Веб-интерфейс, предоставляющий функции поиска и визуализации логов.
  • Beats: — легкий специализированный агент для передачи данных. Он может отправлять данные с множества машин в Logstash или Elasticsearch.

Вам потребуется вручную установить каждый компонент стека.

Предварительные требования

Перед тем как приступить к установке the Elastic Stack, необходимо выполнить несколько системных требований:

Обратите внимание, что объем хранилища зависит от количества собираемых и хранимых логов. Кроме того, Elastic Stack также работает с важной информацией о сервере. Чтобы обеспечить безопасность передачи данных, мы настоятельно рекомендуем настроить TLS/SSL-сертификат. Воспользуйтесь этим руководством для получения бесплатного SSL-сертификата на вашем сервере Nginx.

Помимо зашифрованного сервера, также потребуются следующие шаги:

  • FQDN (полностью определенное доменное имя). В данном руководстве это будет <domain>.
  • Обе DNS-записи следующих доменов указывают на сервер.
    • Запись A с <domain>, указывающая на публичный IP-адрес сервера.
    • Запись A с www.<domain>, указывающая на публичный IP-адрес сервера.

Установка Elastic Stack

  • Настройка репозитория Elastic

Компоненты Elastic Stack недоступны напрямую из официального репозитория Ubuntu. К счастью, Ubuntu позволяет использовать сторонниеrd репозитории для установки пакетов. Для наших целей мы добавим репозиторий пакетов Elastic. Этот репозиторий предлагает все последние обновления для всех пакетов Elastic. Все пакеты Elastic подписаны ключом подписи Elasticsearch для предотвращения подмены пакетов. Сначала добавьте ключ в связку ключей Ubuntu:

Затем добавьте список источников Elastic в каталог «sources.list.d». Это специальный каталог, который APT использует для поиска новых источников:

Наконец, обновите кэш APT:

Согласно официальной документации, рекомендуется устанавливать каждый из компонентов в порядке, указанном в данном руководстве. Это гарантирует, что компоненты, от которых зависит каждый продукт, находятся на своих местах.

  • Установка и настройка Elasticsearch

После настройки репозитория Elastic, APT готов к загрузке и установке всех пакетов Elastic. Выполните следующую команду для установки Elasticsearch:

Теперь вы можете настроить Elasticsearch. Файл «elasticsearch.yml» содержит параметры конфигурации кластеров, узлов, путей, сетей, памяти, шлюза и других элементов. Большинство из них уже предварительно настроены в файле. Затем откройте файл конфигурации Elasticsearch в любом текстовом редакторе:

Elasticsearch по умолчанию прослушивает порт 9200 на всех интерфейсах. Мы рекомендуем ограничить внешний доступ к Elasticsearch, чтобы предотвратить чтение данных посторонними лицами или завершение работы кластеров Elasticsearch через REST API. Чтобы ограничить доступ к Elasticsearch и повысить его безопасность, раскомментируйте следующую строку и замените ее значение:

network.host: localhost

Если Elasticsearch должен прослушивать определенный IP-адрес, замените «localhost» на целевой IP-адрес. Это минимальное требование к конфигурации перед запуском Elasticsearch. Сохраните и закройте файл конфигурации. Затем запустите службу Elasticsearch. Запуск Elasticsearch может занять некоторое время:

После этого необходимо убедиться, что Elasticsearch запускается при каждой загрузке сервера:

Следующая команда проверит, работает ли служба Elasticsearch. Для этого достаточно отправить HTTP-запрос:

sending an HTTP request

Ответ будет выглядеть примерно так. Это будет ответ, содержащий некоторую базовую информацию о локальном узле.

Установка и настройка панели управления Kibana

Kibana доступна непосредственно из репозитория Elastic. Обратите внимание, что Kibana следует устанавливать только после того, как вы уже установили Elasticsearch. Если репозиторий уже доступен, APT может напрямую загрузить и установить Kibana:

После установки включите и запустите службу Kibana:

По умолчанию Kibana настроена на прослушивание только «localhost». Для внешнего доступа требуется настройка обратного прокси-сервера. В данном случае в качестве обратного прокси-сервера будет использоваться Nginx. Используйте команду openssl для создания администратора Kibana. Это будет учетная запись пользователя для доступа к веб-интерфейсу Kibana. В данном примере именем пользователя будет «kibana_admin». Для обеспечения лучшей безопасности мы рекомендуем использовать нестандартное имя пользователя. Следующая команда создаст администратора для Kibana. Имя пользователя и пароль будут сгенерированы и сохранены в файле «htpasswd.users». Nginx должен быть настроен на использование этого имени пользователя и пароля:

Введите и подтвердите пароль в командной строке. Этот пароль будет важен для доступа к интерфейсу Kibana. После этого вам нужно создать файл серверного блока Nginx. Для демонстрации это будет example.com. Это также может быть любое другое описательное имя. Если для сервера настроены записи FQDN и DNS, имя файла также может соответствовать FQDN:

Если там уже есть какое-либо содержимое, удалите его и замените следующими строками кода:

Сохраните и закройте файл. Создайте символическую ссылку на новую конфигурацию в каталоге «sites-enabled». Если уже существует ссылка с таким же именем файла, этот шаг может не потребоваться:

Следующая команда заставит Nginx проверить наличие синтаксических ошибок:

Если возникнут проблемы с синтаксисом, убедитесь, что содержимое файла размещено правильно. Затем перезапустите службу Nginx:

Укажите UFW, чтобы разрешить подключение к Nginx:

Теперь Kibana должна быть доступна по FQDN или публичному IP-адресу сервера Elastic Stack. Проверьте страницу статуса сервера Kibana:

status page

Установка и настройка Logstash

Хотя Beats может напрямую отправлять данные в базу данных Elasticsearch’s, для обработки данных рекомендуется использовать Logstash. Logstash может собирать данные и преобразовывать их в общий формат перед экспортом в другую базу данных. Выполните следующую команду APT для установки Logstash:

После завершения установки пришло время настроить Logstash. Конфигурационные файлы Logstash имеют формат JSON. Все их можно найти в каталоге «/etc/logstash/conf.d». Полезно представить Logstash в виде конвейера, который принимает данные на одном конце, обрабатывает их и отправляет в место назначения. Конвейер Logstash требует двух обязательных элементов – input и output с одним необязательным элементом – filter. Плагин input принимает данные, плагин filter обрабатывает данные, а плагин output записывает данные в место назначения. Следующая команда создаст конфигурационный файл, который настроит Logstash для приема данных из Filebeat:

Введите следующую конфигурацию input. Она описывает входные данные beats, которые будут прослушивать порт 5044 по протоколу TCP:

Следующим шагом является создание конфигурационного файла с именем «10-syslog-filter.conf». Мы будем использовать его для настройки фильтра для syslogs (системных журналов):

Введите следующий код конфигурации syslog. Этот код доступен непосредственно из Elastic guide. Этот код объясняет конфигурацию input для Logstash:

Следующий конфигурационный файл будет отвечать за вывод. Откройте новый файл с именем «30-elasticsearch-output.conf»:

Введите следующий код. Этот код описывает конфигурацию вывода для Logstash:

Протестируйте конфигурацию Logstash. Затем выполните следующую команду:

Если ошибок нет, Logstash выведет следующее сообщение об успешном завершении. Если запуск не удался, убедитесь, что все конфигурационные файлы содержат правильный код. Наконец, запустите и добавьте в автозагрузку службу Logstash:

Теперь, когда Logstash успешно запущен и полностью настроен, давайте установим Filebeat.

Установка и настройка Filebeat

Elastic Stack использует агенты отправки данных, известные как «Beats», для сбора данных из различных источников и их передачи в Logstash/Elasticsearch. Вот краткий список доступных Beats от Elastic:

  • Filebeat: сбор/отправка файлов журналов.
  • Metricbeat: сбор/отправка метрик систем и служб.
  • Packetbeat: сбор/анализ сетевых данных.
  • Winlogbeat: сбор журналов событий Windows.
  • Auditbeat: сбор данных подсистемы аудита Linux и мониторинг целостности файлов.
  • Heartbeat: мониторинг доступности служб.

В рамках этого руководства нам понадобится Filebeat для отправки локальных логов в Elastic Stack. Сначала установите Filebeat:

Теперь вы можете настроить Filebeat. Сначала ему необходимо подключиться к Logstash. Мы будем использовать пример конфигурации, который поставляется с Filebeat. Откройте файл конфигурации в текстовом редакторе. Обратите внимание, что поскольку файл имеет формат YAML, важны правильные отступы:

Найдите раздел «output.elasticsearch» и закомментируйте следующие строки. Это настроит Filebeat на прямую отправку событий в Elasticsearch/Logstash для дополнительной обработки. Затем перейдите к разделу «output.logstash». Далее раскомментируйте строки:

output.logstash

Filebeat поддерживает модули, которые могут расширить его функциональность. В этом руководстве мы будем использовать системный модуль, который собирает и анализирует логи, созданные службой системного логирования популярных дистрибутивов Linux. Включите системный модуль Filebeat:

Следующая команда Filebeat выведет список всех включенных и отключенных модулей:

По умолчанию Filebeat настроен на отслеживание стандартных путей для системного журнала (syslog) и журналов авторизации. Параметры модулей доступны в конфигурационном файле «/etc/filebeat/modules.d/system.yml».

Следующим шагом является загрузка шаблона индекса в Elasticsearch. Индекс Elasticsearch представляет собой коллекцию документов со схожими характеристиками. Каждый индекс имеет имя. Имя необходимо при выполнении различных операций внутри него. Шаблон индекса автоматически применяется каждый раз при создании нового индекса. Далее загрузите шаблон:

По умолчанию Filebeat содержит пример дашборда для Kibana. Он помогает визуализировать данные Filebeat в Kibana. Однако перед использованием дашборда необходимо создать шаблон индекса и загрузить дашборды в Kibana. Во время загрузки дашбордов Filebeat обращается к Elasticsearch за информацией о версии. Для загрузки дашбордов при включенном Logstash требуется отключить вывод Logstash и включить вывод Elasticsearch. Следующая команда выполнит эту задачу:

Наконец, вы можете запустить Filebeat:

Теперь пришло время протестировать конфигурацию Elastic Stack. Если все настроено правильно, вывод будет выглядеть примерно так:

Elastic Stack configuration

Если в выводе указано 0 совпадений (total hits), это означает, что Elasticsearch не загружает логи по искомому индексу. Это указывает на ошибку в конфигурации. Если вывод соответствует ожиданиям, значит, Elastic Stack успешно настроен.

Обзор дашбордов Kibana

Теперь пришло время изучить веб-интерфейс Kibana, который мы уже установили. Сначала откройте дашборд Kibana. Он должен быть доступен по FQDN или публичному IP-адресу сервера Elastic Stack:

Введите учетные данные для входа, которые мы сгенерировали ранее. После входа в систему дашборд будет выглядеть следующим образом:

Elastic stack home

В левой панели навигации выберите «Discover». Затем выберите шаблон «filebeat-*». Здесь отображаются все логи, собранные за последние 15 минут. Вы можете искать и просматривать логи, а также настраивать дашборд:

customize the dashboard

В левой панели навигации перейдите в Dashboard >> Filebeat System. Здесь доступны все примеры дашбордов из системного модуля Filebeat.

В следующем примере подробно описана различная статистика на основе сообщений syslog:

Elastic Stack dashboard

Он также может сообщать, какие пользователи выполняли команды с помощью sudo:

executed commands

Наконец, Kibana дает вам возможность изучить множество других функций, таких как построение графиков и фильтрация, так что не стесняйтесь исследовать их самостоятельно.

Заключительные мысли

Elastic Stack — это мощное решение для анализа системных логов. Имейте в виду, что хотя любые логи или индексированные данные могут быть отправлены в Logstash с помощью Beats, они становятся более полезными, когда анализируются и структурируются с помощью фильтров Logstash.

Приятной работы!

author

Hark Labs

Автор · CloudSigma

Preslav Dobrev — креативный дизайнер в CloudSigma, сосредоточенный на формировании последовательного корпоративного образа с помощью традиционных и инновационных маркетинговых каналов. Он умело сочетает художественное видение со стратегическим маркетингом, создавая убедительные истории бренда.

Комментарии

Комментариев пока нет. Будьте первым.