Установка Elastic Stack · 11 min read · Nov 25, 2025
Как установить Elastic Stack на Ubuntu 18.04 LTS

Elasticsearch — это поисковая система с открытым исходным кодом, основанная на Lucene, разработанная на Java. Она предоставляет распределенный и многопользовательский полнотекстовый поисковый движок с веб-интерфейсом HTTP Dashboard (Kibana). Данные запрашиваются, извлекаются и хранятся в схеме документов JSON. Elasticsearch — это масштабируемая поисковая система, которая может использоваться для поиска всех видов текстовых документов, включая журналы. Elasticsearch является сердцем ‘Elastic Stack’ или ELK Stack.
Logstash — это инструмент с открытым исходным кодом для управления событиями и журналами. Он предоставляет потоковую передачу данных в реальном времени. Logstash будет собирать ваши данные журналов, преобразовывать данные в документы JSON и хранить их в Elasticsearch.
Kibana — это инструмент визуализации данных с открытым исходным кодом для Elasticsearch. Kibana предоставляет красивый веб-интерфейс панели управления. Он позволяет управлять и визуализировать данные из Elasticsearch. Он не только красив, но и мощен.
В этом руководстве я покажу вам, как установить и настроить Elastic Stack на сервере Ubuntu 18.04 для мониторинга журналов сервера. Затем я покажу вам, как установить и настроить ‘Elastic beats’ на клиентском сервере Ubuntu 18.04 и CentOS 7.
Предварительные требования
- 3 сервера - Ubuntu 18.04 с 4 ГБ ОЗУ/памяти как ‘elk-master’ - 10.0.15.10
- Ubuntu 18.04 с 512 МБ/1 ГБ ОЗУ/памяти как ‘elk-client01’ - 10.0.15.21
- CentOS 7.5 с 512 МБ/1 ГБ ОЗУ/памяти как ‘elk-client02’ - 10.0.15.22
- Привилегии root
Что мы будем делать?
- Установить Elastic Stack 1. Установить Java
- Установить и настроить ElasticSearch
- Установить и настроить Kibana
- Установить и настроить Nginx как обратный прокси для Kibana
- Установить и настроить Logstash
- Установить и настроить Filebeat на Ubuntu 18.04
- Установить и настроить Filebeat на CentOS 7.5
- Тестирование
Шаг 1 - Установить Elastic Stack
На этом первом шаге мы установим и настроим ‘Elastic Stack’ на сервере ‘elk-master’, поэтому выполняйте все команды и этапы для этого шага только на сервере ‘elk-master’. Мы установим и настроим каждый компонент elastic stack, включая Elasticsearch, Logstash shipper и Kibana Dashboard с веб-сервером Nginx.
Установить Java
Java необходима для развертывания Elastic stack. Elasticsearch требует Java 8. Рекомендуется использовать Oracle JDK 1.8, и мы установим Java 8 из PPA репозитория.
Установите пакеты ‘software-properties-common’ и ‘apt-transport-https’, а затем добавьте PPA репозиторий Java ‘webupd8team’. Выполните команды ‘apt install’ и ‘add-apt-repository’ ниже.
sudo apt install software-properties-common apt-transport-https -y
sudo add-apt-repository ppa:webupd8team/java -yТеперь установите java8-installer.
sudo apt install oracle-java8-installer -yПосле завершения установки проверьте версию java.
java -versionJava 1.8 установлена в системе.
Далее мы настроим окружение java. Проверьте бинарный файл java, используя команду ниже.
update-alternatives --config javaИ вы получите бинарный файл java в директории ‘/usr/lib/jvm/java-8-oracle‘.
Теперь создайте файл профиля ‘java.sh’ в директории ‘profile.d’.
vim /etc/profile.d/java.shВставьте конфигурацию окружения java ниже.
#Set JAVA_HOME
JAVA_HOME="/usr/lib/jvm/java-8-oracle"
export JAVA_HOME
PATH=$PATH:$JAVA_HOME
export PATHСохраните и выйдите.
Сделайте файл исполняемым и загрузите файл конфигурации.
chmod +x /etc/profile.d/java.sh
source /etc/profile.d/java.shТеперь проверьте окружение java, используя команду ниже.
echo $JAVA_HOMEИ вы получите директорию java, расположенную в ‘/usr/lib/jvm/java-8-oracle‘.

