Установка 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

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

  1. Установить Elastic Stack 1. Установить Java
  2. Установить и настроить ElasticSearch
  3. Установить и настроить Kibana
  4. Установить и настроить Nginx как обратный прокси для Kibana
  5. Установить и настроить Logstash
  6. Установить и настроить Filebeat на Ubuntu 18.04
  7. Установить и настроить Filebeat на CentOS 7.5
  8. Тестирование

Шаг 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 -version

Java 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‘.

Настройка Java

Установить 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 elasticsearch

Elasticsearch теперь работает, проверьте это, используя команды netstat и curl ниже.

netstat -plntu  
curl -XGET 'localhost:9200/?pretty'

Теперь вы получите версию elasticsearch ‘6.2.4’, работающую на порту по умолчанию ‘9200’.

Проверка порта elasticsearch

Установка 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

Установка панели управления 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 завершены.

Настройка Nginx

Установить и настроить 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

Проверьте службу 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 .

Установка Filebeat

Далее установите 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.

Filebeat работает

Шаг 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 .

Установка Filebeat на CentOS

Далее установите 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.

Filebeat работает

Шаг 4 - Тестирование

Откройте веб-браузер и введите доменное имя elastic stack, у меня это: ‘elastic-stack.io’.

Вам будет предложено ввести имя пользователя и пароль для базовой аутентификации на панели управления Kibana.

Введите имя пользователя ‘elastic’ и ваш пароль.

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

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

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

Определить filebeat

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

Создать индекс

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

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

Далее мы попробуем получить информацию о журналах для неудачного входа SSH на каждом клиентском сервере ‘elk-client01’ Ubuntu и ‘elk-client02’ CentOS.

Внутри панели управления Kibana нажмите меню ‘Обнаружить’, чтобы получить все журналы сервера.

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

Результат журнала

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

Неудачный вход SSH

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

Отчет для сервера 2

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

Отчет о входе

Установка и конфигурация Elastic Stack и Elastic Beat ‘Filebeat’ успешно завершены.

Ссылки

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.