Translations of this page:

Twiki Integration

Da bei uns im Unternehmen Twiki als Wiki implementation benutzt wird, habe ich die Nagios integration dafuer geschrieben.

Vorraussetzung ist eine Twikiinstallation und Nagios.

Generierung des WikiLinks

Das erste Problem habe ich in der Syntax von Twiki. Eine neue Seite wird angelegt und auch automatisch verlinkt wenn das Wort gewisse kriterien erfuellt. Das ist Grossbuchstabe gefolgt von Kleinbuchstabe wieder Grossbuchstabe (Die Anzahl der einzelen Sorten ist belibig). Also Z.B. WikiWeb ist gultig wobei WIKIWeb nicht funktioniert. Des weitern duerfen keine Sonderzeichen enthalten sein.

Da ich die Seitennamen automatisch generieren wollte um nacher Besser mit arbeiten zu koennen, habe ich mit ein kleines CGI gebastelt welches mir die Namen passend zusammensetzt.

Dort generiere den Link zum Wiki. Er folgt der Syntax fuer den Host → Host + hostname (erster Charakter Uppercase) und fuer den Servcie → Host + hostname + Srv + servicename (erster Charakter Uppercase)

    #!/usr/bin/perl
    # Parser um aus Host- und Service- Namen fuer das Wiki mit Link zu generieren
    # ME 20061010
 
 
    use strict;
    use CGI;
 
    sub wikiexec($);
 
    my $cgi=new CGI;
    # Uebergabe der des Host und Servicenamen mit Get
    my $hostname = wikiexec($cgi->param("host"));
    my $servicedesc = wikiexec($cgi->param("srv"));
 
    # Der Link Zum Wiki Web
    my $wikiweblink = "http://xxx.xxx.xxx.xxx/twiki/bin/view.pl/NagiosServer/";
    my $link;
 
 
    if ($hostname)
    {
      if ($servicedesc)
      {
        #Linkgenerierung fuer Service immer Host + hostname + Srv + servicedesc
        $link = "${wikiweblink}Host${hostname}Srv$servicedesc";
      }
      else
      {
        #Linkgenerierung fuer Service immer Host + hostname
        $link = "${wikiweblink}Host$hostname";
      }
    }
    else
    {
      print $cgi->header();
      print "Keine Hostnamen angegeben. Bitte geben Sie den Hostname an";
      exit;
     }
 
    print $cgi->redirect($link);
 
 
    ########################################################################
    #removes any non-letters/digits from the given string
    sub wikiexec ($)
    {
       $_=shift;
       $_||='';
       s/[^\w\d]//g; # Entfernen allerzeichen ausser Buchstabe und Zahlen
       my $z = ucfirst; #Um ein wikiwort zu bilden wird der erste Buchstabe aufjeden fall Uppercase
       return $z;
    }
    ########################################################################

Einbindung ins Nagios

Eingebunden habe ich das ganze ueber die notes_url aber die action_arl koennte man auch nehmen.

Beim Host:

  define hostextinfo{
   	host_name		    *
    notes_url         /nagios/cgi-bin/wiki.cgi?host=$HOSTNAME$
    }

Beim Servcie:

  define serviceextinfo{
   host_name		    ikarus
   service_description	Samba_by_SSH
   notes_url          	/nagios/cgi-bin/wiki.cgi?host=$HOSTNAME$&srv=$SERVICEDESC$
   }

Im Wiki

Wenn die Seite schon existiert kommt man direkt auf die Seite ansonsten kann man sie direkt anlegen. Ich habe mir in meinen Fall ein eigenes Web fuer nagios angelegt und arbeite nur in dem.

Dort habe ich mit eine Hauptseite eingerichtet die ueber einen Serachbefehl alle Nagios Dokumente auflistet. So komme ich auch vom Wiki auf die Seiten ohne dehren Namen wissen zu muessen.

  %SEARCH{"Host" scope="topic" nosummary="on" noheader="on" nosearch="on" nototal="on" format="$topic $n"}%

Fuer den Host habe ich mir ein Searchbefehl gemacht der mir die angelegten Services auflistet. Damit ich nicht immer wieder zurueck in die Nagios Uebersicht muss.

  %SEARCH{"%TOPIC%Srv" scope="topic" nosummary="on" noheader="on" nosearch="on" nototal="on" format="$topic $n"}%

Abschluss

Anregungen, Berichtigungen oder Presentierungs vorschlaege sind erwuenscht. Einfach eine PM an qeqar senden.

nagios/howtos/twiki.txt · Zuletzt geändert: 2007/03/14 09:54 von qeqar
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0