Что такое 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-ленте.
Комментариев нет:
Отправить комментарий