Підсистема журналювання подій
🌐 Цей документ доступний українською та англійською мовами. Використовуйте перемикач у правому верхньому куті, щоб змінити версію. |
1. Загальний опис
Підсистема, що забезпечує централізоване зберігання технічних журналів логування як компонентів платформи, так і реєстру в уніфікованому вигляді, повнотекстовий пошук по ним та побудову інформаційно-аналітичних представлень через спеціалізовані веб-інтерфейси.
2. Функції підсистеми
-
Збереження журналів подій застосунків Платформи.
-
Збереження журналів подій платформи оркестрації контейнерів OpenShift.
-
Обробка журналів подій та збереження їх до пошукового сервера.
-
Візуалізація даних журналів подій через вебінтерфейси.
3. Технічний дизайн підсистеми
Підсистема журналювання збирає інформацію про події з усього кластера, як платформні, так і реєстрові, та зберігає їх у спеціальному сховищі Elasticsearch
.
Для візуалізації даних використовується веб-інтерфейс Kibana
.
Підсистема журналювання подій агрегує такі типи журналів:
-
Реєстрові компоненти: журнали контейнерів, що складають собою реєстр.
-
Інфраструктура: журнали, створені контейнерами інфраструктури, які працюють на платформі оркестрації контейнерів OpenShift.
Інфраструктурні компоненти — це контейнери, які працюють у проєктах openshift*
,kube*
абоdefault
. -
Аудит віртуальних машин: журнали, створені
auditd
, системою аудиту віртуальних машин OpenShift, які зберігаються у файлі/var/log/audit/audit.log
, та аудиторські журнали Kubernetes APIServer та OpenShift APIServer.За замовчуванням, підсистема журналювання не зберігає журнали аудиту в сховищі Elasticsearch
. За потребою можливо налаштувати це, щоб, наприклад, переглядати їх уKibana
.
Компоненти підсистеми журналювання подій містить наступні основні компоненти:
-
Експортери — збирають, агрегують журнали з компонентів Платформи та реєстрів, форматують їх та пересилають до сховища журналів. Поточна реалізація —
Fluentd
. -
Сховище журналів — зберігає журнали компонентів. Поточна реалізація —
Elasticsearch
, що оптимізований для короткотривалого зберігання. -
Візуалізація — це інтерфейс користувача, що використовується для перегляду журналів та інформаційних панелей. Поточна реалізація -
Kibana
.
На даній діаграмі зображено компоненти, які входять в Підсистему журналювання подій та їх взаємодію з іншими підсистемами.
4. Складові підсистеми
Назва компоненти | Namespace | Deployment | Походження | Репозиторій | Призначення |
---|---|---|---|---|---|
Веб-інтерфейс перегляду журналу подій Платформи |
|
|
3rd-party |
Веб-інтерфейс для доступу, пошуку та відображення технічних журналів подій в Платформі. |
|
Сховище журналів Платформи |
|
|
3rd-party |
Виконує роль сховища журналів, де зберігаються всі зібрані експортерами дані. Elasticsearch дозволяє швидко та ефективно проводити пошук та аналіз агрегованих даних з журналів. |
|
Оператор підсистеми журналювання подій |
|
|
3rd-party |
Забезпечення налаштування, розгортання та обслуговування підсистеми журналювання подій в OpenShift. |
|
Оператор сховища журналів |
|
|
3rd-party |
Забезпечення налаштування, розгортання та обслуговування сховища журналів подій Elasticsearch в OpenShift. |
5. Інформаційні панелі Kibana
Наведені нижче інформаційні панелі встановлюються вручну за відповідними інструкціями для адміністраторів.
Інформаційна панель | Технічна назва | Призначення | Посилання |
---|---|---|---|
Інформаційна панель запитів |
|
Надає оглядову інформацію про роботу реєстру, зокрема статуси виконання зовнішніх запитів. |
Інформаційна панель: github:/epam/edp-ddm-logging/main/dashboards/kibana/request-dashboard.json Інструкція по налаштуванню: Візуалізація стану запитів у Kibana при роботі реєстру |
Інформаційна панель журналів подій |
|
Надає консолідовану інформацію з усіх зібраних журналів подій. |
github:/epam/edp-ddm-logging/main/dashboards/kibana/request-dashboard.json Інструкція по налаштуванню: Робота із журналами подій в інтерфейсі застосунку Kibana |
6. Технологічний стек
При проєктуванні та розробці підсистеми, були використані наступні технології:
7. Атрибути якості підсистеми
7.1. Scalability
Підсистема журналювання подій розгортнута в High Availability режимі з декількома екземплярами ключових компонентів, що дозволяє ефективно опрацьовувати журнали подій навіть при наявності великої кількості розгорнутих реєстрів на Платформі.
7.2. Performance
Підсистема журналювання подій забезпечує швидкий повнотекстовий пошук та аналіз даних з журналів подій завдяки оптимізованому сховищу Elasticsearch та пошуковому синтаксису Lucene.
7.3. Reliability
Підсистема журналювання подій може працювати надійно та продовжувати реєструвати події навіть при відмові в роботі окремих компонентів чи віртуальних машин.
7.4. Observability
Підсистема журналювання подій фіксує та надає детальну інформацію про події в Платформі з метою спрощення ідентифікації та розв’язання можливих збоїв та проблем адміністраторами Платформи при промисловій експлуатації Платформи.