Моніторинг та аналіз журналів для різних інфраструктур у режимі реального часу може бути дуже нудною роботою. При роботі з такими послугами, як веб-сервери, які постійно реєструють дані, процес може бути дуже складним і майже неможливим.
Як таке, знання того, як використовувати інструменти для моніторингу, візуалізації та аналізу журналів у режимі реального часу, може допомогти вам відстежувати та усувати проблеми та відстежувати підозрілі системні дії.
Цей підручник обговорить, як можна використовувати одну з найкращих колекцій журналів у реальному часі та інструменти аналізу - ELK. Використовуючи ELK, широко відомий як Elasticsearch, Logstash і Kibana, ви можете збирати, реєструвати та аналізувати дані з веб-сервера apache в режимі реального часу.
Що таке ELK Stack?
ELK - це скорочення, що використовується для позначення трьох основних інструментів з відкритим кодом: Elasticsearch, Logstash та Kibana.
Еластичний пошук - це інструмент з відкритим кодом, розроблений для пошуку збігів у великій колекції наборів даних, використовуючи вибір мов та типів запитів. Це легкий та швидкий інструмент, що дозволяє легко обробляти терабайти даних.
Logstash engine - це зв’язок між стороною сервера та Elasticsearch, що дозволяє збирати дані з вибраних джерел до Elasticsearch. Він пропонує потужні API, які легко інтегруються з програмами, розробленими на різних мовах програмування.
Кібана є останньою частиною стеку ELK. Це інструмент візуалізації даних, який дозволяє візуально аналізувати дані та створювати глибокі звіти. Він також пропонує графіки та анімацію, які можуть допомогти вам взаємодіяти з вашими даними.
Стек ELK дуже потужний і може робити неймовірні аналітичні дані.
Хоча різні концепції, які ми обговоримо в цьому посібнику, дадуть вам гарне розуміння стеку ELK, розгляньте документацію для отримання додаткової інформації.
Еластичний пошук: https: // linkfy.до / Elasticsearch-Reference
Logstash: https: // linkfy.до / LogstashReference
Кібана: https: // linkfy.до / KibanaGuide
Як встановити Apache?
Перш ніж ми почнемо встановлювати Apache та всі залежності, варто відзначити кілька речей.
Ми протестували цей підручник на Debian 10.6, але він також буде працювати з іншими дистрибутивами Linux.
Залежно від конфігурації вашої системи, вам потрібні дозволи sudo або root.
Сумісність та зручність використання стеку ELK можуть відрізнятися залежно від версій.
Перший крок - це забезпечити повне оновлення вашої системи:
sudo apt-get updatesudo apt-get upgrade
Наступною командою є встановлення веб-сервера apache2. Якщо ви хочете встановити мінімальний апаш, видаліть документацію та утиліти з команди нижче.
sudo apt-get встановити apache2 apache2-utils apache2-doc -yзапуску служби sudo apache2
На сьогоднішній день у вас повинен працювати сервер Apache.
Як встановити Elasticsearch, Logstash та Kibana?
Тепер нам потрібно встановити стек ELK. Ми встановлюватимемо кожен інструмент окремо.
Еластичний пошук
Почнемо з установки Elasticsearch. Ми будемо використовувати apt для його встановлення, але ви можете отримати стабільний випуск на офіційній сторінці завантаження тут:
https: // www.еластичний.co / downloads / elasticsearch
Elasticsearch вимагає запуску Java. На щастя, остання версія поставляється в комплекті з пакетом OpenJDK, усуваючи клопоти з його встановленням вручну. Якщо вам потрібно виконати ручну установку, зверніться до такого ресурсу:
https: // www.еластичний.co / guide / en / elasticsearch / reference / current / setup.html # jvm-версія
На наступному кроці нам потрібно завантажити та встановити офіційний ключ підписання Elastic APT за допомогою команди:
wget -qO - https: // артефакти.еластичний.co / GPG-KEY-elasticsearch | sudo apt-key add -
Перш ніж продовжити, вам може знадобитися пакет apt-transport-https (необхідний для пакетів, що обслуговуються через https), перш ніж продовжувати встановлення.
sudo apt-get install apt-transport-httpsТепер додайте інформацію про репо-репо до джерел.список.d файл.
echo “deb https: // артефакти.еластичний.co / пакети / 7.x / apt стабільний основний ”| sudo tee / etc / apt / sources.список.г / еластична-7.х.список
Потім оновіть список пакетів у вашій системі.
sudo apt-get updateВстановіть Elasticsearch, використовуючи команду нижче:
sudo apt-get встановити еластичний пошукВстановивши Elasticsearch, запустіть і ввімкніть запуск під час завантаження за допомогою команд systemctl:
sudo systemctl daemon-reloadsudo systemctl увімкнути еластичний пошук.обслуговування
sudo systemctl почати еластичний пошук
Початок служби може зайняти деякий час. Зачекайте кілька хвилин і переконайтеся, що служба запущена і працює за допомогою команди:
sudo systemctl статус еластичний пошук.обслуговуванняЗа допомогою cURL перевірте, чи доступний API Elasticsearch, як показано у виведенні JSON нижче:
curl -X GET "localhost: 9200 /?гарненький ""name": "debian",
"cluster_name": "elasticsearch",
"cluster_uuid": "VZHcuTUqSsKO1ryHqMDWsg",
"версія":
"число": "7.10.1 ",
"build_flavor": "за замовчуванням",
"build_type": "deb",
"build_hash": "1c34507e66d7db1211f66f3513706fdf548736aa",
"build_date": "2020-12-05T01: 00: 33.671820Z ",
"build_snapshot": false,
"lucene_version": "8.7.0 ",
"minimum_wire_compatibility_version": "6.8.0 ",
"minimum_index_compatibility_version": "6.0.0-бета1 "
,
“Tagline”: “Ви знаєте, для пошуку”
Як встановити Logstash?
Встановіть пакет logstash за допомогою команди:
sudo apt-get встановити logstashЯк встановити Kibana?
Введіть команду нижче, щоб встановити kibana:
sudo apt-get встановити kibana - -Як налаштувати Elasticsearch, Logstash та Kibana?
Ось як налаштувати стек ELK:
Як налаштувати Elasticsearch?
В Elasticsearch дані впорядковуються в індекси. Кожен із цих індексів має один або кілька осколків. Осколок - це автономна пошукова система, яка використовується для обробки та управління індексами та запитами для підмножини в кластері в межах Elasticsearch. Осколок працює як екземпляр індексу люцену.
Інсталяція Elasticsearch за замовчуванням створює п’ять осколків і одну репліку для кожного індексу. Це хороший механізм на виробництві. Однак у цьому посібнику ми будемо працювати з одним осколком і без копій.
Почніть із створення шаблону індексу у форматі JSON. У файлі ми встановимо кількість осколків на одиницю і нуль реплік для відповідності імен індексів (цілі розробки).
У Elasticsearch шаблон індексу стосується того, як ви інструктуєте Elasticsearch у налаштуванні індексу під час процесу створення.
Усередині файлу шаблону json (index_template.json), введіть наступні інструкції:
"шаблон": "*",
"налаштування":
"індекс":
"number_of_shards": 1,
"number_of_replicas": 0
За допомогою cURL застосуйте до шаблону конфігурацію json, яка буде застосована до всіх створених індексів.
curl -X PUT http: // localhost: 9200 / _template / defaults -H 'Content-Type: application / json' -d @index_template.json"визнано": true
Після подання заявки Elasticsearch відповість визнаним: true твердженням.
Як налаштувати Logstash?
Щоб Logstash збирав журнали з Apache, ми повинні налаштувати його, щоб спостерігати за будь-якими змінами в журналах, збираючи, обробляючи, а потім зберігаючи журнали в Elasticsearch. Щоб це сталося, вам потрібно встановити шлях журналу збору в Logstash.
Почніть із створення конфігурації Logstash у файлі / etc / logstash / conf.г / апач.конф
введенняфайл
path => '/ var / www / * / logs / access.журнал
type => "apache"
фільтр
grok
match => "message" => "% COMBINEDAPACHELOG"
вихід
еластичний пошук
Тепер переконайтеся, що увімкнено та запущено службу logstash.
sudo systemctl увімкнути logstash.обслуговуванняsudo systemctl запустити logstash.обслуговування
Як увімкнути та налаштувати Kibana?
Щоб увімкнути Kibana, відредагуйте головну .конфігураційний файл yml, розташований у / etc / kibana / kibana.yml. Знайдіть наступні записи та прокоментуйте їх. Закінчивши, використовуйте systemctl для запуску послуги Kibana.
сервер.порт: 5601сервер.ведучий: "localhost"
sudo systemctl увімкнути kibana - -.сервіс && sudo systemctl start kibana.обслуговування
Kibana створює шаблони індексів на основі оброблених даних. Отже, вам потрібно збирати журнали за допомогою Logstash і зберігати їх у Elasticsearch, який Кібана може використовувати. Використовуйте curl для створення журналів з Apache.
Отримавши журнали від Apache, запустіть Kibana у своєму браузері за адресою http: // localhost: 5601, яка відкриє сторінку індексу Kibana.
В основному, вам потрібно налаштувати шаблон індексу, що використовується Kibana для пошуку журналів та створення звітів. За замовчуванням Kibana використовує шаблон індексу logstash *, який відповідає всім індексам за замовчуванням, сформованим Logstash.
Якщо у вас немає жодної конфігурації, натисніть кнопку створити, щоб розпочати перегляд журналів.
Як переглянути журнали Kibana?
Поки ви продовжуєте виконувати запити Apache, Logstash буде збирати журнали та додавати їх до Elasticsearch. Ви можете переглянути ці журнали в Кібані, натиснувши опцію "Відкрити" в меню ліворуч.
Вкладка Discover дозволяє переглядати журнали, коли їх генерує сервер. Щоб переглянути деталі журналу, просто натисніть спадне меню.
Прочитайте та зрозумійте дані з журналів Apache.
Як шукати журнали?
В інтерфейсі Kibana ви знайдете рядок пошуку, який дозволяє шукати дані за допомогою рядків запитів.
Приклад: статус: активний
Дізнайтеся більше про рядки запитів ELK тут:
https: // www.еластичний.co / guide / en / elasticsearch / reference / 5.5 / query-dsl-query-string-query.html # query-string-syntax
Оскільки ми маємо справу з журналами Apache, одним із можливих збігів є код стану. Отже, пошук:
відповідь: 200Цей код буде шукати журнали з кодом статусу 200 (OK) і відображатиме їх на Kibana.
Як візуалізувати журнали?
Ви можете створити візуальні інформаційні панелі в Кібані, вибравши вкладку Візуалізація. Виберіть тип інформаційної панелі, яку потрібно створити, і виберіть індекс пошуку. Ви можете використовувати за замовчуванням для тестування.
Висновок
У цьому посібнику ми обговорили огляд того, як використовувати стек ELK для управління журналами. Однак у цих статтях є багато іншого, що може охопити ця стаття. Ми рекомендуємо досліджувати самостійно.