Home » Devops » Быстрая настройка Elastic Stack в Elastic Cloud для сбора логов

Быстрая настройка Elastic Stack в Elastic Cloud для сбора логов

Хочу сегодня наглядно показать, как можно очень быстро, буквально, за 30 минут, начать собирать и обрабатывать логи. Я расскажу, как зарегистрироваться в Elastic Cloud, развернуть там Elastic Stack и сразу начать собирать логи apache через filebeat. Для демонстрации возможностей будет использоваться триальный период в 14 дней. Этого вполне хватает, чтобы оценить сервис и понять, нужен он вам или нет.

Углубленный онлайн-курс по MikroTik.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.

Введение

У меня есть целый цикл статей про настройку и эксплуатацию ELK Stack для сбора логов с различных приложений. Так же я подробно рассказал, как установить и настроить ELK Stack себе, если у вас есть под него мощности и компетенции. В целом, там нет чего-то сильно сложного, но тем не менее, все равно необходимо повозиться, чтобы все заработало.

Не обязательно все это разворачивать и настраивать у себя, если хочется просто попробовать продукт, чтобы понять, нужен он вам или нет. Есть сервис - https://cloud.elastic.co, где можно за 2 минуты зарегистрировать и развернуть свой стэк на базе Elasticsearch и Kibana. Отличие от описанного мной способа разворачивания стека в том, что тут не будет Logstash. Во многих случаях можно обойтись без него, так что это не критично. Особенно для того, чтобы просто попробовать.

Итак, прежде чем приступить к настройке, зарегистрируйтесь в облаке и активируйте учетную запись.

Запуск Elastic Stack в Elastic Cloud

При первом входе в личный кабинет у вас будет возможность создать Deployment с Elasticsearch.

Установка Elasticsearch в Elastic Cloud

Дальше нужно выбрать платформу, где вы хотите произвести установку сервиса, и регион. Я для теста выбрал Google Cloud Platform во Frankfurt. Все остальное оставил по дефолту. Дальше внизу жмете Create Deployment и ждете, когда он развернется. Обычно 2-3 минуты.

Дожидаемся окончание процесса установки и переходим в Kibana.

Запуск Kibana

Логинимся в Kibana с учетными данными, которые указаны в личном кабинете, в Deployment. Username обычно elastic и какой-то пароль. При первом входе вам предложат залить набор демо данных, чтобы посмотреть функционал системы. Если хотите - посмотрите. Я там и так все видел, поэтому отказываюсь :) Буду лить свои логи от apache.

Первый вход в Kibana

После выбора оказываетесь на главной странице Kibana. По сути Elastic Stack вы уже развернули и он готов принимать данные. Вот так, быстро и просто все настроилось. И DevOps не нужен :)

Можете тут осмотреться и познакомиться с системой.

Сбор логов через Filebeat в Elasticsearch

В качестве примера возьму, как обычно, свой "любимый" bitrix. Так выходит, что работать с ним приходится довольно часто, так что использую его в своих статьях в качестве примера.

Итак, у нас развернут Bitrixenv для любого битрикс сайта. Система - Centos 7, логи будем собирать с веб сервера Apache. Для Nginx никакой разницы не будет, так как дефолтный формат логов у них один и тот же.

Нам необходимо установить на сервер filebeat и настроить его на отправку логов в наш кластер. Инструкция, как это сделать, есть в самой Kibana. Для этого идите на главную страницу и выберите Add log data.

Сбор логов в Elastic Cloud

Далее выбирайте Apache Logs и вкладку RPM.

Сбор логов Apache в elastic

Ниже будет подробная инструкция о том, как настроить отправку логов через filebeat в Elastic. Идем на сервер и ставим filebeat.

# curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.6.2-x86_64.rpm
# rpm -vi filebeat-7.6.2-x86_64.rpm

Открываем конфигурационный файл /etc/filebeat/filebeat.yml и указываем реквизиты доступа, как они показаны в Kibana.

cloud.id: ":ZXVyb3BlLXdlc3QzLmdjcC5jbG91ZC5lcy5pbyRiNLPeRmNlODBkNzY0OTYxODk3YWVmZGZlNmI1ZWVjYyQ0NjdjOTQzNGJlYjk0YTk1YjBmYTQ5ZWQ4NTdkMzYzMA=="
cloud.auth: "elastic:5344qwZjFyM9Q23THCuMxcSm"

Активируем модуль для apache.

# filebeat modules enable apache

Если у вас логи располагаются в дефолтном месте - /var/log/httpd/access_log и error_log, то больше ничего делать не надо. Если где-то в другом месте или с другими именами, то укажите до них путь в конфиге /etc/filebeat/modules.d/apache.yml примерно так:

- module: apache
  access:
    enabled: true
    var.paths: ["/path/to/log/apache/access.log*"]
  error:
    enabled: true
    var.paths: ["/path/to/log/apache/error.log*"]

Теперь загружаем дефолтные дашборды в кибану следующей командой.

# filebeat setup

И запускаем filebeat.

# systemctl enable --now filebeat

Идем в Kibana в раздел Discovery и наблюдаем там свои логи. У вас должен был появиться индекс filebeat-*.

Просмотр логов в Kibana

Можете настроить список полей, которые вас интересуют в первую очередь, чтобы получить более наглядное представление.

Настройка списка логов

Вы можете использовать поиск для группировки запросов по каким-то признакам, сохраненных в полях, на которые распарсен ваш лог. У вас уже есть готовый dashboard для логов apache. Идем в раздел Dashboard, через поиск находим дашборд для apache и смотрим его.

Dashboard для логов Apache

У меня тестовый сайт на локалхосте, поэтому дашборд неинформативен. Если прогнать через него реальный сайт, можно получить полезные данные. Пример самостоятельной сборки dashboard в Kibana под свои потребности описан у меня в статьях - Dashboard для логов Nginx и Мониторинг производительности бэкенда.

Заключение

Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!

Вот и все. Мы очень быстро и просто настроил сбор логов в Elastic Stack, используя триальный период в 14 дней. Этого будет достаточно, чтобы протестировать продукт и понять, нужен ли он вам. Далее вы можете либо выбрать платный тарифный план в облаке, либо собрать все на своих мощностях.

В стандартном деплойменте, который вы развернули для теста, используется кластер. Данные хранятся в двух различных сегментах облака, в третьем расположен мастер. И еще по виртуалке под Kibana и APM (мониторинг приложений). Если вам нужны только логи и нет необходимости настраивать отказоустойчивость, достаточно будет только виртуалки с Kibana и Elasticsearch. Собрать свой Deployment под задачи можно в самом начале, там, где мы выбирали готовый. При своей сборке сразу же будет видна ее стоимость в час. В целом, все удоволствие начинается от 16$ в месяц.

В следующем материале расскажу, как вывести id сессии посетителя Битрикс в лог файл и затем с помощью Kibana следить за его перемещениями по сайту.

Онлайн-курс по устройству компьютерных сетей.

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Автор Zerox

Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

2 комментария

  1. Здравствуйте, а как собирать логи, на которых не хватает прав на чтение? Например доступ есть только у сервиса, даже админ без рута не может читать.

    • Очевидно, что никак. Надо дать права на чтение. Либо запускать сбор логов от пользователя сервиса.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.
Используешь Telegram? Подпишись на канал автора →
This is default text for notification bar