Привет, читатель!
Хочу немного дополнить информацией предыдущий пост - Splunk. Использование REST API. В прошлый раз для создания запроса в Splunk и получения списка событий мы использовали Python, а в этот раз нас выручит PowerShell.
Итак, задача как и в прошлый раз: получить сессионный ключ, создать запрос, получить результаты выполнения запроса. Пошаговое объяснение было в первой части, а сейчас только код на powershell:
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
$postParams = @{
username = "admin";
password = "changeme";
}
#1. Получаем токен
$token = (Invoke-WebRequest -Uri 'https://localhost:8089/services/auth/login?output_mode=json' -Body $postParams -Method POST).content | ConvertFrom-Json
Write-Host "SessionKey ---> " $token.sessionKey
#2. Получаем SID
$search_query = "search sourcetype = fail2ban earliest=-4h latest=now() | top 5 srcip"
$textS = [System.Uri]::EscapeUriString($search_query)
$textS = "search="+$textS
$search_sid = (Invoke-WebRequest -uri 'https://localhost:8089/services/search/jobs/?output_mode=json' -Headers @{"Authorization" = "Splunk " + $token.sessionKey} -Body $textS -Method POST).content | ConvertFrom-Json
Write-Host "Search ID ---> " $search_sid.sid
#3. Статус выполнения поиска
$SID = $search_sid.sid
$uriStat = 'https://localhost:8089/services/search/jobs/' + $SID + '/?output_mode=json'
$done = 0
while ($done -ne 1) {
$status_search = (Invoke-WebRequest -uri $uriStat -Headers @{"Authorization" = "Splunk " + $token.sessionKey} -Method GET).content | ConvertFrom-Json
if ($status_search.entry.content.isDone -eq 1) {
$done = 1
}
}
Write-Host 'Search status ---> ' $status_search.entry.content.isDone
#4. Результаты запроса
$uriRes = 'https://localhost:8089/services/search/jobs/' + $SID + '/results?output_mode=json'
$res = (Invoke-WebRequest -uri $uriRes -Headers @{"Authorization" = "Splunk " + $token.sessionKey} -Method GET).content | ConvertFrom-Json
Write-Host "**************************************************************************"
$res.results
После выполнения вы увидите:
Комментариев нет:
Отправить комментарий