С ухо­дом из Рос­сии ряда круп­ных вен­доров, вклю­чая Splunk, воз­ника­ет воп­рос: мож­но ли опи­рать­ся на опен­сор­сные решения для сбо­ра и ана­лиза логов? В этой статье мы озна­комим­ся с одним из луч­ших вари­антов — Graylog. Крат­ко рас­смот­рим воз­можнос­ти этой сис­темы, что­бы понять, под­ходит ли она для биз­нес‑задач.

Варианты

  • Datadog — плат­форма монито­рин­га как сер­вис (SaaS) для облачных при­ложе­ний. Объ­еди­няет мет­рики, логи, трей­синг (APM), монито­ринг поль­зователь­ских сис­тем (RUM) в одной плат­форме. Очень популяр­на сре­ди раз­работ­чиков.
  • Dynatrace — прод­винутый AI-powered-монито­ринг все­го сте­ка при­ложе­ний и инфраструк­туры. Исполь­зует авто­мати­чес­кое и глу­бокое обна­руже­ние зависи­мос­тей, искусс­твен­ный интеллект для ана­лиза событий (Davis AI), име­ет высокую сте­пень авто­мати­зации.
  • New Relic — плат­форма для наб­людения за про­изво­дитель­ностью при­ложе­ний (APM) в режиме SaaS. Силь­ный инс­тру­мент для раз­работ­чиков, поз­воля­ющий про­водить глу­бокий ана­лиз работы кода, а так­же монито­ринг бра­узе­ров и мобиль­ных при­ложе­ний.
  • SolarWinds Orion Platform — про­дук­ты для монито­рин­га сетей (NPM), сер­веров и при­ложе­ний (SAM). Пре­дос­тавля­ют гиб­кие и нас­тра­иваемые даш­борды, мощ­ные отче­ты и хорошие воз­можнос­ти для инже­неров (недос­тупно в РФ).
  • PRTG Network Monitor — уни­вер­саль­ный монито­ринг для сетей, сер­веров и при­ложе­ний. Очень прост в уста­нов­ке и нас­трой­ке, бес­пла­тен до 100 сен­соров. Работа­ет исклю­читель­но на Windows. Дос­тупен тес­товый дос­туп на 30 дней.
  • ManageEngine OpManager — монито­ринг сети и сер­веров. Хорошо интегри­рует­ся с дру­гими про­дук­тами ManageEngine для управле­ния IT-инфраструк­турой. Так­же дос­тупен тес­товый пери­од на 30 дней.

Кро­ме того, есть спе­циали­зиро­ван­ные решения для логов и трас­сиров­ки, так­же при­веду неболь­шой спи­сок.

  • Elastic Stack (ELK Stack) — по фак­ту явля­ется ком­бинаци­ей Elasticsearch (для поис­ка и хра­нения), Logstash/Kafka (обра­бот­ка), Kibana (визу­али­зация резуль­татов). Бес­пла­тен с базовой лицен­зией. Мож­но рас­смат­ривать как стан­дарт для ана­лиза и визу­али­зации логов. Доволь­но мощ­ный и гиб­кий.
  • Splunk — ком­мерчес­кая плат­форма для ана­лиза машин­ных дан­ных (логи, мет­рики, трас­сиров­ка). Есть бес­плат­ная вер­сия с огра­ниче­нием в 500 Мбайт дан­ных в день. Сре­ди дос­тоинств — неверо­ятно мощ­ный язык зап­росов SPL и высокая про­изво­дитель­ность. Недос­тупна из РФ.
  • Jaeger — рас­пре­делен­ная трас­сиров­ка для мик­росер­висных архи­тек­тур (open source, от Cloud Native Computing Foundation). Jaeger помога­ет отсле­живать зап­росы, про­ходя­щие через мно­жес­тво сер­висов, и находить узкие мес­та.

