Установка Elastic Stack · 9 min read · Nov 11, 2025

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

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

Elastic Stack состоит из нескольких программных пакетов: “Elasticsearch” для хранения ваших данных, “Kibana” в качестве панели управления для доступа и визуализации ваших данных, динамического конвейера сбора данных “Logstash” с расширяемыми плагинами для обработки любых данных и “Beats” в качестве легковесной платформы для передачи данных, которая отправляет данные с крайних машин.

Elastic Stack можно развернуть на серверах или вы можете приобрести SaaS (программное обеспечение как услуга) в официальном Elastic Cloud.

В этом руководстве мы покажем вам, как установить Elastic Stack на сервере Ubuntu 20.04. Мы установим Elasticsearch и Kibana на одном и том же сервере, а затем установим и настроим “Filebeat” на другом сервере для прямой отправки логов на сервер Elasticsearch.

Требования

Для этого руководства мы будем использовать два сервера с Ubuntu 20.04. Программное обеспечение Elastic Stack будет установлено на сервере с 4 ГБ ОЗУ, а другой сервер с 1 ГБ будет использоваться в качестве клиента для Filebeat.

Что мы будем делать?

  • Добавить репозиторий Elastic Stack
  • Установить и настроить Elasticsearch
  • Установить и настроить Kibana
  • Настроить Nginx как обратный прокси для Kibana
  • Установить и настроить Filebeat
  • Настроить новую роль для пользователя Kibana
  • Создать новый шаблон индекса Filebeat

Шаг 1 - Добавить репозиторий Elastic Stack

Сначала мы добавим GPG-ключ и репозиторий программного обеспечения Elastic Stack на оба сервера Ubuntu.

Перед тем как продолжить, установите ‘apt-transport-https’ для обеспечения безопасности вашей установки программного обеспечения через защищенное соединение HTTPS.

sudo apt install apt-transport-https

Затем добавьте GPG-ключ и репозиторий Elastic Stack, используя следующую команду.

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -  
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list

Теперь обновите все доступные репозитории в системе Ubuntu.

sudo apt update

И вы готовы установить все программные пакеты Elastic на обоих серверах.

добавить репозиторий elastic

Шаг 2 - Установить и настроить Elasticsearch

На этом шаге мы установим и настроим Elasticsearch на одном узловом сервере ‘ELK20’ с внутренним IP-адресом ‘172.16.0.3’.

Перед установкой Elasticsearch отредактируйте файл ‘/etc/hosts’, используя редактор vim.

vim /etc/hosts

Теперь введите ваше имя хоста с внутренним IP-адресом, как показано ниже.

172.16.0.3    ELK20

Сохраните и закройте.

Затем установите пакет Elasticsearch, используя команду apt ниже.

sudo apt install elasticsearch

После завершения установки перейдите в директорию ‘/etc/elasticsearch’ и отредактируйте файл конфигурации ‘elasticsearch.yml’.

cd /etc/elasticsearch/  
vim elasticsearch.yml

Раскомментируйте строку ‘node.name’ и введите имя вашего сервера.

node.name: ELK20

В строке ‘network.host’ введите IP-адрес сервера, на котором будет работать служба elasticsearch, и рекомендуется использовать только внутренний IP-адрес.

network.host: 172.16.0.3

Раскомментируйте строку ‘http.port’ и оставьте ее по умолчанию, служба elasticsearch будет работать на порту по умолчанию ‘9200’.

http.port: 9200

Раскомментируйте строку ‘cluster.initial_master_nodes’ и введите имя вашего сервера.

cluster.initial_master_nodes: ["ELK20"]

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

xpack.security.enabled: true

Сохраните и закройте.

Затем перезагрузите менеджер служб systemd, затем запустите службу elasticsearch и добавьте ее в автозагрузку системы.

systemctl daemon-reload  
  
systemctl start elasticsearch  
systemctl enable elasticsearch

Служба Elasticsearch запущена и работает на сервере Ubuntu 20.04.

установить и настроить elasticsearch

Далее мы сгенерируем пароль для встроенного пользователя в Elasticsearch.

