8(800) 222 32 56
Панель управления
Решения для бизнеса

Практикум: развёртывание ELK Stack для логирования и аналитики на серверах

Практикум: развёртывание ELK Stack для логирования и аналитики на серверах
Подберите идеальное решение для ваших задач:
в России, США и Нидерландах обеспечат максимальную скорость. Воспользуйтесь всеми преимуществами надежного оборудования. Базовая помощь и техническое обслуживание входят в пакет услуг.

Введение

Представьте себе: глубокой ночью сервер начинает «капризничать», пользователи сталкиваются с ошибками, а вы, системный администратор, пытаетесь найти причину по разрозненным журнальным записям. Логи — это дневник сервера, но читать его, когда страницы разбросаны по разным файлам и машинам, задача не из легких. ELK Stack приходит на помощь как верный детективный набор инструментов: он собирает все логи воедино, помогает проанализировать их и превратить хаос строк в понятные визуальные подсказки. Мы предлагаем пройти практический путь развёртывания ELK Stack на Ubuntu 22.04 для централизованного логирования и аналитики — шаг за шагом, с дружескими комментариями и реальными примерами.

Что такое ELK Stack и зачем он нужен?

ELK Stack (он же Elastic Stack) – это комбинация из нескольких мощных инструментов для централизованного сбора, хранения и анализа журналов (логов) сервера — от логирования Nginx до системных событий. Название «ELK» образовано от первых букв основных компонентов:

  • Elasticsearch – поисковый и аналитический движок. Он как умная база данных для логов: хранит данные и позволяет мгновенно находить нужное по всем серверам.
  • Logstash – конвейер для обработки и маршрутизации данных. Представьте его как фабрику, где сырой лог-файл превращается во что-то единообразное и полезное, прежде чем отправиться в хранилище.
  • Kibana – веб-интерфейс для визуализации и анализа. Это ваша панель управления и «приборная доска»: визуализация логов с помощью красивых графиков, поиск по записям журналов и интерактивные дашборды на все случаи жизни.
  • Filebeat – лёгкий агент-сборщик логов (из семейства Beats). Он бродит по вашему серверу (или серверам), «подслушивает» новые записи в лог-файлах (Nginx, системные журналы, SSH и другие) и отправляет их в Logstash или напрямую в Elasticsearch.

Подготовка сервера и окружения

Прежде чем устанавливать компоненты ELK, убедимся, что наш сервер готов к нагрузке:

  • Аппаратные требования: Elasticsearch любит оперативную память. Рекомендуется хотя бы 4 ГБ RAM (больше — лучше) и несколько гигабайт дискового пространства.
  • ОС и доступ: Используем Ubuntu 22.04. Нужны права sudo.
  • Интернет-доступ: Elastic отсутствует в стандартных репозиториях Ubuntu. Чтобы загрузить пакеты, нужен интернет.
  • Java: В новых версиях Elastic встроена OpenJDK, отдельная установка не требуется.

Дополнительно: синхронизация времени, проверка фаерволов и открытых портов (9200 — Elasticsearch, 5601 — Kibana, 5044 — Logstash Beats).

Установка Elasticsearch

curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elastic.gpg
echo "deb [signed-by=/usr/share/keyrings/elastic.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
sudo apt update
sudo apt install elasticsearch -y

Правка конфига:

sudo nano /etc/elasticsearch/elasticsearch.yml

Ключевые строки:

network.host: localhost

Запуск:

sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch
curl -X GET "http://localhost:9200"

Установка Kibana

Установка:

sudo apt install kibana -y

Проверка:

sudo systemctl start kibana
sudo systemctl enable kibana

Kibana будет доступна на http://localhost:5601.

Установка Logstash

sudo apt install logstash -y

Создаём input:

sudo nano /etc/logstash/conf.d/02-beats-input.conf

Содержимое:

input {
  beats {
    port => 5044
  }
}

Создаём output:

sudo nano /etc/logstash/conf.d/30-elasticsearch-output.conf

Содержимое:

output {
  elasticsearch {
    hosts => ["localhost:9200"]
    index => "filebeat-%{+YYYY.MM.dd}"
  }
}

