Nagios/icinga config omzetten naar csv
Dinsdag 04 Mei 2010 at 09:25 am. Gebruikte Tags: icinga, nagios, powershellA quick & dirty Powershellscript to convert nagiosor icingahosts.cfg files to a table. Adapt to select more columns.
$tab = "address`thost_name`talias`thostgroups`tmax_check_attempts`tnotification_period`tnotification_interval`tcontactgroups`tuse`tparents`n"
$cfgbestanden = "hosts","routers","printers","switches","modems"
foreach ($cfgbestand in $cfgbestanden){
$tekst = gc "\\server\usr\local\icinga\etc\objects\$cfgbestand.cfg"
foreach ($lijn in $tekst){
if ($lijn -match "define"){$ip=$naam=$alias=$np=$ni=$contact=$templ=$groep=$max=$parents="---";continue}
if ($lijn -match "name"){$naam = $lijn.split("`t")[-1];continue}
if ($lijn -match "alias"){$alias = $lijn.split("`t")[-1];continue}
if ($lijn -match "address"){$ip = $lijn.split("`t")[-1];continue}
if ($lijn -match "use"){$templ = $lijn.split("`t")[-1];continue}
if ($lijn -match "hostgroups"){$groep = $lijn.split("`t")[-1];continue}
if ($lijn -match "parents"){$parents = $lijn.split("`t")[-1];continue}
if ($lijn -match "contact_groups"){$contact = $lijn.split("`t")[-1];continue}
if ($lijn -match "max_check"){$max = $lijn.split("`t")[-1];continue}
if ($lijn -match "notification_period"){$np = $lijn.split("`t")[-1];continue}
if ($lijn -match "notification_interval"){$ni = $lijn.split("`t")[-1];continue}
if ($lijn -match "}")
{
$record = "$ip`t$naam`t$alias`t$groep`t$max`t$np`t$ni`t$contact`t$templ`t$parents`n"
$tab += $record
}
}
}
$tab > tabel.csv
"created tabel.csv"
Geen reacties