Перейдите в директорию ‘/usr/share/elasticsearch’ и выполните команду утилиты elasticsearch ‘elasticsearch-setup-passwords’, как показано ниже.

cd /usr/share/elasticsearch/  
bin/elasticsearch-setup-passwords auto -u "http://172.16.0.3:9200"

Введите ‘y’ для подтверждения и генерации пароля.

Initiating the setup of passwords for reserved users elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user.  
The passwords will be randomly generated and printed to the console.  
Please confirm that you would like to continue [y/N] y

Ниже приведен результат, который вы получите.

Changed password for user apm_system  
PASSWORD apm_system = DP5RpFfbCyL6UpIFO8Q3  
  
Changed password for user kibana_system  
PASSWORD kibana_system = U6gDLoJCqqChqcbD1IYV  
  
Changed password for user kibana  
PASSWORD kibana = U6gDLoJCqqChqcbD1IYV  
  
Changed password for user logstash_system  
PASSWORD logstash_system = KrHaGvHGfkAz12dcSeWo  
  
Changed password for user beats_system  
PASSWORD beats_system = VnUUOtShQoFAGEZ62G7m  
  
Changed password for user remote_monitoring_user  
PASSWORD remote_monitoring_user = xgaLXw6jp3Ses6CZ2hEB  
  
Changed password for user elastic  
PASSWORD elastic = elu2ZlMm4mOkM7fgCeUM

Как видно, пароль для некоторых встроенных пользователей в elasticsearch был сгенерирован.

тестирование аутентификации elasticsearch

В результате сервер Elasticsearch запущен и работает с включенной аутентификацией.

Шаг 3 - Установить и настроить Kibana

На этом шаге мы установим и настроим Kibana на том же сервере, что и Elasticsearch. Мы подключим Kibana к серверу Elasticsearch с помощью пользователя по умолчанию ‘kibana_system’ и сгенерированного пароля выше.

Установите Kibana, используя команду apt ниже.

sudo apt install kibana

После завершения установки перейдите в директорию ‘/etc/kibana’ и отредактируйте файл конфигурации ‘kibana.yml’, используя редактор vim.

cd /etc/kibana/  
vim kibana.yml

Раскомментируйте следующие строки и измените значения на свои. Рекомендуется запускать Kibana в локальной сети, так как мы будем использовать Nginx в качестве обратного прокси для Kibana.

server.port: 5601  
server.host: "172.16.0.3"  
server.name: "ELK20"

После этого измените ‘elasticsearch.url’ на IP-адрес вашего elasticsearch.

elasticsearch.url: "http://172.16.0.3:9200"

Раскомментируйте следующие строки “elasticsearch.username” и ‘elasticsearch.password’ и измените данные на свои.

elasticsearch.username: "kibana_system"  
elasticsearch.password: "N88VBkkelfSV3mBfO6Vh"

Сохраните и закройте.

Затем перезагрузите менеджер systemd, используя следующую команду.

systemctl daemon-reload

После этого запустите службу Kibana и добавьте ее в автозагрузку системы.

systemctl start kibana  
systemctl enable kibana

И служба Kibana запущена и работает на системе Ubuntu 20.04.

установить и настроить kibana

Далее мы создадим нового пользователя, который будет использоваться для входа в панель управления Kibana.

Создайте нового пользователя с именем ‘hakase’ и паролем ‘hakasepasskibana’ с ролью ‘kibana_admin’, как показано ниже.

curl -X POST -u elastic "http://172.16.0.3:9200/_security/user/hakase?pretty" -H 'Content-Type: application/json' -d'  
{  
  "password" : "hakasepasskibana",  
  "roles" : [ "kibana_admin" ]  
}  
'

Введите пароль для пользователя ‘elastic’, и вы получите следующий результат.

создать пользователя kibana с ролью kibana_admin

В результате новый пользователь ‘hakase’ был создан и сможет войти в панель управления Kibana.

Шаг 4 - Настроить Nginx как обратный прокси для Kibana

На этом шаге мы установим и настроим Nginx как обратный прокси для Kibana.

