пятница, 11 октября 2013 г.

Начало работы со Splunk

Что такое Splunk и как эта технология может пригодиться вам, как инженеру? Splunk, в первую очередь, представляет собой веб-инструмент для хранения и анализа логов. Какие задачи он решает:
  • собирает все логи в одном месте;
  • выполняет поиск;
  • извлекает значения;
  • группирует, объединяет, сводит и форматирует результаты;
  • выполняет визуализацию;
  • рассылает оповещения по электронной почте.

Хосты и источники

Первое, что вы заметите -- как ваши логи делятся по хостам или -- в некоторых случаях -- источникам. То есть, вы можете быстро выполнять поиск по логам с одной машины или создать логическую группу машин (например, веб-серверы против серверов баз данных).

Поиск

Поиском достаточно легко пользоваться -- просто введите искомую строку! Кроме того, вы можете совершать более сложные действия.

Примеры:

    sourcetype="hsl-prod-fe" "Chase Seibert"
    sourcetype="hsl-prod-fe" e186f85c914261eec9e54d3767fdd3cc BEGIN
    sourcetype="hsl-prod-crawl" |regex _raw="fanmgmt\.(analytics|metrics)"
    sourcetype="hsl-prod-crawl" facebook OR twitter NOT linkedin
    sourcetype="hsl-prod-crawl" facebook OR linkedin OR twitter earliest=-24h



Извлечение

Вот тут становится интересно. Вы можете использовать встроенный GUI-интерфейс для определения пользовательских регулярных выражений, чтобы ввести строки в переменные, которые затем по желанию фильтруются, группируются и агрегируются.

У вас есть возможность автоматически изменить формат лога, не определяя регулярные выражения, а переведя пары ключ-значение в формат "ключ=значение" (key=value). Пример кода:

 def key_value(prefix, log_level='info', **kwargs):

    log_message = '%s: %s' % (

        prefix, ' '.join(['%s="%s"' % (k, v) for k, v in kwargs.items()]))

    getattr(logging, log_level)(log_message.strip())

Конвейер

Как и в Unix, здесь работает принцип pipes (|). То есть, вы можете с помощью символа вертикальной черты (|) объединить различные команды в одной командной строке.

Визуализация

Существует возможность создавать графики и диаграммы с помощью конструктора графического интерфейса. То же самое можно проделать с "сырыми" (`raw`) командами и функциями, при условии, если вы знаете, что вызывать. Стройте круговые диаграммы, строки, столбцы, линейные графики или даже спидометры.

Оповещения по электронной почте

Наконец, вы можете -- используя планировщик cron -- настроить отправку оповещений по электронной почте, когда определенный поиск приносит/не приносит конкретные результаты.

Оповещения:
  • Начинаются с регулярного поиска.
  • Происходят через некоторый интервал времени.
  • Можно планировать (поддержка синтаксиса cron).
  • Оповещает постоянно или когда количество строк > N.
  • Не отправляет повторных оповещений.
  • Отправляет электронное письмо или публикует в RSS-ленте.

Комментариев нет:

Отправить комментарий