И тут воз­ника­ет один из самых глав­ных воп­росов: как же выб­рать необ­ходимый инс­тру­мент?

  • Для стар­та впол­не подой­дет Zabbix, Prometheus + Grafana, PRTG (бес­плат­но до 100 сен­соров).
  • Для облачных и мик­росер­висных при­ложе­ний опти­маль­ным может быть Prometheus + Grafana, Datadog, Dynatrace.
  • Для сетево­го монито­рин­га мож­но пред­ложить LibreNMS, Zabbix, PRTG.

В репози­тори­ях рос­сий­ско­го дис­три­бути­ва РЕД ОС дос­тупно решение Graylog, и это, на мой взгляд, хорошая и мощ­ная сис­тема цен­тра­лизо­ван­ного сбо­ра, ана­лиза и хра­нения логов. Она поз­воля­ет собирать и сра­зу ана­лизи­ровать боль­шие объ­емы жур­налов и сооб­щений от раз­ных при­ложе­ний, сер­веров и сетевых устрой­ств. Graylog помога­ет опе­ратив­но выяв­лять проб­лемы, отсле­живать инци­ден­ты информа­цион­ной безопас­ности, монито­рить про­изво­дитель­ность инфраструк­туры и про­водить деталь­ное рас­сле­дова­ние про­исшес­твий.

Ос­новные воз­можнос­ти Graylog:

  1. Сбор логов: под­держи­вает­ся сбор логов через Syslog, TCP, UDP, HTTP, Kafka и дру­гие про­токо­лы и фор­маты.
  2. Ана­лиз и филь­тра­ция: есть мощ­ный механизм филь­тра­ции и поис­ка по соб­ранным дан­ным.
  3. Ви­зуали­зация: инс­тру­мен­ты визу­али­зации дан­ных, такие как гра­фики и диаг­раммы.
  4. Алер­тинг: воз­можность нас­тра­ивать уве­дом­ления и алер­ты при воз­никно­вении опре­делен­ных усло­вий.
  5. Мас­шта­биру­емость: Graylog может мас­шта­биро­вать­ся горизон­таль­но, под­держи­вая работу боль­ших рас­пре­делен­ных инфраструк­тур.
  6. Под­дер­жка мно­жес­тва плат­форм: сис­тема сов­мести­ма с Linux, Windows, Docker и Kubernetes.

Graylog тре­бует уста­нов­ки и нас­трой­ки нес­коль­ких ком­понен­тов для пол­ноцен­ной работы.

  1. Java 17 — обес­печива­ет сов­мести­мость и ста­биль­ность работы Graylog (рекомен­дует­ся исполь­зовать пос­леднюю ста­биль­ную вер­сию для обес­печения безопас­ности и про­изво­дитель­нос­ти).
  2. MongoDB — база дан­ных, которая исполь­зует­ся в Graylog для хра­нения кон­фигура­цион­ных дан­ных и метадан­ных.
  3. OpenSearch — поис­ковая и ана­лити­чес­кая сис­тема, которая поз­воля­ет обра­баты­вать боль­шие объ­емы дан­ных, пре­дос­тавляя обширные воз­можнос­ти для поис­ка и ана­лиза логов.
  4. Сер­вер Graylog — основной ком­понент, который собира­ет, обра­баты­вает и визу­али­зиру­ет логи.

Каж­дый из ком­понен­тов игра­ет свою роль в общей сис­теме управле­ния логами. Graylog активно исполь­зуют в ком­пани­ях раз­ного мас­шта­ба для монито­рин­га ИТ‑инфраструк­туры, выяв­ления уяз­вимос­тей и улуч­шения про­цес­сов DevOps.

Я рас­смот­рю сбор логов на осно­ве неболь­шой домаш­ней лабора­тории. Вот что в ней исполь­зует­ся:

  1. Опе­раци­онные сис­темы: РЕД ОС 8.0 (Linux), Windows.
  2. Плат­формы: x86-64, ARM (Raspberry Pi 4/5). Да, Graylog успешно работа­ет на ARM, что рас­ширя­ет воз­можнос­ти раз­верты­вания.
  3. Яд­ро сис­темы сбо­ра и ана­лиза логов: Graylog 5.2.
  4. Ба­за дан­ных: MongoDB. Исполь­зует­ся Graylog для хра­нения нас­тро­ек и метадан­ных.
  5. По­иско­вый и ана­лити­чес­кий дви­жок: OpenSearch. Обес­печива­ет индекса­цию, хра­нение и быс­трый поиск по логам.