Установите пакеты Nginx, используя команду apt ниже.

sudo apt install nginx -y

После завершения установки перейдите в директорию ‘/etc/nginx/sites-available/‘ и создайте новый файл виртуального хоста ‘kibana’, используя редактор vim.

cd /etc/nginx/sites-available/  
vim kibana

Измените имя домена и IP-адрес ‘proxy_pass’ на свои, затем вставьте в него следующее.

server {  
    listen 80;  
   
    server_name elk.hakase-labs.io;  
   
    location / {  
        proxy_pass http://172.16.0.3:5601;  
        proxy_http_version 1.1;  
        proxy_set_header Upgrade $http_upgrade;  
        proxy_set_header Connection 'upgrade';  
        proxy_set_header Host $host;  
        proxy_cache_bypass $http_upgrade;  
    }  
}

Сохраните и закройте.

Затем активируйте виртуальный хост Nginx для Kibana и проверьте конфигурацию Nginx.

ln -s /etc/nginx/sites-available/kibana /etc/nginx/sites-enabled/  
nginx -t

Убедитесь, что ошибок нет, затем перезапустите службу Nginx.

systemctl restart nginx

В результате установка и настройка Nginx в качестве обратного прокси для Kibana завершены. Теперь панель управления Kibana доступна через доменное имя ‘elk.hakase-labs.io’.

настроить nginx как обратный прокси для kibana

Откройте веб-браузер и введите доменное имя вашей установки Kibana в адресной строке.

http://elk.hakase-labs.io/

И вы получите страницу входа в Kibana, как показано ниже.

страница входа в kibana

Введите пользователя ‘hakase’ с паролем ‘hakasepass’ и нажмите кнопку ‘ Войти ‘.

После входа в систему вам будет предложено импортировать образцы данных или исследовать ваши данные.

выбор опции kibana для исследования данных

Нажмите кнопку ‘ Исследовать мои собственные данные ‘.

Теперь вы получите панель управления Kibana, как показано ниже.

Панель управления Kibana

В результате установка Kibana и Nginx завершена.

Шаг 5 - Установить и настроить Filebeat

На этом шаге мы установим “Filebeat” на клиентской машине с именем хоста “client01” и IP-адресом “xxx.xxx.xxx.xxx”. Filebeat будет отправлять логи напрямую на сервер Elasticsearch.

Перед установкой “Filebeat” убедитесь, что репозиторий Elastic Stack добавлен в вашу систему.

Теперь установите пакет filebeat, используя команду apt ниже.

sudo apt install filebeat

После завершения установки перейдите в директорию ‘/etc/filebeat’ и отредактируйте файл конфигурации ‘filebeat.yml’, используя редактор vim.

cd /etc/filebeat/  
vim filebeat.yml

В верхней части конфигурации ‘filebeat.inputs’ измените ‘enabled: false’ на ‘enabled: true’, как показано ниже.

