Приклад використання Splunk дла аналізу логів

Splunk — це система зберігання та аналізу логів. Її принцип роботи можна описати так: є сервер Splunk, який зберігає, індексує та дозволяє аналізувати логи, і є робочі машини (сервери), які ці логи створюють і передають на сервер Splunk. Сервер Splunk в свою чергу може бути кластером з декількох фізичних машин, між якими розподіляється зберігання інформації, і які використовуються для її обробки за технологією MapReduce. Способів передавати логи з робочих машин дуже багато: через спеціальну програму forwarder, яка вміє швидко і ефективно відсилати зміни логів на сервер, через технології типу NFS / SMB, або SNMP, можна самостійно відсилати дані в Splunk по TCP / IP (наприклад, замість того , щоб писати в файл). Під Windows Splunk вміє брати дані з Windows Events, Performance Counters або Реєстру.

Для Splunk логи – це текстова інформація, розбита на рядки. В процесі індексування рядки логів розбиваються на поля, наприклад «ім’я = значення», хоча це можливо налаштувати. Далі за допомогою спеціальної мови запитів SPL можна працювати з цими полями: сортувати, агрегувати, створювати обчислювані поля, формувати таблиці, звертатися до зовнішніх словників, наприклад, з SQL-бази та будувати різноманітні графіки. SPL працює не тільки з поодинокими рядками, а й дозволяє групувати, “стискати” логічно в один рядок багаторядкові шматки.

Як заявляє сам Splunk, всі логи, що зберігаються в системі за будь-який час, є доступними для запитів, тобто немає поняття архівування. Звичайно, машина (машини), де діє Splunk повинна відповідно відображати обсяг інформації, що зберігається та обробляється.

Інтерфейс Splunk – веб орієнтований. Можна створювати панелі (dashboard’и), з яких формувати свій власний Splunk-додаток. У Splunk є магазин додатків (хоча більшість з них безкоштовні), де є безліч вже готових конфігурацій для аналізу популярних систем, наприклад, UNIX syslog, логи Apache, Microsoft Exchange та інші.

Програмний комплекс Splunk можна безкоштовно завантажити з офіційного сайту. Ліцензування відбувається на основі денного обсягу логів, що прокачуються через систему. Для ознайомлення є мінімальний безкоштовний обсягом, якого достатньо для освоєння системи.

Для швидкого ознайомлення ми рекомендуємо книгу Exploring Splunk від творців цього продукту. Ознайомившись з нею, ви отримаєте початкове розуміння, що можна робити в Splunk, суть мови запитів SPL та інше.

Ми хочемо показати реальний приклад, повторення якого займе півгодини. Для цього достатньо безкоштовно завантажити і встановити Splunk під вашу операційну систему. Фахівці нашої компанії можуть допомогти вам в цьому, за потреби.

А якщо хочете спробувати самостійно, можна просто слідувати таким інструкціям.

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

Це простий скрипт, який протягом хвилини буде записувати в лог повідомлення, що містять процентний показник (від 0 до 100%).

Лог буде виглядати приблизно ось так:

Мета — це створення dashboard (панель перегляду) в Splunk, яка б відображала процес виконання скрипту у формі гарного індикатора, беручи при цьому дані з лога.

Для простоти все буде виконуватись на одній машині, і Спланк буде брати лог просто із зазначеного файлу.

Після встановлення Splunk, при переході на сайт “http: // localhost: 8000”, Ви побачити робочу сторінку Splunk, де можна залогінитися як користувач «admin».

Далі в меню: «Manager -> Data Inputs -> Add data -> A file or directory or files». Тут вказується ім’я файлу або каталогу, де лежать логи (в даному випадку це буде одиничний файл).

Далі йде підтвердження створення так званого джерела логів (source type). Як було сказано, логи в Splunk можуть надходити різними шляхами. Кожне таке джерело логів проіменоване і може оброблятися незалежно.

Лог додано. Ми бачимо, що Splunk прив’язав файл і вже розібрав рядки на поля. Splunk розуміє величезну кількість форматів дати і часу, але це можна налаштувати.

