Dump ElasticSearch en Powershell
Posted by NiTRo | Filed under HowTo, Tips & Tricks
Parce que les logs d’ESXi sont particulièrement éphémères, il est fortement recommandé de les rediriger vers un syslog. Dans le cadre d’un SR chez VMware, il nous a fallu extraire le contenu d’une appliance SexiLog pour plusieurs ESX sur une période donnée. On a fait chauffé le notepad++ pour faire un truc en powershell qui fait le taff comme il faut :
$i=0 $pre = '{"fields" : ["message"],"from":' $post = ',"size": 2000,"query":{"filtered":{"query":{"bool":{"should":[{"query_string":{"query":"hostname.raw:esx.vmware.com"}}]}},"filter":{"bool":{"must":[{"range":{"@timestamp":{"from":1450738800000,"to":1450997999999}}}]}}}}}' $msgs=1 while ($msgs) { $msgs=$false $body = $pre + $i + $post $msgs=(Invoke-RestMethod -URI "http://demo.sexilog.fr:9200/_search?pretty=1" -Method 'POST' -ContentType 'application/json' -Body $body -TimeoutSec 5).hits.hits.fields.message $msgs|%{$_.Trim()}|Out-File -FilePath c:\temp\esx.vmware.com.log -Append $i=$i+2000 }
Il convient de remplacer les FQDN esx.vmware.com et demo.sexilog.fr par les vôtres et d’ajuster les valeurs from/to en epoch.
Le script extrait tous les messages pour le serveur donné, sur la période donné vers un fichier de log par batch de 2000 :
Et une fois l’export terminé, le script se termine par une erreur “attendue” :
A titre indicatif, il a fallut 1h pour extraire 1Go de log. Egalement dispo sur GitHub si besoin.
Tags: Elasticsearch, powershell, SexiLog
January 19th, 2016 at 16:31
Script above is missing the closing curly brace on the while loop. Github version is fine.
January 19th, 2016 at 17:49
Fixed. Thanks Joe.
May 10th, 2016 at 12:54
Why don’t your write in english that is the most used language in the world?
May 10th, 2016 at 13:10
because it’s a french blog and i wanted to focus on french people in the first place.
May 10th, 2016 at 13:15
Ok I respect your choice, this was just a suggestion/request just because I think this nice post would be appreciated by entire world.
Anyway I thank you.
Best,
Marco
Italy
May 10th, 2016 at 13:20
Thanks. I know i should have done it at the very begining of this blog but it’s a lot of work to maintain both language. Meanwhile, google translate does a pretty good work last time i checked