Установить Elasticsearch
После установки Java мы установим первый компонент Elastic Stack, мы установим elasticsearch.
Добавьте ключ elastic stack и добавьте репозиторий elastic в систему.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.listТеперь обновите репозиторий и установите пакет elasticsearch, используя команду ниже.
sudo apt update
sudo apt install elasticsearch -yПосле завершения установки перейдите в директорию ‘/etc/elasticsearch’ и отредактируйте файл конфигурации ‘elasticsearch.yml’.
cd /etc/elasticsearch/
vim elasticsearch.ymlРаскомментируйте строку ‘network.host’ и измените значение на ‘localhost’, и раскомментируйте строку ‘http.port’ для конфигурации порта elasticsearch.
network.host: localhost
http.port: 9200Сохраните и выйдите.
Теперь запустите службу elasticsearch и включите ее для запуска каждый раз при загрузке системы.
systemctl start elasticsearch
systemctl enable elasticsearchElasticsearch теперь работает, проверьте это, используя команды netstat и curl ниже.
netstat -plntu
curl -XGET 'localhost:9200/?pretty'Теперь вы получите версию elasticsearch ‘6.2.4’, работающую на порту по умолчанию ‘9200’.

Установка elasticsearch завершена.
Установить и настроить панель управления Kibana
Вторым компонентом является панель управления Kibana. Мы установим панель управления Kibana из репозитория elastic и настроим службу kibana для работы на локальном адресе.
Установите панель управления Kibana, используя команду apt ниже.
sudo apt install kibana -yТеперь перейдите в директорию ‘/etc/kibana’ и отредактируйте файл конфигурации ‘kibana.yml’.
cd /etc/kibana/
vim kibana.ymlРаскомментируйте строки ‘server.port’, ‘server.host’ и ‘elasticsearch.url’.
server.port: 5601
server.host: "localhost"
elasticsearch.url: "http://localhost:9200"Сохраните и выйдите.
Теперь запустите службу kibana и включите ее для запуска каждый раз при загрузке системы.
sudo systemctl enable kibana
sudo systemctl start kibanaПанель управления kibana теперь работает на адресе ‘localhost’ и порту по умолчанию ‘5601’. Проверьте это, используя команду netstat ниже.
netstat -plntu
Установка панели управления Kibana завершена.
Установить и настроить Nginx как обратный прокси для Kibana
В этом руководстве мы будем использовать веб-сервер Nginx в качестве обратного прокси для панели управления Kibana.
Установите Nginx и пакеты ‘apache2-utils’ в систему.
sudo apt install nginx apache2-utils -yПосле завершения установки перейдите в директорию конфигурации ‘/etc/nginx’ и создайте новый файл виртуального хоста с именем ‘kibana’.
cd /etc/nginx/
vim sites-available/kibanaВставьте конфигурацию виртуального хоста Nginx ниже.
server {
listen 80;
server_name elastic-stack.io;
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/.kibana-user;
location / {
proxy_pass http://localhost: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;
}
}Сохраните и выйдите.
Далее мы создадим новую базовую аутентификацию веб-сервера для доступа к панели управления Kibana. Мы создадим базовую аутентификацию с помощью команды htpasswd, как ниже.
sudo htpasswd -c /etc/nginx/.kibana-user elastic
Введите пароль пользователя elasticАктивируйте виртуальный хост kibana и протестируйте всю конфигурацию nginx.
ln -s /etc/nginx/sites-available/kibana /etc/nginx/sites-enabled/
ginx -tУбедитесь, что ошибок нет, теперь запустите службу Nginx и включите ее для запуска каждый раз при загрузке системы.
systemctl enable nginx
systemctl restart nginxУстановка и конфигурация Nginx в качестве обратного прокси для панели управления Kibana завершены.