Далі необхідно присвоїти ім’я джерелу логів – «test_logging», і потрібно зберегти налаштування.

На головній сторінці в рядку Search вводимо наш перший запит на мові SPL (в червоному):

sourcetype = «test_logging» | table progress as float

Тобто, необхідно взяти логи з джерела «test_logging», сформувати таблицю, в яку додати колонку зі значенням з поля «progress», одночасно перетворивши його в тип float. Внизу (в синьому) ви бачите результат виконання запиту (в логі вже є дані). У SPL працює принцип UNIX pipes (|), коли результат однієї операції передається на вхід наступного.

Тож, таблиця є. Тепер необхідно зробити її графічне представлення. Так як у нас всього лиш одне поле, яке показує відсоток виконання від 0 до 100, то, можна використовувати вид спідометра, стрілка якого буде демонструвати поточне значення. Натискаємо на «Formatting options» (в синьому) і обираємо тип елемента (Chart type) «radial gauge» (в червоному). З’являється ось такий спідометр.

Перший віджет готовий. Тепер для експерименту створимо ще один. Він теж буде показувати значення поля progress, але у вигляді горизонтального індикатора (progress bar), рухаючись зліва направо. Запит в цьому випадку буде таким:

sourcetype = «test_logging» | table _time progress | head 1

Що означає: за даними з джерела «test_logging» створити таблицю з двох полів, “_time” і “progress», з якої брати тільки перший рядок. Сортування за замовчуванням по полю “_time” по зменшенню. Внизу (в зеленому) ми бачимо результат цього запиту.

Далі натискаємо на «Formatting options», вибираємо тип «bar» (в зеленому), для осі Y задаємо інтервал від 0 до 100. Чомусь тут вісь X йде по вертикалі (там буде відображатися поле “_time”), а вісь Y по горизонталі (там буде відображатися поле «progress»). Так як запит на попередній картинки показував значення 100, то і наш горизонтальний індикатор повністю зафарбований

Це було пропущено для першого віджета, спідометра, але налагоджений запит і його візуальне уявлення можна зберегти у вигляді «Dashboard panel». Для це натискаємо на «Create» і «Dashboard panel …» (в червоному) і зберігаємо налаштування. Назвемо перший наш віджет «Speedometer», і другий «Progress bar».

При збереження першого віджета буде запропоновано також створити панель (dashboard), назвемо її «Test logging». При збереженні другого віджета додамо його вже створену панель.

Після створення панелі можна клікнути на «Dashboards & Views», обрати її по імені «Test logging». Зовнішній вигляд буде приблизно таким:

Поки даних немає, тому панелі порожні. Ми бачимо назву панелі (в червоному), назви віджетів (в жовтому), кнопку активації панелі (в зеленому) та кнопки «Edit» (в синьому), якою можна запросто підправити запит або візуальне оформлення. Перед запуском скрипту треба через кнопку «Edit» зайти в кожен з віджетів і з певними інтервалами часу поновлення в одну секунду: від «rt-1s» (real time – 1s), до «rt» (поточний час).

Отже, все! Затискаємо на «On» і запускаємо наш скрипт.

Відео, де показано як це працює:

https://www.youtube.com/watch?v=wPh7dm5brWg

ВИСНОВОК

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

Наша компанія недавно почала використовувати цей продукт і поки задоволені. Компанії типу British Telecom за допомогою Splunk обробляють гігабайти логів щодня.
На жаль, навіть у великих компаніях не завжди є бажання розробляти підсистему для обробки логів, так що Splunk може бути у нагоді.

Компанія МО Группа має в штаті досвідчених фахівців, що сертифіковані виробником, тож ми можемо надати весь перелік послуг пов’язаних з роботою зі Splunk. Починаючи з проведення презентації та налаштування пілотного проекту (це все безкоштовно), та закінчуючи впровадженням повноцінного рішення.

Стаття підготовлена за матеріалами закордонного друку

Об авторе: Alyona

оставьте ответ

Ваш электронный адрес не будет опубликован.