Things done wrong: Dokumentation

Homer Simpson
Nachdem ich letztens in einem Meeting den Hattrick im “Salz in die Wunde” streuen geschafft habe, als ich auf die Frage ab wann ein System als produktiv gilt geantwortet habe: “Sobald es dokumentiert ist, gesichert und überwacht wird”, wollte ich mich diesmal dem Thema Dokumentation annehmen. Eigentlich ein simples Thema (das für mich zu jedem Projekt dazugehört) kann hier doch viel schief laufen.
Der Inhalt ist meist die einfachste Hürde. Hier hilft es sich im Vorfeld einfach über Zielgruppe und Ziel einig zu sein. Der Unterschied beispielsweise zwischen Installationsdokumentation für den Administrator oder Betriebshandbuch für die Hotline ist doch relativ groß. Bei der Installationsdokumentation sammelte ich üblicherweise nur die ausgeführten Befehle in Themenblöcken und erkläre nur grob warum und wieso, da grundsätzliche Kenntnisse der Funktion vom Linuxadministrator erwarte. Ein Betriebshandbuch ist dagegen ein ganz andere Sache, notfalls fange ich sogar mit Erklärungen an was den Linux überhaupt so ist und sammle Screenshots zu den wichtigsten graphischen Funktionen. Was ich auf alle Fälle allerdings vermeide ist es frei verfügbare Dokumentation unnötig zu duplizieren. Die meisten “Open Source”-Projekte liefern auch hier sehr gute Arbeit ab und halten diese auch aktuell, was oftmals bei eigener Dokumentation nicht der Fall ist oder zumindest zusätzlichen Aufwand bedeutet. Warum dies meist so ist, soll das Hauptthema dieses Blogposts sein.
(mehr …)

Dirk Götz
Dirk Götz
Senior Consultant

Dirk ist Red Hat Spezialist und arbeitet bei NETWAYS im Bereich Consulting für Icinga, Puppet, Ansible, Foreman und andere Systems-Management-Lösungen. Früher war er bei einem Träger der gesetzlichen Rentenversicherung als Senior Administrator beschäftigt und auch für die Ausbildung der Azubis verantwortlich wie nun bei NETWAYS.

inDoc – Mach es dem Support einfacher…

16811692146_85b370edb1_oBeim eröffnen eines Tickets ist es immer das gleiche. Welches Betriebssystem? Welche Version der Applikation? Immer die gleichen Fragen… Ihr habt keine Lust mehr Informationen zusammen zu sammeln? Dann nehmt doch inDoc!
inDoc ist eine kleine Sammlung an Skripten die Informationen aus eurem Monitoring-Setup sammelt und diese in einer XML-Datei speichert. Auf diese Weise wird z. B. die icinga.cfg oder auch Daten über den laufenden Icinga Prozess (PID, Speicherverbrauch, usw.) gesichert.
Aber keine Angst, der Entwickler ist nicht die NSA! Die Daten sind dann ausschließlich auf eurem Server und Passwörter werden in formschöne Sterne (******) verwandelt.
Der XML-Output ist neutral und kann mit allen gängigen Programmiersprachen wieder eingelesen werden, womit das gute Stück auch für Dokumentationszwecke genutzt werden kann. Ein erstes Beispiel hierfür zeigt das Skript inDoc2HTML.pl.
In der Praxis ist inDoc denkbar einfach:
icinga@monitoring-host# git clone https://github.com/NETWAYS/indoc
icinga@monitoring-host# cd indoc
icinga@monitoring-host# ./inDoc.pl

That’s it! 🙂
Das war kurz und schmerzlos, aber was hab’ ich nun davon?

icinga@monitoring-host# ls -la /tmp/inDoc-out/
total 56
drwxr-xr-x 3 icinga icinga 4096 Aug 14 18:49 .
drwxrwxrwt 4 root root 4096 Aug 14 18:54 ..
-rw-r--r-- 1 icinga icinga 492 Aug 14 18:49 check_disk.xml
-rw-r--r-- 1 icinga icinga 450 Aug 14 18:49 check_http.xml
-rw-r--r-- 1 icinga icinga 449 Aug 14 18:49 check_load.xml
-rw-r--r-- 1 icinga icinga 7456 Aug 14 18:49 icinga.xml
-rw-r--r-- 1 icinga icinga 2434 Aug 14 18:49 indoc_base.xml
-rw-r--r-- 1 icinga icinga 12875 Aug 14 18:49 inDoc.xml
-rw-r--r-- 1 icinga icinga 1476 Aug 14 18:49 pnp4nagios.xml
drwxr-xr-x 2 icinga icinga 4096 Aug 14 18:48 savedFiles

Ohne weitere Optionen schreibt das Skript nach /tmp/inDoc-out. Hierunter findet ihr die Discovery-Ergebnisse der einzelnen Module. Das inDoc.xml beinhaltet die Informationen aller Module. So sind die Daten bequemer weiter zu verarbeiten.
Das ganze Set an Skripten wird von Zeit zu Zeit erweitert. Icinga 2 wird selbstverständlich zu den ersten gehören 😉
Picture by GotCredit – https://www.flickr.com/photos/jakerust

Tobias Redel
Tobias Redel
Head of Professional Services

Tobias hat nach seiner Ausbildung als Fachinformatiker bei der Deutschen Telekom bei T-Systems gearbeitet. Seit August 2008 ist er bei NETWAYS, wo er in der Consulting-Truppe unsere Kunden in Sachen Open Source, Monitoring und Systems Management unterstützt. Insgeheim führt er jedoch ein Doppelleben als Travel-Hacker, arbeitet an seiner dritten Millionen Euro (aus den ersten beiden ist nix geworden) und versucht die Weltherrschaft an sich zu reißen.