Установить и настроить Logstash
Последний компонент для Elastic Stack в этом руководстве — это ‘Logstash’. Мы установим и настроим Logstash для централизованного сбора журналов сервера из клиентских источников с помощью filebeat, затем отфильтруем и преобразуем все данные (Syslog) и перенесем их в хранилище (Elasticsearch).
Перед установкой logstash убедитесь, что вы проверили версию OpenSSL на вашем сервере.
openssl version -aДля этого руководства мы будем использовать OpenSSL ‘1.0.2o’. Если вы все еще используете версию OpenSSL 1.1.2, вы получите ошибку при соединении SSL logstash и filebeat.
Установите logstash, используя команду apt ниже.
sudo apt install logstash -yПосле завершения установки мы сгенерируем ключ SSL для обеспечения безопасной передачи данных журналов от клиента filebeat к серверу logstash.
Отредактируйте файл ‘/etc/hosts’, используя vim.
vim /etc/hostsДобавьте конфигурацию ниже.
10.0.15.10 elk-master elk-masterСохраните и выйдите.
Теперь создайте новую директорию SSL в директории конфигурации logstash ‘/etc/logstash’ и перейдите в эту директорию.
mkdir -p /etc/logstash/ssl
cd /etc/logstash/Сгенерируйте SSL-сертификат для Logstash, используя команду openssl ниже.
openssl req -subj '/CN=elk-master/' -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout ssl/logstash-forwarder.key -out ssl/logstash-forwarder.crtФайлы SSL-сертификатов для Logstash были созданы в директории ‘/etc/logstash/ssl’.
Далее мы создадим новые файлы конфигурации для logstash. Мы создадим файл конфигурации ‘filebeat-input.conf’ как входной файл от filebeat, ‘syslog-filter.conf’ для обработки syslog и затем файл ‘output-elasticsearch.conf’ для определения вывода Elasticsearch.
Перейдите в директорию конфигурации logstash и создайте новые файлы конфигурации ‘filebeat-input.conf’ в директории ‘conf.d’.
cd /etc/logstash/
vim conf.d/filebeat-input.confВставьте следующую конфигурацию туда.
input {
beats {
port => 5443
type => syslog
ssl => true
ssl_certificate => "/etc/logstash/ssl/logstash-forwarder.crt"
ssl_key => "/etc/logstash/ssl/logstash-forwarder.key"
}
}Сохраните и выйдите.
Для обработки данных журнала syslog мы используем плагин фильтра с именем ‘grok’ для разбора файлов syslog.
Создайте новую конфигурацию ‘syslog-filter.conf’.
vim conf.d/syslog-filter.confВставьте следующую конфигурацию туда.
filter {
if [type] == "syslog" {
grok {
match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
add_field => [ "received_at", "%{@timestamp}" ]
add_field => [ "received_from", "%{host}" ]
}
date {
match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]
}
}
}Сохраните и выйдите.
А для вывода elasticsearch мы создадим файл конфигурации с именем ‘output-elasticsearch.conf’.
vim conf.d/output-elasticsearch.confВставьте следующую конфигурацию туда.
output {
elasticsearch { hosts => ["localhost:9200"]
hosts => "localhost:9200"
manage_template => false
index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
document_type => "%{[@metadata][type]}"
}
}Сохраните и выйдите.
Когда это будет сделано, запустите службу logstash и включите ее для запуска каждый раз при загрузке системы.
sudo systemctl enable logstash
sudo systemctl start logstash
Проверьте службу logstash, используя команды netstat и systemctl ниже.
netstat -plntu
systemctl status logstashИ служба logstash теперь работает. Работает на общедоступном IP-адресе с портом ‘5443’.

Установка Elastic Stack завершена.
Шаг 2 - Установить и настроить Filebeat на Ubuntu 18.04
На этом шаге мы настроим клиент Ubuntu 18.04 ‘elk-client01’, установив на нем данные шиперы Elastic Beats ‘Filebeat’.
Перед установкой filebeat в систему нам нужно отредактировать ‘/etc/hosts’ и загрузить файл сертификата logstash ‘logstash-forwarder.crt’ на сервер ‘elk-client01’.
Отредактируйте файл ‘/etc/hosts’, используя vim.
vim /etc/hostsВставьте следующую конфигурацию туда.
10.0.15.10 elk-master elk-masterСохраните и выйдите.
Скопируйте файл сертификата logstash ‘logstash-forwarder.crt’, используя команду scp.
scp root@elk-master:/etc/logstash/ssl/logstash-forwarder.crt .
Далее установите Elastic Beats ‘Filebeat’, добавив ключ elastic и добавив репозиторий elastic.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.listОбновите репозиторий и установите пакет ‘filebeat’, используя команду apt ниже.
sudo apt update
sudo apt install filebeat -yПосле завершения установки перейдите в директорию ‘/etc/filebeat’ и отредактируйте файл конфигурации ‘filebeat.yml’.
cd /etc/filebeat/
vim filebeat.ymlТеперь включите просекторы filebeat, изменив значение строки ‘enabled’ на ‘true’.
enabled: trueОпределите системные файлы журналов, которые будут отправлены на сервер logstash. Для этого руководства мы добавим файл журнала ssh ‘auth.log’ и файл syslog.
paths:
- /var/log/auth.log
- /var/log/syslogНастройте вывод на logstash, закомментировав вывод по умолчанию ‘elasticsearch’ и раскомментировав строку вывода logstash ниже.
output.logstash:
# The Logstash hosts
hosts: ["elk-master:5443"]
ssl.certificate_authorities: ["/etc/filebeat/logstash-forwarder.crt"]Сохраните и выйдите.
Далее нам нужно отредактировать файл ‘filebeat.reference.yml’, чтобы включить модули filebeat, и мы включим модуль ‘syslog’.
vim filebeat.reference.ymlВключите системный модуль syslog для filebeat, как ниже.
- module: system
# Syslog
syslog:
enabled: trueСохраните и выйдите.
Скопируйте файл сертификата logstash ‘logstash-forwarder.crt’ в директорию ‘/etc/filebeat’.
cp ~/logstash-forwarder.crt /etc/filebeat/logstash-forwarder.crtУстановка и конфигурация Filebeat завершены. Теперь запустите службу filebeat и включите ее для запуска каждый раз при загрузке системы.
systemctl start filebeat
systemctl enable filebeatПроверьте службу filebeat, используя команды ниже.
systemctl status filebeat
tail -f /var/log/filebeat/filebeatШиперы filebeat работают на сервере Ubuntu 18.04.

