ELK означает Elasticsearch, Logstash и Kibana и является надежным решением анализа и визуализации данных для поиска с открытым исходным кодом. Elasticsearch является распределенным, поиск RESTful и аналитика на основе Lucene, Logstash является обработкой данных pipeline для управления событиями и журналами и Kibana это веб — приложение для визуализации данных в Elasticsearch. Эта установка ELK Stack должна работать на других системах Linux VPS так же хорошо, но была проверена и написана для Ubuntu 16.04 VPS.
Для этой статьи необходимо несколько требований:
sudo apt update && apt -y upgrade sudo apt install apt-transport-https software-properties-common wget
Убедитесь в том, что вы всегда обновляете программное обеспечение на Linux VPS или настройте автоматическое обновление.
Мы будем использовать репозиторий PPA, поддерживаемый Webupd8 Team. Скрипт установки попросит вас принять лицензионное соглашение и оно скачает архивный файл Java со страницы загрузки Oracle и настроить все для вас.
Чтобы добавить репозиторий Webupd8 Team PPA, выполните следующие команды на сервере:
sudo add-apt-repository ppa:webupd8team/java sudo apt update
Теперь вы можете установить JDK8 с помощью следующей команды:
sudo apt install oracle-java8-installer
Для того, чтобы проверить, что все правильно, выполните команду:
java -version
и вы должны увидеть что-то вроде следующего:
java version "1.8.0_131" Java(TM) SE Runtime Environment (build 1.8.0_131-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
Мы будем устанавливать Elasticsearch с помощью менеджера пакетов из хранилища Elastic.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list sudo apt update sudo apt install elasticsearch
После завершения установки откройте файл elasticsearch.yml
и ограничьте удаленный доступ к экземпляру Elasticsearch:
sudo nano /etc/elasticsearch/elasticsearch.yml
network.host: localhost
Запустите службу Elasticsearch и установите ее на автоматический запуск при загрузке:
sudo systemctl restart elasticsearch sudo systemctl enable elasticsearch
Так же Elasticsearch мы установим Kibana с помощью менеджера пакетов из хранилища Elastic.
sudo apt install kibana
После завершения установки откройте файл kibana.yml
и ограничьте удаленный доступ к экземпляру Kibana:
sudo nano /etc/kibana/kibana.yml server.host: "localhost"
Start the Elasticsearch service and set it to start automatically on boot:
sudo systemctl restart kibana sudo systemctl enable kibana
Kibana теперь будет работать на локальном хосте на порту 5601
Мы будем использовать Nginx в качестве обратного прокси-сервера для доступа Kibana из IP-адрес. Чтобы установить Nginx, выполните следующую команду:
sudo apt-get install nginx
Создание базового файла аутентификации с помощью команды OpenSSL:
echo "admin:$(openssl passwd -apr1 YourStrongPassword)" | sudo tee -a /etc/nginx/htpasswd.kibana
Примечание: всегда используйте надежный пароль.
Создание самозаверяющих сертификатов SSL:
Удалите виртуальный хост Nginx по умолчанию:
sudo rm /etc/nginx/sites-enabled/default
и создайте виртуальный файл конфигурации хоста для нашего экземпляра Kibana:
sudo nano /etc/nginx/sites-available/kibana
server { listen 80 default_server; server_name _; return 301 https://$server_name$request_uri; } server { listen 443 default_server ssl http2; server_name _; ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem; ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key; ssl_session_cache shared:SSL:10m; 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; } }
Активируйте блок сервера, создав символическую ссылку:
sudo ln -s /etc/nginx/sites-available/kibana /etc/nginx/sites-enabled/kibana
Проверка конфигурации Nginx и перезапуск Nginx:
sudo nginx -t sudo service nginx restart
Последним шагом является установка Logstash с помощью менеджера пакетов из хранилища Elastic.
sudo apt install logstash
Конфигурация Logstash зависит от ваших личных предпочтений и плагинов, которые вы будете использовать. Вы можете найти более подробную информацию о том, как настроить Logstash, здесь: https://www.elastic.co/guide/en/logstash/current/configuration.html.