- PVSM.RU - https://www.pvsm.ru -
Ранее мы писали [1], как можно загрузить логи в Splunk из каталога или с помощью syslog, рассказывали [2] как забирать стандартные виндовые и линуксовые события, но что если нам необходимо получать более гранулярную информацию о работе наших систем?
В таком случае на помощь приходят скрипты!
Когда, какие и как можно использовать скрипты в Splunk для получения данных — вы можете узнать под катом.
Скрипты зачастую используют в тех случаях, когда:
Для скрипта можно устанавливать интервал, с которым он будет воспроизводиться и передавать данные в Splunk.
В качестве сценариев можно использовать shell scripts, python scripts, командные файлы Windows, PowerShell или любые другие утилиты, которые могут формировать и передавать данные.
В рамках статьи мы рассмотрим пример загрузки данных с помощью скрипта.
Допустим, у нас есть файловый сервер и каталог, размер которого нам по некоторым причинам необходимо мониторить, а так же мы хотим чтобы он не превышал порогового значения (для теста в 45 мб). Давайте напишем скрипт, который будет считать размер этой директории c интервалом 30 секунд, а также сделаем алерт, который будет уведомлять нас о превышении порогового значения.
Размер папки будем считывать с помощью нижеприведенного скрипта, который на выходе даст временную метку, путь к папке и ее размер байтах.
import os
import time
from datetime import datetime
dir_path="///for_script"
def get_size(start_path = '.'):
total_size = 0
for dirpath, dirnames, filenames in os.walk(start_path):
for f in filenames:
fp = os.path.join(dirpath, f)
total_size += os.path.getsize(fp)
return total_size
time_of_event=datetime.strftime(datetime.now(), "%Y.%m.%d %H:%M:%S")
print time_of_event, dir_path, get_size(dir_path)
Подробнее загрузку данных с удаленных источников мы разбирали в предыдущих статьях (тут [3] и тут [2]). Поэтому обсудим сейчас это кратко.
Нам необходимы:
• Удаленная машина, на которой установлен Splunk Universal Forwarder
• Splunk-indexer, на котором мы создаем приложение send-to-indexer, переносим его в deployment-apps и настраиваем Forwarder management.
Также на Splunk indexer cоздаем приложение monitor_scripts, переносим его в папку deployment-apps. В приложении создаем папку local и в ней файл inputs.conf со следующим содержимым:
[script://./bin/scripts/foldersize.py]
disabled = false
index = test_script
interval = 30.0
sourcetype = test_script
Также добавляем туда наш скрипт в директорию /bin
Перезагружаем Deployment server
.../splunk/bin/splunk reload deploy-server
И… получаем данные!
Splunk автоматически выбрал временную метку, но остальная информация осталась в виде сырых данных, поэтому необходимо выделить поля (О том как это сделать, мы писали в предыдущей статье [3]) В данном случае мы выделили 2 поля: путь папки (folder_path) и размер (size)
Размер папки представлен в байтах, давайте переведем это число в Мб. (Это можно сделать и в скрипте, но мы покажем как сделать это в Splunk)
Создаем новое вычисляемое поле (Settings – Fields – Calculated fields – New)
Указываем source type наших данных, название нового поля и выражение для вычисления. Теперь к данным с указанным source type будет добавляться это вычисляемое поле.
Мы получили все интересующие нас поля, давайте создадим график, на котором будет показана динамика изменения размера папки и достигает ли она порогового значения.
Создаем алерт. Пусть, когда размер папки превысит 45 мб, Splunk отправит нам сообщение на электронную почту. Более подробно о том, как отправлять оповещение на электронную почту мы писали тут [4], а в Slack – тут [5].
Алерт будет основан на новом запросе, чтобы в сообщения можно было вставить поля из запроса.
Сохраняем запрос как алерт и прописываем его условия:
И получаем письмо:
В настройках алерта мы установили, что если размер папки не уменьшится в течение 15 минут, то оповещение придет вновь.
На этом простом примере, мы показали принцип загрузки данных в Splunk через скрипты. Вы можете создать скрипт, который будет решать Вашу задачу: загружать необходимую информацию в Splunk и оперативно получать результат.
Надеемся, что эта информация будет полезна для Вас.
Мы рады ответить на все ваши вопросы и комментарии по данной теме. Также, если вас интересует что-то конкретно в этой области, или в области анализа машинных данных в целом — мы готовы доработать существующие решения для вас, под вашу конкретную задачу. Для этого можете написать об этом в комментариях или просто отправить нам запрос через форму на нашем сайте [6].
Мы являемся официальным Premier Партнером Splunk [7].
Автор: JuliaKoroleva
Источник [8]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/sistemnoe-administrirovanie/278322
Ссылки в тексте:
[1] писали: https://habrahabr.ru/company/tssolution/blog/353426
[2] рассказывали: https://habrahabr.ru/company/tssolution/blog/352944/
[3] тут: https://habrahabr.ru/company/tssolution/blog/353426/
[4] тут: https://habrahabr.ru/company/tssolution/blog/351038/
[5] тут: https://habrahabr.ru/company/tssolution/blog/351798/
[6] сайте: https://tssolution.ru/splunk/
[7] Premier Партнером Splunk: https://partners.splunk.com/locator/partner/333601/ts-solution
[8] Источник: https://habrahabr.ru/post/353892/?utm_campaign=353892
Нажмите здесь для печати.