Шаг 3 - Установить и настроить Filebeat на CentOS 7.5
На этом шаге мы настроим клиент CentOS 7.5 ‘elk-client02’, установив на нем данные шиперы Elastic Beats ‘Filebeat’.
Перед установкой Filebeat в систему нам нужно отредактировать ‘/etc/hosts’ и загрузить файл сертификата logstash ‘logstash-forwarder.crt’ на сервер ‘elk-client02’.
Отредактируйте файл ‘/etc/hosts’, используя vim.
vim /etc/hostsВставьте конфигурацию ниже.
10.0.15.10 elk-master elk-masterСохраните и выйдите.
Скопируйте файл сертификата logstash ‘logstash-forwarder.crt’, используя команду scp.
scp root@elk-master:/etc/logstash/ssl/logstash-forwarder.crt .
Далее установите Elastic Beats ‘Filebeat’, добавив ключ elastic и добавив репозиторий elastic.
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
cat < /etc/yum.repos.d/elastic.repo
[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF Установите filebeat, используя команду yum ниже.
yum install filebeat -yПосле завершения установки перейдите в директорию ‘/etc/filebeat’ и отредактируйте файл конфигурации ‘filebeat.yml’.
cd /etc/filebeat/
vim filebeat.ymlТеперь включите просекторы filebeat, изменив значение строки ‘enabled’ на ‘true’.
enabled: trueОпределите системные файлы журналов, которые будут отправлены на сервер logstash. Для этого руководства мы добавим файл журнала ssh ‘auth.log’ и файл syslog.
paths:
- /var/log/secure
- /var/log/messagesНастройте вывод на logstash, закомментировав вывод по умолчанию ‘elasticsearch’ и раскомментировав строку вывода logstash ниже.
output.logstash:
# The Logstash hosts
hosts: ["elk-master:5443"]
ssl.certificate_authorities: ["/etc/filebeat/logstash-forwarder.crt"]Сохраните и выйдите.
Далее нам нужно отредактировать файл ‘filebeat.reference.yml’, чтобы включить модули filebeat, и мы включим модуль ‘syslog’.
vim filebeat.reference.ymlВключите системный модуль syslog для filebeat, как ниже.
- module: system
# Syslog
syslog:
enabled: trueСохраните и выйдите.
Скопируйте файл сертификата logstash ‘logstash-forwarder.crt’ в директорию ‘/etc/filebeat’.
cp ~/logstash-forwarder.crt /etc/filebeat/logstash-forwarder.crtУстановка и конфигурация Filebeat завершены. Теперь запустите службу filebeat и добавьте ее в автозагрузку.
systemctl start filebeat
systemctl enable filebeatПроверьте службу filebeat, используя команды ниже.
systemctl status filebeat
tail -f /var/log/filebeat/filebeatШиперы filebeat работают на сервере CentOS 7.5.

Шаг 4 - Тестирование
Откройте веб-браузер и введите доменное имя elastic stack, у меня это: ‘elastic-stack.io’.
Вам будет предложено ввести имя пользователя и пароль для базовой аутентификации на панели управления Kibana.

Введите имя пользователя ‘elastic’ и ваш пароль.
Теперь вы получите красивую панель управления kibana, нажмите кнопку ‘Настроить шаблоны индексов’ справа.

Определите шаблон индекса ‘filebeat-*’ и нажмите кнопку ‘Следующий шаг’.

Для поля фильтра времени выберите ‘@timestamp’ и нажмите ‘Создать шаблон индекса’.

И шаблон индекса filebeat был создан.

Далее мы попробуем получить информацию о журналах для неудачного входа SSH на каждом клиентском сервере ‘elk-client01’ Ubuntu и ‘elk-client02’ CentOS.
Внутри панели управления Kibana нажмите меню ‘Обнаружить’, чтобы получить все журналы сервера.
Установите ‘beat.hostname’ на сервер ‘elk-client01’, источник — это файл ‘/var/log/auth.log’, и вы получите результат, как показано ниже.

А вот пример деталей журнала для неудачного пароля SSH из файла ‘auth.log’.

Для сервера ‘elk-client02’ CentOS установите ‘beat.hostname’ на сервер ‘elk-client02’, источник — это файл ‘/var/log/secure’, и вы получите результат, как показано ниже.

А вот пример деталей журнала для неудачного пароля SSH из файла ‘secure’.

Установка и конфигурация Elastic Stack и Elastic Beat ‘Filebeat’ успешно завершены.
Ссылки
Get new posts in your inbox
No spam. Unsubscribe anytime.