Як встановити Elasticsearch 8 на Ubuntu 22.04

У сучасному цифровому ландшафті, який швидко розвивається, Elasticsearch 8.0 виступає в якості потужного інструменту для управління та аналізу величезних обсягів даних. Його значення в різних областях, від аналізу даних до пошукової оптимізації, важко переоцінити.

Elasticsearch 8.x пропонує набір функцій, які розширюють його функціональність:

  • Підвищена безпека: Покращені налаштування безпеки, що забезпечують захист даних.
  • Масштабованість: Легко масштабується для роботи з петабайтами структурованих і неструктурованих даних.
  • Швидкість: Забезпечує пошук і аналітику в режимі реального часу.
  • Гнучкість: Підтримка широкого спектра типів і структур даних.
  • Покращена спостережливість: Дозволяє отримати детальну інформацію про стан і продуктивність ваших кластерів.
  • Інтеграція машинного навчання: Забезпечує розширену аналітику і виявлення аномалій.

Переходячи до процесу встановлення, важливо розуміти, що потужні функції Elasticsearch 8.0 вимагають систематичного підходу, щоб забезпечити безпроблемну настройку на Ubuntu 22.04 або 20.04. У наступних розділах ви пройдете всі етапи, починаючи з підготовки системи і закінчуючи налаштуванням Elasticsearch для оптимальної продуктивності.

Імпорт репозиторію Elasticsearch 8 APT на Ubuntu 22.04 або 20.04

Оновлення системних пакетів Ubuntu

Почніть з оновлення системних пакетів Ubuntu, щоб переконатися, що всі компоненти актуальні. Виконайте команду:

sudo apt update && sudo apt upgrade

Ця команда оновлює списки пакетів і оновлює пакети до останніх версій, підтримуючи стабільність і безпеку системи.

Встановлення початкових пакетів для встановлення Elasticsearch 8.0

Щоб підготуватися до встановлення Elasticsearch 8.0, необхідно встановити деякі пакети. Встановіть ці необхідні пакети за допомогою команди:

sudo apt install dirmngr ca-certificates software-properties-common apt-transport-https lsb_release curl -y

Цей крок дуже важливий, оскільки він встановлює такі утиліти, як dirmngr і ca-certificates для управління зв’язками ключів, software-properties-common для роботи з сховищами програмного забезпечення, apt-transport-https для безпечного завантаження пакетів, lsb_release для отримання інформації про Linux Standard Base, а також curl для передачі даних.

Імпорт репозиторію Elasticsearch 8 APT

Оскільки Elasticsearch 8.0 недоступний у стандартному сховищі Ubuntu, необхідно імпортувати його з сховища Elasticsearch APT.

Додайте GPG-ключ Elasticsearch

Почніть з імпорту GPG-ключа для забезпечення цілісності та автентичності пакетів. Виконайте:

wget -q https://artifacts.elastic.co/GPG-KEY-elasticsearch -O- | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg

Ця команда завантажує GPG-ключ з офіційного сайту Elasticsearch і додає його до зв’язки ключів вашої системи, захищаючи майбутні завантаження з репозиторію.

Додавання сховища Elasticsearch 8.x APT

Після додавання GPG-ключа імпортуйте репозиторій Elasticsearch за допомогою команди:

echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list

Ця команда створює новий файл списку джерел для Elasticsearch, гарантуючи, що ваша система розпізнає і буде довіряти новому сховищу для наступних кроків встановлення.

Встановлення Elasticsearch 8 на Debian 12, 11 або 10

Оновлення індексного кешу APT після імпорту Elasticsearch 8

Оновити список сховищ

Після імпорту Elasticsearch 8 наступним кроком буде оновлення списку пакетів вашої системи. Це дасть змогу переконатися, що новодобавлене сховище Elasticsearch розпізнано вашою системою. Виконайте команду:

sudo apt update

Ця команда оновлює індексний кеш APT, даючи змогу встановити останню версію Elasticsearch, доступну в репозиторії.

Встановіть Elasticsearch

Після оновлення списку сховищ перейдіть до встановлення Elasticsearch, виконавши команду:

sudo apt install elasticsearch

Ця команда завантажує та встановлює Elasticsearch на вашу систему Debian. Вона гарантує, що у вас є остання стабільна версія Elasticsearch, що дуже важливо для підтримання оптимальної продуктивності та безпеки.

Налаштування та запуск служби Elasticsearch

Увімкнення та запуск служби

За замовчуванням Elasticsearch не запускається автоматично під час завантаження системи. Щоб налаштувати Elasticsearch на запуск під час завантаження і негайний запуск служби, використовуйте:служби Elasticsearch

