« VPN toevoegen op HTC … | Home | bijkomende gateways v… »

Nagios/icinga config omzetten naar csv

Dinsdag 04 Mei 2010 at 09:25 am. Gebruikte Tags: , ,

A quick & dirty script to convert or hosts.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



(optioneel veld)
(optioneel veld)
Wil je deze eenvoudige vraag beantwoorden, zodat ik weet dat je geen spamrobot bent, a.u.b.?

Reactiemoderatie staat aan op deze site. Dit betekent dat je reactie niet zichtbaar zal zijn, tot deze is goedgekeurd door een beheerder.

Persoonlijke info onthouden?
Kleine lettertjes: Alle HTML-tags behalve <b> en <i> zullen uit je reactie worden verwijderd. Je maakt links door gewoon een URL of e-mailadres in te typen.