Установка 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 на обоих серверах.

Шаг 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.
Перейдите в директорию ‘/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 запущен и работает с включенной аутентификацией.
Шаг 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.
Создайте нового пользователя с именем ‘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’, и вы получите следующий результат.

В результате новый пользователь ‘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’.

Откройте веб-браузер и введите доменное имя вашей установки Kibana в адресной строке.
И вы получите страницу входа в Kibana, как показано ниже.

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

Нажмите кнопку ‘ Исследовать мои собственные данные ‘.
Теперь вы получите панель управления 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 на сервер 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" ]
}
]
}'
После этого проверьте роль ‘ events_index ‘, используя команду ниже.
curl -X GET -u elastic "http://172.16.0.3:9200/_security/role/events_index?pretty"Ниже приведен результат, который вы получите.

Как видно, роль ‘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.
Шаг 7 - Создать новый шаблон индекса Filebeat
После создания новой роли с именем ‘events_index’ мы создадим новый шаблон индекса для Filebeat через пользователя ‘ hakase ‘.
- Создать шаблон индекса
На панели управления Kibana нажмите на опцию меню слева, перейдите в раздел “ Управление “, и нажмите на “ Управление стеком “.
В разделе “ Kibana “ нажмите на “ Шаблон индекса “.

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

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

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

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

Чтобы показать данные на основе вашего фильтра, вы можете использовать “ KQL “ или Язык запросов Kibana.
Введите следующий запрос в поле “ KQL “.
host.name : client01 and log.file.path: "/var/log/auth.log"И вы получите всю информацию о SSH-аутентификации на машине “client01”.

В результате установка Elastic Stack с включенной безопасностью на Ubuntu 20.04 была успешно завершена.
Get new posts in your inbox
No spam. Unsubscribe anytime.