sudo systemctl enable elasticsearch.service --now

Прапор –now у команді systemctl – це зручний спосіб як увімкнути службу під час завантаження, так і запустити її в поточному сеансі.

Перевірка стану служби

Щоб переконатися, що Elasticsearch працює правильно, перевірте його стан за допомогою команди systemctl:

systemctl status elasticsearch

Ця команда надає інформацію про стан служби Elasticsearch у режимі реального часу, гарантуючи, що вона активна і правильно функціонує у вашій системі Ubuntu.

Налаштування Elasticsearch 8 на Ubuntu 22.04 або 20.04

Розуміння директорій даних і конфігурації Elasticsearch

Каталог даних за замовчуванням

Для зберігання даних Elasticsearch використовує каталог /var/lib/elasticsearch. У цьому каталозі зберігаються проіндексовані дані та керується стан кластера.

Розташування файлів конфігурації

Файли конфігурації знаходяться в каталозі /etc/elasticsearch. Тут ви керуєте поведінкою Elasticsearch. Параметри запуску Java задаються в /etc/default/elasticsearch.

Конфігурації за замовчуванням добре підходять для роботи з одним сервером. Для кластерів зміни дозволяють встановлювати віддалені з’єднання.

sudo nano /etc/elasticsearch/elasticsearch.yml

Налаштування віддаленого доступу (опціонально)

Налаштування мережі в Elasticsearch

Налаштуйте мережеві параметри у файлі конфігурації, щоб дозволити з’єднання за межами localhost.

Відкрийте файл конфігурації за допомогою:

sudo nano /etc/elasticsearch/elasticsearch.yml

У розділі Network (Мережа) скасуйте відповідний рядок для мережевої прив’язки та встановіть бажану IP-адресу.

Загальні приклади конфігурації

Налаштування мережевого вузла

Щоб налаштувати внутрішню приватну IP-адресу:

network.host: [Internal Private IP]

Це налаштування необхідне для зв’язку між кластерами.

Налаштування імені кластера

Визначте ім’я кластера для ідентифікації:

cluster.name: my-cluster

Це ім’я допомагає в управлінні та моніторингу кластера.

Ідентифікація вузла

Задайте унікальне ім’я для кожного вузла:

node.name: node-1

Унікальні імена вузлів спрощують управління кластером.

Налаштування виявлення

Налаштуйте виявлення вузлів для формування кластера:

discovery.seed_hosts: ["host1", "host2"]

Ці параметри необхідні для того, щоб вузли могли виявляти один одного в кластері.

Розподіл пам’яті

Виділіть пам’ять для Elasticsearch:

-Xms1g
-Xmx1g

Ці налаштування у файлі /etc/default/elasticsearch контролюють розмір купи JVM, що дуже важливо для продуктивності.

Увімкнення CORS

Для веб-інструментів Elasticsearch:

http.cors.enabled: true
http.cors.allow-origin: "/.*/"

Налаштування CORS в elasticsearch.yml дозволяють взаємодіяти з веб-додатками.

Після внесення змін збережіть і вийдіть з редактора. Потім перезапустіть Elasticsearch, щоб застосувати нові конфігурації:

sudo systemctl restart elasticsearch

Перезапуск гарантує, що Elasticsearch працюватиме з оновленими налаштуваннями.

Налаштування UFW Firewall для Elasticsearch 8 на Ubuntu 22.04 або 20.04

Налаштування правил брандмауера для Elasticsearch

Дозвіл певних IP-адрес

Щоб дозволити віддалені підключення до Elasticsearch, необхідно налаштувати брандмауер так, щоб він дозволяв ці конкретні підключення. Використовуйте цю команду, щоб дозволити окрему IP-адресу:

sudo ufw allow from [IP Address] to any port 9200

Замініть [IP Address] на потрібну зовнішню IP-адресу. Це налаштування дозволяє трафіку з цієї адреси отримувати доступ до Elasticsearch через порт 9200, що дуже важливо для віддаленого доступу або взаємодії кластера.

Дозвіл діапазону IP-адрес

Якщо вам потрібно дозволити діапазон IP-адрес, змініть правило UFW відповідним чином:

sudo ufw allow from [IP Address Range] to any port 9200

Тут [Діапазон IP-адрес] може бути підмережею, що дає змогу кільком IP-адресам у цій підмережі отримати доступ до вашого екземпляра Elasticsearch.

Дозвіл усього трафіку на порт 9200

У деяких середовищах вам може знадобитися дозволити весь трафік на порт Elasticsearch. Будьте обережні з цією командою, оскільки вона відкриває порт 9200 для всього вхідного трафіку:

sudo ufw allow 9200

Ця команда зазвичай використовується в контрольованих середовищах або для початкового налаштування і тестування.

Обмеження доступу до локальної мережі

Для забезпечення додаткової безпеки, особливо у виробничих середовищах, обмежте доступ до локальної мережі. Ця команда дає змогу підключатися до Elasticsearch тільки через локальну мережу:

sudo ufw allow from 192.168.1.0/24 to any port 9200

Встановіть значення 192.168.1.0/24 відповідно до діапазону IP-адрес вашої локальної мережі. Це налаштування гарантує, що тільки пристрої у вашій локальній мережі можуть отримати доступ до Elasticsearch, додаючи рівень безпеки проти зовнішніх загроз.

Застосування правил брандмауера

Після налаштування правил активуйте їх, перезавантаживши UFW:

sudo ufw reload

Ця команда вводить нові правила, не перериваючи поточні з’єднання. Це дуже важливий крок для забезпечення захисту сервера Elasticsearch і дозволу необхідного трафіку.

Приклади команд з Elasticsearch 8 на Ubuntu 22.04 або 20.04

Видалення індексу в Elasticsearch

Щоб видалити індекс, наприклад ‘samples’, виконайте команду:

curl -X DELETE 'http://localhost:9200/samples'

Ця команда видаляє вказаний індекс і всі його дані, звільняючи ресурси.

Перегляд усіх індексів

Щоб переглянути всі індекси на сервері Elasticsearch, виконайте такі дії:

curl -X GET 'http://localhost:9200/_cat/indices?v'

Ця команда надає огляд усіх індексів, включно з їхнім станом і кількістю документів.

Виведення списку всіх документів в індексі

Щоб вивести список усіх документів в індексі, наприклад ‘sample’:се індекси на сервері Elasticsearch, виконайте такі дії:

curl -X GET 'http://localhost:9200/sample/_search'

Ця команда дає змогу швидко переглянути вміст індексу та відображає всі збережені документи.

Запит із параметрами URL

Для цілеспрямованого пошуку використовуйте синтаксис запитів Lucene. Наприклад, щоб знайти ‘Harvard’ у полі ‘school’:

curl -X GET http://localhost:9200/samples/_search?q=school:Harvard

Цей метод ефективний для простих запитів безпосередньо через URL.

Запит за допомогою JSON (Elasticsearch Query DSL)

Для складних запитів формат JSON зручніший для читання та керування:

curl -XGET --header 'Content-Type: application/json' http://localhost:9200/samples/_search -d '{
      "query" : {
        "match" : { "school": "Harvard" }
    }
}'

Цей формат дає змогу створювати складні структури запитів, що робить його ідеальним для розширеного пошуку.

Зіставлення індексів списків

Для розуміння структури індексу, наприклад ‘samples’:

curl -X GET http://localhost:9200/samples

Ця команда показує поля та їхні типи в індексі, що допомагає при складанні запиту.

Додавання даних в індекс

Щоб вставити дані в індекс, виконайте такі дії:

curl -XPUT --header 'Content-Type: application/json' http://localhost:9200/samples/_doc/1 -d '{
   "school" : "Harvard"			
}'

Ця команда додає документ в індекс ‘samples’, корисний для введення даних.

Оновлення документа

Щоб оновити наявний документ:

curl -XPUT --header 'Content-Type: application/json' http://localhost:9200/samples/_doc/2 -d '
{
    "school": "Clemson"
}'

curl -XPOST --header 'Content-Type: application/json' http://localhost:9200/samples/_doc/2/_update -d '{
"doc" : {
               "students": 50000}
}'

Ці команди спочатку створюють, а потім оновлюють документ в індексі ‘samples’, демонструючи, як змінювати дані.

Резервне копіювання індексу

Щоб створити резервну копію індексу:

curl -XPOST --header 'Content-Type: application/json' http://localhost:9200/_reindex -d '{
  "source": {
    "index": "samples"
  },
  "dest": {
    "index": "samples_backup"
  }
}'

Ця команда дублює індекс ‘samples’, створюючи індекс ‘samples_backup’, який дуже важливий для резервування даних.

Масове завантаження даних

Для масового завантаження даних:

export pwd="elastic:"

curl --user $pwd  -H 'Content-Type: application/x-ndjson' -XPOST 'https://58571402f5464923883e7be42a037917.eu-central-1.aws.cloud.es.io:9243/0/_bulk?pretty' --data-binary @<file>

Цей метод ефективно імпортує великі набори даних, використовуючи масовий API Elasticsearch.