TWiki lokal installieren

Neulich hatte ich ja schon mal einen Post geschrieben, dass Wikis eine sehr praktische Sache zum Ablegen von Texten oder Dokumentationen sind. Einen Nachteil haben sie aber in der Regel: Da es sich um eine Webanwendung handelt, braucht man auch einen Internetzugang um darauf zugreifen zu können. Eine Alternative wäre es, dass Wiki zusammen mit einen lokalen Webserver zu installieren und dann einfach via http://localhost darauf zuzugreifen. Auch dafür empfiehlt sich TWiki, da es im Gegensatz zu MediaWiki keinen zusätzlichen SQL Server braucht. Praktisch, dass es auf der TWiki Download Page auch Pakete für Windows oder Mac OS X gibt.

Julian Hein
Julian Hein
Executive Chairman

Julian ist Gründer und Eigentümer der NETWAYS Gruppe und kümmert sich um die strategische Ausrichtung des Unternehmens. Neben seinem technischen und betriebswirtschaftlichen Background ist Julian häufig auch kreativer Kopf und Namensgeber, beispielsweise auch für Icinga. Darüber hinaus ist er als CPO (Chief Plugin Officer) auch für die konzernweite Pluginstrategie verantwortlich und stösst regelmässig auf technische Herausforderungen, die sonst noch kein Mensch zuvor gesehen hat.

Einfachere Dokumentation durch Wikis

In vielen unserer Projekten entsteht immer wieder die Anforderung nach einem (neuen) Dokumentationssystem. Entweder weil der Kunde noch gar nichts in diesem Bereich einsetzt oder mit dem bestehenden System unzufrieden ist. Wir benutzen selbst ein Wiki und empfehlen das auch unseren Kunden. Aus mehreren Gründen:

  • Dokumentation ist in der Regel eine sehr unbeliebte Aufgabe, die kein Administrator gerne erledigt. Folglich sollten die Einstiegshürden möglichst niedrig und die Dokumentation mit möglichst wenig Arbeit verbunden sein. Wikis sind webbasiert, einfach zu erreichen, leicht zu bedienen und damit einfach schneller als andere Systeme. Je schneller und einfacher es für einen Admin ist einen Change zu dokumentieren, umso höher ist die Wahrscheinlichkeit, dass es auch gemacht wird.
  • Durch die flexible Struktur eines Wikis, können auch neue Bereich oder Themen einfach eingepflegt werden, ohne auf eine komplizierte Hierarchie Rücksicht zu nehmen. Es ist immer noch besser der Inhalt ist drinnen, aber an der falschen Stelle, als gar nicht eingepflegt. Die Inhalte können immer noch später umsortiert werden.
  • Im Gegensatz zu anderen Alternative ist eine Suchfunktion bereits out-of-the-box eingebaut und muss nicht extra implementiert werden. Inhalte lassen sich so auch ohne absolute Ordnung leicht wiederfinden.
  • Die meisten Wikisysteme gestatten die Anbindung externer Authentifizierungsmechanismen, so dass keine zusätzlichen Useraccounts oder Passwörter verwendet werden müssen. Im internen Netz kann die Anmeldung durch Kerberos vielleicht sogar komplett entfallen.
  • Die Versionierung der Wikiartikel erlaubt es später Änderungen an der Dokumentation nachzuvollziehen oder einfach auf einen alten Stand zuzugreifen. Fehler und versehentliche Löschungen können so jederzeit einfach wieder rückgängig gemacht werden. Ebenso können Diffs erstellt werden, die genau alle Änderungen zwischen zwei Versionsständen wiedergeben.
  • Da das System HTML basiert ist, lassen sich die Inhalte einfach über normale Hyperlinks in anderen Anwendungen verlinken. Beispielsweise kann man in Nagios Links direkt zur Dokumentation der jeweiligen Ressource einbauen.
  • Die meisten Wikis sind Open Source und können deswegen einfach angepasst werden, wenn es später individuelle Zusatzanforderungen an das Wiki geben sollte. Ganz zu schweigen von den wegfallenden Lizenzkosten.

Natürlich sollte man nicht verschweigen, dass ein Wiki auch ein paar Nachteile mit sich bringt: In der Regel kann jeder alle Texte einsehen oder verändern und es ist schwierig in einem Wiki genaue und vor allem verbindliche Strukturen vorzugeben. Wobei das in einer offenen, wissensbasierten Firma nicht wirklich ein Nachteil sein muss.
In Summe überwiegen also definitiv die Vorteile eines Wikis und ich werde in ein paar Tagen die wichtigsten und bekanntesten Wiki Systeme vorstellen und ihre jeweiligen Vor- und Nachteile als Dokumentationssysteme erläutern.

Julian Hein
Julian Hein
Executive Chairman

Julian ist Gründer und Eigentümer der NETWAYS Gruppe und kümmert sich um die strategische Ausrichtung des Unternehmens. Neben seinem technischen und betriebswirtschaftlichen Background ist Julian häufig auch kreativer Kopf und Namensgeber, beispielsweise auch für Icinga. Darüber hinaus ist er als CPO (Chief Plugin Officer) auch für die konzernweite Pluginstrategie verantwortlich und stösst regelmässig auf technische Herausforderungen, die sonst noch kein Mensch zuvor gesehen hat.