Splunk — это система хранения и анализа журналов.
В двух словах принцип работы можно описать так: есть сервер Splunk, который хранит, индексирует и позволяет анализировать логи, и есть рабочие машины (серверы), которые эти логи создают и передают на сервер Splunk. Сервер Splunk, в свою очередь, может представлять собой кластер из нескольких физических машин, между которыми распределено хранилище информации и которые используются для ее обработки с помощью технологии MapReduce. Способов передачи логов с рабочих машин очень много: через специальную программу-форвардер, способную быстро и эффективно отправлять изменения логов на сервер, через такие технологии, как NFS/SMB или SNMP, можно самостоятельно отправлять данные в Splunk через TCP/IP (например, вместо записи в файл).
В Windows Splunk может получать данные из событий Windows, счетчиков производительности или реестра.
В Splunk журналы представляют собой текстовую информацию, разделенную на строки.
В процессе индексации строки журнала делятся на поля, например «имя=значение», хотя это можно настроить.
Затем с помощью специального языка запросов SPL можно работать с этими полями: сортировать, агрегировать, создавать вычисляемые поля, создавать таблицы, обращаться к внешним словарям, например, из базы данных SQL, и, конечно же, строить различные графики.
SPL работает не только с одиночными строками, но также позволяет логически группировать и «сжимать» многострочные куски в одну строку.
Как заявляет сам Splunk, все хранящиеся в системе логи в любой момент доступны для запросов, то есть понятия архивации нет. Разумеется, машины (машины), на которых работает Splunk, должны адекватно отражать объем хранимой и обрабатываемой информации.
Splunk также называет себя «Google для логов», но оставим это заявление без комментариев на свое усмотрение.
Интерфейс Splunk — веб.
Вы можете создавать информационные панели, из которых можно создать собственное приложение Splunk. В Splunk есть магазин приложений (правда, большинство из них бесплатны), где есть множество готовых конфигураций для анализа популярных систем, например, системный журнал UNIX, логи Apache, Microsoft Exchange и т. д. Пакет программного обеспечения Спланк можно скачать бесплатно с официального сайта.
Лицензирование основано на ежедневном объеме логов, прокачиваемых через систему.
Для знакомства имеется минимальный свободный объем, которого вполне достаточно для освоения системы.
Для быстрого ознакомления рекомендую книгу Изучение Спланка от создателей этого продукта.
Просмотрев его, вы получите хорошее начальное представление о том, что можно делать в Splunk, о сути языка запросов SPL и т. д. В этой статье я хочу показать реальный пример, который можно повторить в течение получаса.
Для этого просто скачайте и бесплатно установите Splunk в свою операционную систему.
Тогда вы можете просто следовать моим инструкциям.
Пример будет необычным.
Традиционно журналы используются для анализа исторической информации.
Но ничто не мешает вам извлечь его таким, какой он есть, и создать на его основе «живые» индикаторы.
Согласен, мой пример немного искусственный, но я хочу показать, как быстро и легко можно «закинуть» данные в Splank, формализовать их и построить на их основе динамический пользовательский интерфейс.
Вот простой скрипт, который будет регистрировать сообщения, содержащие проценты (от 0 до 100%), в течение минуты.
Лог будет выглядеть примерно так:require 'date' duration = 60*1 update_period = 0.5 i = 0 while i <= duration do progress = i * 100.0 / duration msg = "%s progress=.
2f\n" % [DateTime.now, progress] puts msg open("logs/my.log", 'a') { |f| f << msg } i = i + update_period sleep update_period end
2012-11-23T15:58:54+00:00 progress=45.00
2012-11-23T15:58:55+00:00 progress=45.83
2012-11-23T15:58:55+00:00 progress=46.67
2012-11-23T15:58:56+00:00 progress=47.50
2012-11-23T15:58:56+00:00 progress=48.33
2012-11-23T15:58:57+00:00 progress=49.17
2012-11-23T15:58:57+00:00 progress=50.00
Наша цель — создать в Splank дашборд, который бы отображал процесс выполнения скрипта в виде красивого индикатора, при этом беря данные из журнала.
Для простоты мы будем делать всё на одной машине, а Splank просто будет брать лог из указанного файла.
Итак, Splank у вас уже установлен, и если вы зайдете в « http://localhost:8000 ", то перед вами откроется рабочая страница Splank, на которой вы сможете войти под пользователем "admin".
Далее идем по меню: «Менеджер -> Ввод данных -> Добавить данные -> Файл или каталог или файлы».
Здесь мы указываем имя файла или каталога, где находятся наши логи (в данном случае это будет один файл).
Подтверждаем создание так называемого исходного типа.
Как я уже говорил, логи могут поступать в Splank разными способами.
Каждый такой источник журналов имеет имя и может обрабатываться независимо.
Итак, лог добавлен.
Мы видим, что Splank «подхватил» файл и уже разобрал строки на поля.
Splank понимает огромное количество форматов даты и времени, но на этом тоже настаивают.
Далее мы даем имя нашему источнику журналов — «test_logging», и сохраняем настройки.
Возвращаемся на главную страницу и вводим наш первый запрос на языке SPL (красным):
sourcetype="test_logging" | прогресс таблицы как плавающий
Перевод: взять логи из источника «test_logging», создать таблицу, в которую добавить столбец со значением из поля «прогресс», попутно преобразуя его в тип float. Ниже (синим цветом) мы видим результат запроса (данные в журнале уже есть).
SPL использует принцип каналов UNIX (|), при котором результат одной операции передается на вход следующей.
Итак, есть таблица.
Теперь дадим этому графическое представление.
Поскольку у нас есть только одно поле, показывающее процент выполнения от 0 до 100, то, например, мы можем использовать вид спидометра, стрелка которого будет показывать текущее значение.
Нажмите «Параметры форматирования» (синий цвет) и выберите тип элемента (Тип диаграммы) «Радиальный датчик» (красный цвет).
Появляется этот красивый спидометр.
Первый виджет готов.
Теперь ради эксперимента создадим еще один.
Он также будет отображать значения поля прогресса, но в виде горизонтального индикатора выполнения, движущегося слева направо.
Запрос в этом случае будет таким: sourcetype="test_logging" | таблица _время прогресса | голова 1 Что это значит: используя данные из источника «test_logging», создайте таблицу из двух полей «_time» и «progress», из которой возьмем только первую строку.
По умолчанию сортировка осуществляется по полю «_time» в порядке убывания.
Ниже (зеленым цветом) мы видим результат этого запроса.
Далее нажмите «Параметры форматирования», выберите тип «столбика» (зеленого цвета), установите для оси Y интервал от 0 до 100. Почему-то здесь ось X идет вертикально (поле «_time» будет отображается там), а ось Y — горизонтально (там будет отображаться поле «прогресс»).
Поскольку запрос на предыдущей картинке показал значение 100, то наш горизонтальный индикатор полностью закрашен.
Я пропустил это для первого виджета, спидометра, но точно настроенный запрос и его визуальное представление можно сохранить как «Панель мониторинга».
Для этого нажмите «Создать» и «Панель мониторинга…» (красным цветом) и сохраните настройки.
Назовем наш первый виджет «Спидометр», а второй «Индикатор прогресса».
При сохранении первого виджета вам также будет предложено создать дашборд, назовем его «Журнал тестирования».
При сохранении второго виджета мы добавим его уже созданную панель.
После создания панели вы можете нажать «Панели мониторинга и представления», выбрать ее по имени «Журнал тестирования».
Внешний вид будет примерно такой:
Данных пока нет, поэтому панели пусты.
Мы видим название панели (красным), названия виджетов (желтым), кнопку активации панели (зеленым) и кнопку «Редактировать» (синим), с помощью которой можно настроить запрос или визуальное представление на лету.
Перед запуском скрипта необходимо зайти к каждому из виджетов через кнопку «Редактировать» и указать временной интервал обновления в одну секунду: от «rt-1s» (реальное время — 1 с) до «rt» (текущее время).
.
Итак, это все! Нажимаем «Вкл» и запускаем наш скрипт.
Видео о том, как это работает:
Все!
Заключение
Конечно, пример очень простой, но, надеюсь, мне удалось передать хотя бы минимальное представление о том, как работает Splank. Скажу, что мы в компании недавно начали использовать этот продукт и пока довольны.В этом году я был на конференции SplunkLive, где выступали люди из очень авторитетных компаний, таких как British Telecom. Некоторые используют Splunk для обработки гигабайтов логов каждый день.
Увы, даже у крупных фирм не всегда есть желание разрабатывать подсистему обработки логов, поэтому Splank может оказаться очень кстати.
Теги: #ИТ-инфраструктура #Системное администрирование #Администрирование серверов #splunk
-
Получить Помощь От Реестра Легко
19 Oct, 24 -
Понимание Компьютерной Памяти
19 Oct, 24 -
Конструктор Планов Хостинга Невыгоден
19 Oct, 24 -
Ios-Разработчик Умного Дома. Часть 2
19 Oct, 24 -
Флеш-Игры, В Которые Стоит Поиграть
19 Oct, 24 -
Что Готовит Нам Наступающий День?
19 Oct, 24