Проверка:

sudo -u logstash /usr/share/logstash/bin/logstash --path.settings /etc/logstash -t
sudo systemctl start logstash
sudo systemctl enable logstash

Установка Filebeat

sudo apt install filebeat -y
sudo nano /etc/filebeat/filebeat.yml

Активируем Logstash-вывод:

output.logstash:
  hosts: ["localhost:5044"]

Включаем модули:

sudo filebeat modules enable system
sudo filebeat modules enable nginx

Загружаем шаблоны и дашборды:

sudo filebeat setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'
sudo filebeat setup --pipelines --modules system,nginx -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'
sudo filebeat setup -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]' -E setup.kibana.host=localhost:5601

Запуск:

sudo systemctl start filebeat
sudo systemctl enable filebeat

Готовы перейти на современную серверную инфраструктуру?

В King Servers мы предлагаем серверы как на AMD EPYC, так и на Intel Xeon, с гибкими конфигурациями под любые задачи — от виртуализации и веб-хостинга до S3-хранилищ и кластеров хранения данных.

  • S3-совместимое хранилище для резервных копий
  • Панель управления, API, масштабируемость
  • Поддержку 24/7 и помощь в выборе конфигурации

Создайте аккаунт

Быстрая регистрация для доступа к инфраструктуре


Проверка логирования

Переходим в Kibana → Discover → выбираем filebeat-*. Должны появиться логи:

  • Nginx access и error
  • systemd
  • SSH (auth.log)

Альтернативно:

curl 'http://localhost:9200/filebeat-*/_count?pretty'

Быстрое развёртывание ELK Stack в Docker (альтернатива)

Пример docker-compose.yml:

version: "3"
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:8.9.0
    environment:
      - discovery.type=single-node
      - ES_JAVA_OPTS=-Xms1g -Xmx1g
    ports:
      - "9200:9200"
    volumes:
      - esdata:/usr/share/elasticsearch/data

  kibana:
    image: docker.elastic.co/kibana/kibana:8.9.0
    ports:
      - "5601:5601"
    environment:
      - ELASTICSEARCH_HOSTS=http://elasticsearch:9200

  logstash:
    image: docker.elastic.co/logstash/logstash:8.9.0
    ports:
      - "5044:5044"
    volumes:
      - ./pipeline/logstash.conf:/usr/share/logstash/pipeline/logstash.conf

volumes:
  esdata:

Пример простого logstash.conf:

input { beats { port => 5044 } }
output { elasticsearch { hosts => ["http://elasticsearch:9200"] index => "docker-logs-%{+YYYY.MM.dd}" } }

Практические советы по логированию и визуализации

  • Настройте logrotate для Nginx и системных журналов.
  • Используйте ILM для удаления старых индексов.
  • Следите за RAM: Elasticsearch любит память.
  • Не оставляйте Kibana и Elasticsearch открытыми наружу.
  • Делайте дашборды: коды ответов Nginx, частота SSH-входов, системные ошибки.
  • Добавляйте алерты — реагируйте раньше пользователя.

Заключение

Теперь у вас рабочая связка ELK Stack, собирающая и анализирующая логи в удобном виде. Развивайте её, подключайте новые сервисы, стройте визуализации и управляйте инфраструктурой уверенно и прозрачно. ELK станет вашим постоянным помощником в поиске проблем, оптимизации сервисов и мониторинге серверов.

Как повысить антиплагиат: 8 эффективных способов 2021 года
Сайт

Как повысить антиплагиат: 8 эффективных способов 2021 года

Чем популярнее тема, тем сложнее написать уникальный текст. Большинство письменных трудов должно содержать цитаты, термины,

Медиасервер: зачем он вам нужен и как его настроить?
Решения для бизнеса

Медиасервер: зачем он вам нужен и как его настроить?

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

ІоВ – одна из главных технологических тенденций 2021 года
DDoS

ІоВ – одна из главных технологических тенденций 2021 года

Устройства из категории IoT (Internet of Things, «интернет вещей») уже прочно вошли в нашу жизнь. Если