Індикація стану кластера

Щоб перевірити стан кластера Elasticsearch:

curl --user $pwd -H 'Content-Type: application/json' -XGET https://58571402f5464923883e7be42a037917.eu-central-1.aws.cloud.es.io:9243/_cluster/health?pretty

Ця команда надає важливу інформацію про стан кластера, включно зі станом вузлів і балансом даних.

Агрегація та агрегація відер

Для аналітичних цілей, наприклад для підрахунку відвідувань веб-сайтів за містами користувачів:

curl -XGET --user $pwd --header 'Content-Type: application/json'  https://58571402f5464923883e7be42a037917.eu-central-1.aws.cloud.es.io:9243/logstash/_search?pretty -d '{
        "aggs": {
             "cityName": {
                    "terms": {
                     "field": "geoip.city_name.keyword",
                                "size": 50

        }
   }
  }
}'

А також більш докладні відомості, наприклад, коди відповідей за містами:

curl -XGET --user $pwd --header 'Content-Type: application/json'  https://58571402f5464923883e7be42a037917.eu-central-1.aws.cloud.es.io:9243/logstash/_search?pretty -d '{
        "aggs": {
          "city": {
                "terms": {
                        "field": "geoip.city_name.keyword"
                },
        "aggs": {
          "responses": {
                "terms": {
                     "field": "response"
                 }
           }
         }
      },
      "responses": {
                "terms": {
                     "field": "response"
                 }
        }
   }
}'

Ці приклади показують, як використовувати можливості агрегації Elasticsearch для повноцінного аналізу даних.

Використання Elasticsearch з базовою аутентифікацією

Для безпечного налаштування Elasticsearch аутентифікуйте кожну команду curl:

curl -X GET 'http://localhost:9200/_cat/indices?v' -u elastic:(password)

Це гарантує, що тільки авторизовані користувачі зможуть отримати доступ до даних Elasticsearch.

Гарний друк

Покращує читабельність виведення JSON:

curl -X GET 'http://localhost:9200/(index)/_search'?pretty=true

Додавання ?pretty=true форматує відповідь JSON для зручнішого аналізу.

Запит певних полів

Щоб повернути тільки певні поля, вкажіть їх у масиві _source:

GET filebeat-7.6.2-2020.05.05-000001/_search
 {
    "_source": ["suricata.eve.timestamp","source.geo.region_name","event.created"],
    "query":      {
        "match" : { "source.geo.country_iso_code": "GR" }
    }
}

Такий підхід фокусує результати пошуку на певних полях, спрощуючи пошук даних.

Запит за датою

Для запитів, заснованих на даті:

GET filebeat-7.6.2-2020.05.05-000001/_search
 {
    "query": {
        "range" : {
            "event.created": {
                "gte" : "now-7d/d"
            }
        }
}
}

Використовуйте математику дат для фільтрації документів у певному часовому інтервалі, що дуже важливо для аналізу даних, чутливих до часу.

Управління Elasticsearch 8 на Ubuntu 22.04 або 20.04

Деінсталяція Elasticsearch 8

Видалення програмного забезпечення Elasticsearch

У тих випадках, коли Elasticsearch більше не потрібен, його можна ефективно видалити. Щоб видалити Elasticsearch з вашої системи, використовуйте:

sudo apt remove elasticsearch

Ця команда не тільки видаляє Elasticsearch, а й видаляє всі пакети, які були встановлені разом з ним і більше не потрібні, забезпечуючи чисте видалення.

Видалення сховища APT

Після видалення програми важливо видалити сховище Elasticsearch зі списку джерел вашої системи. Виконайте:

sudo rm /etc/apt/sources.list.d/elastic-8.x.list

Ця команда видаляє файл конфігурації сховища Elasticsearch, запобігаючи доступу системи до застарілих або непотрібних пакетів Elasticsearch під час наступних оновлень або встановлень.

Висновок

У цьому посібнику ми розглянули основні моменти управління Elasticsearch 8 на Ubuntu 22.04 або 20.04, від встановлення та налаштування до розширених запитів і безпечної роботи з даними. Пам’ятайте, що регулярні оновлення та правильне налаштування – це ключ до використання всього потенціалу Elasticsearch. Не соромтеся перечитувати кроки для вирішення таких завдань, як резервне копіювання даних або оптимізація запитів, оскільки вони мають вирішальне значення для підтримки надійного та ефективного середовища Elasticsearch.

Поділіться своєю любов'ю

Залишити відповідь

0 комментариев
Вбудовані Відгуки
Переглянути всі коментарі
0
Ми любимо ваші думки, будь ласка, прокоментуйте.x