В этой статье мы покажем вам, как установить и настроить стек ELK на CentOS 7. Elasticsearch, Logstash и Kibana – это три продукта с открытым исходным кодом, которые входят в коллекцию под названием ELK stack. Это надежное решение для поиска, анализа и визуализации данных. Поскольку мы уже знаем, что Elasticsearch распределен, RESTful ищет и анализирует движок NoSQL на основе Lucene, легкий протокол обработки данных или Logstash используется для управления событиями и журналами из разных источников, а Kibana – это веб-приложение, используемое для визуализации данных который работает поверх Elsticsearch. Эта статья по установке ELK Stack на CentOS 7 должна пригодиться для любых других систем Linux VPS, но первоначально он был предназначен или, другими словами, написан и протестирован для виртуального частного сервера на базе CentOS. Задача установки ELK Stack на CentOS 7 должна быть простой, вам просто нужно выполнить шаги, которые приведены ниже, и работа будет выполнена менее чем за десять минут. Давайте начнем.
Первое, что вам нужно для успешного завершения этого учебника, – это root-доступ к серверу CentOS 7.
Объем журналов, которые вы хотите собрать, важен, поскольку количество CPU, RAM и хранилища, требуемое вашим ELK-сервером, зависит от них.
Для развертывания стека Elastic требуется Java. Он поддерживает как OpenJDK, так и Oracle Java. мы рекомендуем использовать Oracle JDK 1.8. Мы установим Java 8 из официального пакета Oracle rpm.
Java 8 JDK можно загрузить с помощью следующей команды wget.
wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http:%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u77-b02/jdk-8u171-linux-x64.rpm"
Следующим шагом будет установка с помощью этой команды rpm:
rpm -ivh jdk-8u171-linux-x64.rpm
На этом этапе вы должны проверить установку Java JDK.
java -version
если все будет установлено правильно, вы увидите следующий вывод:
java version "1.8.0_172" Java(TM) SE Runtime Environment (build 1.8.0_172-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.172-b11, mixed mode)
Настало время установить и настроить Elasticsearch. Мы будем использовать пакет rpm для этой установки, который предоставляется flexible.co, а затем мы настроим его для запуска на локальном хосте (все это означает, что мы сделали настройку безопасной и чтобы убедиться, что она не может быть достигнута из снаружи).
Вы должны добавить ключ elastic.co к серверу до установки Elasticsearch.
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
Затем вы должны использовать wget для загрузки Elasticsearch 6.2 и инициировать установку
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.rpm rpm -ivh elasticsearch-6.2.4.rpm
На этом этапе, когда Elasticsearch уже установлен, вам нужно перейти в каталог конфигурации и отредактировать файл конфигурации elasticsaerch.yml.
nano /etc/elasticsearch/elasticsearch.yml
Затем вы должны удалить комментарий в строке 40, чтобы включить блокировку памяти для Elasticsearch. Это отключает обмен памяти для Elasticsearch.
bootstrap.memory_lock: true
После этого вам нужно раскомментировать строки network.host и http.port в блоке «Network».
network.host: localhost http.port: 9200
Не забывайте сохранять файл, а затем вы можете выйти из редактора.
Затем вы должны отредактировать файл elasticsearch.service для настройки блокировки памяти.
vim /usr/lib/systemd/system/elasticsearch.service
Линия Uncomment LimitMEMLOCK.
LimitMEMLOCK=infinity
Опять же, не забудьте сохранить, а затем выйти.
Следующий шаг – отредактировать конфигурационный файл sysconfig для Elasticsearch.
nano /etc/sysconfig/elasticsearch
Теперь вам нужно раскомментировать строку 60 и убедиться, что значение «unlimited».
MAX_LOCKED_MEMORY=unlimited
Сохраните и выйдите.
Выполнение всех этих шагов означает, что вы закончили настройку Elasticsearch на CentOS 7. IP-адрес локального хоста на порту 9200 будет запускать Elasticsearch,
Прежде чем начать службу сначала, вы должны перезагрузить системы и включить Elasticsearch для запуска во время загрузки.
Systemctl daemon-reload systemctl enable elasticsearch systemctl start elasticsearch
Через несколько секунд начнется Elasticsearch, а затем вы должны проверить открытые порты на сервере и дважды проверить, что «state» для порта 9200 «LISTEN».
Когда вы достигнете этого момента, в списке перечислено следующее: установка и настройка Kibana с веб-сервером Nginx. Kibana будет прослушивать IP-адрес localhost, а Nginx действует как обратный прокси для приложения 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.
nano /etc/kibana/kibana.yml
Раскомментируйте строки конфигурации для server.port, server.host и elasticsearch.url.
server.port: 5601 server.host: "localhost" elasticsearch.url: "http://localhost: 9200"
Изменения должны быть сохранены, а затем вы можете выйти.
Запустите службу Kibana и установите ее для автоматического запуска при загрузке:
systemctl enable kibana systemctl start kibana
Вы закончили установку Kibana.
Следующее – установить Nginx и, конечно же, настроить его как обратный прокси для доступа к Kibana с общедоступного IP-адреса.
Nginx можно найти в репозитории Epel, установить epel-release с помощью yum.
yum install epel-release
Затем вам необходимо установить пакет Nginx и httpd-tools.
yum install nginx httpd-tools
Инструменты для веб-сервера содержатся в пакете httpd-tools, вы можете использовать базовую аутентификацию htpasswd для Kibana.
На этом этапе нам необходимо создать новый файл конфигурации виртуального хоста в каталоге conf.d.
nano /etc/nginx/conf.d/your_domain.com.conf
поэтому мы сможем добавить новую конфигурацию виртуального хоста. Вставьте конфигурацию ниже:
server { listen 80; server_name your_domain.com; 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; } }
Затем должен быть создан новый базовый файл аутентификации с помощью команды htpasswd.
sudo htpasswd -c /etc/nginx/htpasswd.kibana admin TYPE YOUR STRONG PASSWORD
Добавьте Nginx для запуска во время загрузки и запускайте Nginx.
systemctl enable nginx systemctl start nginx
На следующем шаге мы установили Logsatash и настроим его для централизации журналов сервера от клиентов с помощью filebeat, затем фильтруем и преобразуем данные Syslog и переместим их в stash (Elasticsearch).
Используйте rpm, чтобы загрузить Logstash и установить его.
wget https://artifacts.elastic.co/downloads/logstash/logstash-6.2.4.rpm rpm -ivh logstash-6.2.4.rpm
Когда установка Logstash завершена, запустите службу Logstash и установите ее для автоматического запуска при загрузке:
systemctl restart logstash systemctl enable logstash
Конфигурация Logstash зависит от ваших личных предпочтений и плагинов, которые вы будете использовать. Дополнительную информацию о настройке Logstash можно найти здесь.
Вот и все. Вы успешно установили стек ELK на CentOS 7 VPS.