21.12.2020

ELK Stack на Centos 7

В инструкции описана установка ELK Stack на виртуальный сервер под управлением Centos 7.

Что такое ELK Stack?

«ELK» - это сокращение от трех проектов с открытым исходным кодом: Elasticsearch, Logstash и Kibana. Elasticsearch - это поисковая и аналитическая система. Logstash - это конвейер обработки данных на стороне сервера, который получает данные из нескольких источников одновременно, преобразует их, а затем отправляет в «тайник», подобный Elasticsearch. Kibana позволяет пользователям визуализировать данные с помощью диаграмм и графиков в Elasticsearch.

Первоначальные требования

Минимальные системные требования для нормальной работы ELK - 4Gb RAM и 2 СPU

Установка Java

Для развертывания стека Elastic требуется установка Java. Выполните следующую команду:
yum -y install java-1.8.0

Проверить установленную версию можно с помощью команды:
java -version

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

С помощью команды rpm загрузите ключ Elasticsearch:

sudo rpm --import <a href="https://artifacts.elastic.co/GPG-KEY-elasticsearch">https://artifacts.elastic.co/GPG-KEY-elasticsearch</a>

Добавьте репозиторий:

sudo vi /etc/yum.repos.d/elasticsearch.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

Запустите процесс установки:

sudo yum install elasticsearch

Далее необходимо отредактировать файл конфигурации, для начала его нужно открыть с помощью текстового редактора vi:

vi /etc/elasticsearch/elasticsearch.yml

В файле необходимо раскомментировать следующую строку:

bootstrap.memory_lock: true

Раскомментировать и установить значения следующим параметрам:

network.host: localhost
http.port: 9200

Сохраните изменения и закройте текстовый редактор.

Следующим шагом является редактирование файла конфигурации sysconfig для Elasticsearch:

vi /etc/sysconfig/elasticsearch

Раскомментируйте параметр MAX_LOCKED_MEMORY и убедитесь, что установлено значение unlimited:

MAX_LOCKED_MEMORY=unlimited

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

systemctl daemon-reload
systemctl enable elasticsearch
systemctl start elasticsearch

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

Используйте wget для загрузки Kibana 6.2.4, а затем установите его с помощью команды rpm:

wget https://artifacts.elastic.co/downloads/kibana/kibana-6.2.4-x86_64.rpm
rpm -ivh kibana-6.2.4-x86_64.rpm

Далее необходимо отредактировать конфигурационный файл Kibana:

vi /etc/kibana/kibana.yml

Раскомментируйте следующие строки и установите значения:

server.port: 5601
server.host: "[IP-адрес вашего сервера]"
elasticsearch.url: "http://localhost:9200"

Например:

server.port: 5601
server.host: "123.234.123.234"
elasticsearch.url: "http://localhost:9200"

Запустите службу Kibana и настройте ее на автоматический запуск при загрузке:

systemctl enable kibana
systemctl start kibana

Откройте порт 5601 для подключения к веб-интерфейсу Kibana:

sudo firewall-cmd --add-port=5601/tcp --permanent
sudo firewall-cmd --reload

Настройка Nginx

На вашем виртуальном сервере должен быть установлен веб-сервер NGINX, о том как это сделать написано в нашей инструкции.

Установите дополнительные инструменты для работы с веб-сервером:

yum install httpd-tools

Далее необходимо создать новый файл конфигурации виртуального хоста в каталоге conf.d:

vi /etc/nginx/conf.d/[Домен или IP-адрес].conf

Например:

vi /etc/nginx/conf.d/123.234.123.234.conf

И вставить следующие данные:

server {
listen 80;    server_name [Домен или IP-адрес];
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/htpasswd.kibana;
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;
}
}

Затем создайте с помощью команды htpassw новый файл базовой аутентификации. Потребуется создать пароль для пользователя admin:

sudo htpasswd -c /etc/nginx/htpasswd.kibana admin

Перезапустите сервер nginx:

systemctl restart nginx

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

Загрузите и установите Logstash:

wget https://artifacts.elastic.co/downloads/logstash/logstash-6.2.4.rpm
rpm -ivh logstash-6.2.4.rpm

По завершении установки Logstash запустите сервис:

systemctl restart logstash
systemctl enable logstash

Подключение к kibana

После завершения настроек подключитесь к Kibana в браузере, для этого перейдите по следующей ссылке:

http://[IP-адрес вашего сервера]:5601

Например:
http://123.234.123.234:5601