filebeat.inputs:  
- type: log  
  enabled: true  
  paths:  
    - /var/log/*.log

Затем перейдите к конфигурации Kibana и измените хост на IP-адрес и порт Kibana, измените имя пользователя на пользователя по умолчанию ‘kibana’ и пароль, сгенерированный выше.

setup.kibana:  
  host: "172.16.0.3:5601"  
  username: "kibana"    
  password: "U6gDLoJCqqChqcbD1IYV"

После этого перейдите к конфигурации ‘output.elasticsearch’ и измените данные на свои.

output.elasticsearch:  
  hosts: ["172.16.0.3:9200"]  
  username: "elastic"  
  password: "elu2ZlMm4mOkM7fgCeUM"

Сохраните и закройте.

Теперь перезагрузите менеджер systemd, запустите службу filebeat и добавьте ее в автозагрузку системы.

systemctl daemon-reload  
  
systemctl start filebeat  
systemctl enable filebeat

Служба filebeat запущена и работает на машине “ client01 “.

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

Далее нам нужно загрузить шаблон индекса filebeat на сервер Elasticsearch, используя следующую команду.

filebeat setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["http://172.16.0.3:9200"]'

Ниже приведен результат, который вы получите.

В результате шаблон индекса filebeat загружен на сервер Elasticsearch, и он будет доступен на панели управления Kibana как шаблон индекса ‘filebeat-*’.

Шаг 6 - Настроить новую роль для пользователя Kibana

На этом шаге мы создадим новую роль elasticsearch, которая позволит нашему пользователю ‘hakase’ получать доступ и управлять всеми индексами на сервере Elasticsearch через API Elasticsearch.

Создайте новую роль с именем ‘ events_index ‘, которая позволяет пользователям только управлять индексами на сервере Elasticsearch, используя следующую команду.

curl -XPOST -u elastic 'http://172.16.0.3:9200/_security/role/events_index' -H "Content-Type: application/json" -d '{  
  "indices" : [  
    {  
      "names" : [ "*" ],  
      "privileges" : [ "all" ]  
    }  
  ]  
}'

Создать новую роль elasticsearch

После этого проверьте роль ‘ events_index ‘, используя команду ниже.

curl -X GET -u elastic "http://172.16.0.3:9200/_security/role/events_index?pretty"

Ниже приведен результат, который вы получите.

проверить роль elasticsearch

Как видно, роль ‘events_index’ будет иметь привилегии только для управления индексами.

Далее добавьте роль ‘events_index’ нашему пользователю ‘hakase’, используя команду ниже.

curl -X POST -u elastic "http://172.16.0.3:9200/_security/user/hakase?pretty" -H 'Content-Type: application/json' -d'  
{  
  "password" : "hakasepasskibana",  
  "roles" : [ "kibana_admin", "events_index" ]  
}  
'

Введите пароль для пользователя ‘ elastic ‘, и роль ‘ events_index ‘ будет назначена пользователю ‘ hakase ‘.

Проверьте все доступные роли у пользователя ‘hakase’, используя следующую команду.

curl -X GET -u elastic "http://172.16.0.3:9200/_security/user/hakase?pretty"

Ниже приведен результат, который вы получите.

назначить роль пользователю elasticsearch

В результате мы создали новую роль для управления индексами на сервере Elasticsearch.

Шаг 7 - Создать новый шаблон индекса Filebeat

После создания новой роли с именем ‘events_index’ мы создадим новый шаблон индекса для Filebeat через пользователя ‘ hakase ‘.

- Создать шаблон индекса

На панели управления Kibana нажмите на опцию меню слева, перейдите в раздел “ Управление “, и нажмите на “ Управление стеком “.

В разделе “ Kibana “ нажмите на “ Шаблон индекса “.

Создать шаблон индекса Kibana

Нажмите кнопку “Создать шаблон индекса”, чтобы создать новый шаблон индекса.

В поле “шаблон индекса” введите “ filebeat-* “ и нажмите кнопку “ Следующий шаг “.

Создать шаблон индекса Filebeat на kibana

В поле “Имя поля фильтра времени” выберите “ @timestamp “ и нажмите кнопку “ Создать шаблон индекса “.

Настроить временной фильтр как фильтр по умолчанию

И шаблон индекса “ filebeat-* “ был создан и выбран в качестве шаблона индекса по умолчанию (если у вас не было других шаблонов индекса ранее).

Шаблон индекса Filebeat был создан

- Показать данные на Kibana

Чтобы показать данные, собранные filebeat, нажмите на меню опций в верхнем левом углу, затем нажмите “ Обнаружить “.

И вы получите все данные, собранные filebeat с машины “ client01 “.

Данные на машине client01 показаны на панели управления Kibana

Чтобы показать данные на основе вашего фильтра, вы можете использовать “ KQL “ или Язык запросов Kibana.

Введите следующий запрос в поле “ KQL “.

host.name : client01 and log.file.path: "/var/log/auth.log"

И вы получите всю информацию о SSH-аутентификации на машине “client01”.

Использование KQL Языка запросов Kibana

В результате установка Elastic Stack с включенной безопасностью на Ubuntu 20.04 была успешно завершена.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.