Средс­тва сбо­ра логов на кли­ентах:

  1. В Linux: стан­дар­тный демон auditd для ауди­та событий безопас­ности и rsyslog для пересыл­ки сис­темных логов.
  2. В Windows: Sysmon для деталь­ного монито­рин­га сис­темы и Winlogbeat как надеж­ный агент для дос­тавки событий из жур­налов Windows.
  3. Про­токо­лы переда­чи дан­ных: TCP (для надеж­ной дос­тавки событий от Winlogbeat) и UDP (для менее кри­тич­ных сис­темных логов с Linux-хос­тов).
 

Архитектура и требования

У меня соб­рана неболь­шая инфраструк­тура, которая вклю­чает в себя раз­личные устрой­ства.

Схе­ма такова: интернет при­ходит от про­вай­дера сети, далее к роуте­ру под­клю­чен свитч, на который ском­мутиро­ваны тес­товые устрой­ства, из них два — на Windows, осталь­ные — на оте­чес­твен­ном дис­три­бути­ве РЕД ОС, который прек­расно себя чувс­тву­ет на ARM. В моей тес­товой домаш­ней лабора­тории пять устрой­ств на x86-64, осталь­ные — это Raspberry Pi 4 и 5.

Я не буду оста­нав­ливать­ся на деталях уста­нов­ки опе­раци­онной сис­темы, а перей­ду непос­редс­твен­но к основно­му матери­алу.

Итак, в нашей опыт­ной инфраструк­туре необ­ходимо уста­новить сер­вер сбо­ра событий монито­рин­га Graylog и орга­низо­вать отправ­ку событий аген­тов на это устрой­ство.

 

Необходимые компоненты

На офи­циаль­ной стра­нице докумен­тации РЕД ОС, пос­вящен­ной Graylog, ука­заны сис­темные тре­бова­ния, а так­же дана под­робная инс­трук­ция по уста­нов­ке. Мы пов­торим все эти шаги.

Для кор­рек­тной работы Graylog нам нуж­но уста­новить ком­понен­ты, пред­став­ленные на схе­ме. Все коман­ды выпол­няем от sudo или в сеан­се root.

 

Java 17

Для уста­нов­ки в тер­минале выпол­няем коман­ду

dnf install java-17-openjdk

Ес­ли уста­нов­лено нес­коль­ко вер­сий, пос­ле уста­нов­ки выбира­ем под­ходящую.

Нам нуж­на вер­сия 17. Воз­можность работы с дру­гими вер­сиями Java в докумен­тации не упо­мяну­та.

 

MongoDB

Ал­горитм уста­нов­ки базы дан­ных сле­дующий.

Ус­танав­лива­ем MongoDB:

dnf install mongodb-org

Пе­резаг­ружа­ем нас­трой­ки сис­темных служб:

systemctl daemon-reload

До­бав­ляем служ­бу mongod в авто­заг­рузку:

systemctl enable mongod --now

Про­веря­ем ста­тус служ­бы mongod:

systemctl status mongod

В ста­тусе дол­жно отоб­ражать­ся active (running).

 

OpenSearch

Для уста­нов­ки OpenSearch необ­ходимо задать собс­твен­ный пароль адми­нис­тра­тора, что­бы нас­тро­ить демонс­тра­цион­ную кон­фигура­цию безопас­ности.

env OPENSEARCH_INITIAL_ADMIN_PASSWORD=<сюда записываем пароль> dnf install opensearch

Продолжение доступно только участникам

Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».

Присоединяйся к сообществу «Xakep.ru»!

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    2 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии