Christian

 

Einige Tage zuvor hatte ich schon darüber berichtet wie sich OpenNMS installieren lässt. Nun folgt ein kleiner Erfahrungsbericht über OpenNMS.

Kurz zur Umgebung, es handelt sich dabei um ca. 60 Hosts die in einem Rechenzentrum gehostet werden. Darunter ca. 15 Physikalische Server und 2 Firewalls und 1 Router. Der Rest alles virtualsierte System auf VMWare ESX. 75% Der Systeme laufen mit Debian Linux 5 und 6, der Rest mit Windows 2008 (R2). Bereitgestellt werden hauptsächlich Web und Mail Dienste, aber auch die ein oder anderen Applikation (SaaS Dienste) die über Remote Desktop oder Web App erreichbar sind. Ein Teil der Systeme ist hochverfügbar ausgelegt.

Optisch fand ich OpenNMS schon sehr interessant, auch die Funktionsbeschreibung war sehr vielversprechend. Meiner erster Eindruck war allerdings auch, das kann eigentlich unmöglich kostenlos oder OpenSource sein, da die Aufmachung der Produkthomepage einen Kommerziellen Eindruck bei mir erweckte. Der erste Eindruck nach der Installation war noch nicht getrübt, ich machte mich mit dem System vertraut und war zunächst schon fat entzückt über das System und die Funktionalität. Was mir am besten gefiel war das angebotene iPhone App mit dem man leicht und einfach über das iPhone den Status seiner überwachten Server und Netzwerkgeräte abrufen,  kann.

Je mehr und je genauer ich mit OpenNMS auseinandersetzte, umso mehr schwand nach und nach meine Begeisterung mit dem System. So vielen mir immer öfter an verschiedenen Stellen Funktionen auf die augenscheinlich nicht funktionierten. Das fing z.B. mit dem Ändern des Admin Passwortes an, das ich etwa 10 mal versucht hatte zu ändern, aber bei jeder Anmeldung musste ich feststellen, dass es nicht geändert wurde und nach wie vor auf dem Standard Passwort nach der Installation gesetzt war. Die beschränkte sich wie ich später herausgefunden habe auf die Benutzerverwaltung, im eigenen Benutzerprofil funktionierte die Passwortänderung jedoch fehlerfrei.

Ich fing zunächst damit an meine Systeme von Hand anzulegen, Sensoren einzurichten und Trigger für Ausfälle und Benachrichtugungen zu erstellen. Das klappte soweit mehr oder minder zufriedenstellen. Bei einigen Geräten mussten die SNMP String angepasst werden, aber das ist im Grunde normal. Nachdem ich ca. 60 System zum überwachen habe, viel mein nächster Blick auf die Discoveryfunktion, die defenierte Subnets auf Verfügbare Host scannt, und die gefundenen Geräte automatisch in die Überwachung aufnimmt. Meine Subnet’s im Rechenzentrum habe ich eingefügt, und es wurden auch zeitnah alle Systeme vollständig mit allen Diensten die die Systeme zur Verfügung stellen aufgenommen. Diese benöztigten jedoch etwas Feinarbeit. Im Grunde aber ok und verständlich.

Nun hatte OpenNMS die angewohntheit bei einer CISCO ASA sämtliche Ethernet Interface in die Überwachung aufzunehmen (5 Stück), genutzt wurden effektiv jedoch nur 3 Interfaces. Die restlichen Interfaces waren Down und es wurde von OpenNMS als Ausfall erkannt und entsprechend gemeldet. Derartige Dinge hatte ich auch bei dem ein oder anderen System. So weit so gut, das muss man eben Feintuning betrieben und nicht benötigte Sensoren / Interface aus dem Monitoring entfernen. Soviel zur Theorie, in der Praxis stellte sich das Löschen der Interfaces und Sensoren als ziemlich schwer dar. Durch das Auto-Discover wurde diese Interfaces und Dienste immer wieder neu erkannt und zur Überwachung hinzugefügt. Nicht weiter verwunderlich. Eine kure Suche bei Google gab Auskunft dass man am besten das Auto Discover nach erfolgten Discover wieder deaktiviert. Nun gut das ist meiner Meinung nach nicht ganz im Sinne des Erfinders, denn ich will ja auch dass durch das Auto-Discover neue Hosts automatisch erkannt und überwacht werden. Sprich ich will es mir als Admin in einer Umgebung dieser Größenordnung so leicht wie möglich machen, und vor allem Fehlerquellen durch vergessene Hosts in der Überwachung ausschließen. Aufgrund des iPhone App’s und der weiteren Funktionalität wäre ich aber bereits gewesen diesen Umstand in kauf zu nehmen. Aber es kam noch schlimmer…

Ich hatte also das Auto-Discover deaktiviert, und entfernte erneut meine Interfaces und Dienste die ich nicht überwachen wollte. Diese verschwanden auch kurz aus dem System, tauchten aber trotz deaktivierten Auto-Discover schnell wieder in der Überwachung auf. Eine Suche bei Google gab leider nicht viel verwertbares Material, überhaupt ist das Angebot an Foren und Communitys für OpenNMS sehr dünn bzw. teils gar nicht vorhanden. Ich versuchte mir selbst zu helfen, sties aber schnell darauf dass diese Interfaces durch SNMP Auto-Discovered werden. Sprich bei der CISCO ASA wurden die Interfaces die nicht genutzt wurden durch das SNMP Protokoll wieder erkannt und in die Überwachung aufgenommen. Ich suchte dann auf der Seite des Anbieters von OpenNMS nach möglichen Support Möglichkeiten und stellte erstaunliches fest.

Sie Software ist zwar OpenSource, und unterliegt der GPL, aber den Support lässt man sich sehr teuer bezahlten. Um überhaupt Support zu bekommen, müsste man für das kleinste Paket jährlich über 14.000 Euro hinblättern. Unter den Angeboten wurden auch noch Pakete mit bis zu 24.000 Euro angeboten.  Soviel zum Thema OpenSource und kostenlos… Ich wäre zwar prinzipiell Bereist für eine Überwachung dieser Art Geld zu investieren, aber 14.000 Euro pro Jahr sind in dieser Größenordnung wie ich Sie zu betreuen habe einfach zuviel, und auch kein Kunde ist bereits sich an Kosten in der Höhe zu beteilligen. Kosten/Nutzen ist in der Hinsicht etwas sehr schwach.

Meiner Meinung nach wird dadurch das Konzept von OpenSource und er GPL vollständig untergraben. Ein Trend den ich immer mehr beobachte, was ich sehr Schade finden.

Meine Wahl fiel dann auf Zabbix was letztendlich die gleiche Funktionalität biete, und nach einer Standard Installation vollständig funktioniert. Der Supportbereich ist durch zahlreiche Foren und andere Communitys sehr gut ausgebaut. Aber dazu werden ich in den nächsten Tagen mehr verraten.

Hotel Vier Jahreszeiten Gewinnspiel
 

Heute habe ich mal nach langer Zeit alle Wasserwerte gemessen und musste sogleich ein paar Ungereimtheiten Feststellen.

So hatte ich in meinem 1. Test folgende Werte gemessen:

Nitrat (NO3): 80 mg/l (Tropic Marin)
Posphat (PO4): 1,2 mg/l (Hannah Photometer)
KH: 8 (Tropic Marin)
Calcium: 440 mg/l (Redsea)
Magensium: 1280 mg/l
pH: 8,2
Salinität: 35 psu

Beachtlich hoch sind die Werte die ich für Nitrat und Phosphat gemessen hatte. Mir kamen die Werte nicht plausibel vor und ich ich startete weitere Testreihen mit Nitrat und Phosphat. Darunter habe ich auch meinen “alten” Redsea und Salifert Nitrattest verwendet. Beiden zeigten einen Wert unter 5 mg/l an. Der Tropic Marin mehr als 80 mg/l. So dachte ich dann erstmal, der neue Tropic Marin Test ist kaputt. Bei Posphat verhielt es sich ähnlich, Redsea und Salifert blieben irgendwo im Bereich von 0,1 mg/l, Hannah bei 1,2 mg/l und der Tropic Marin Test lag bei ca. 0,6 mg/l.

Welche werte sind nun die richtigen? Ich gebe zu ich war geneigt den niedergieren Werten glauben zu schenken, waren es doch die Testkit die ich schon seit einiger Zeit verwende und Vertrauen schenkte, und die Werte erschienen mir weit sinnvoller. Wie sich später herausstellen sollte ein Trugschluss!!

Sicherheitshalber habe ich mich aber dann doch noch bemüht meine Tests mit Standards zu prüfen. Und ich musste tatsächlich feststellen dass die Werte der 1. Testreihe richtig sind, und der Redsea und Salifert Test falsche Werte anzeigten. Auf diese Test habe ich mich seit Start des Beckens, und auch davor schon im alten Becken verlassen.

Es wurden gleich Gegenmaßnahmen gestartet um die Werte wieder zu senken. U.a. wird ein ausgiebiger Wasserwechsel mit 30% durchgeführt, und es kommt ein Phosphat Adsorber zum Einsatz. Zudem habe ich  Microbe Lift Special Blend dosiert um die Bakterienflora in Schwung zu bringen. Einfach wir die Geschichte aber nicht lösen zu sein, da die Werte schon ziemlich hoch sind, und ich die Ursache wo anders vermute.

Mögliche Ursache 1 – Fischverlust durch Krankheit -

Das ganze lässt die Vermutung zu dass die Werte schon seit Start des Beckens und nach der Einfahrphase so hoch waren bzw. blieben. Ich hatte von Anfang an mit den Test’s analysiert denen ich vertraut hatte, wo sich heute raus stellte dass diese falsch sind. Das bringt mich natürlich zu der Vermutung dann der Fehler in den Test auch in der Einfahrphase und danach existent waren. Die Ursachenforschung wird damit in zwei Richtungen gehen müssen. Sicherlich eine Ursache könnte der massive Fischverlust sein, da ich einige Fische nicht aus dem Becken entfernen konnte. Des Weiteren hört man auch von anderen betroffenen Aquarianern dass nach einem ähnlichen Krankheitsfall die Werte fast ins unermesslich hohe Steigen und dann aber in wenigen Wochen wieder auf normale Werte sinken. Sicherlich wird sowas zum einen vom ableben der Fische kommen, kann mir aber auch gut Vorstellen dass sowas durch absterben Parasiten begünstigt wird. Das wäre jetzt in diesem Fall die bessere Wahl der Ursache, da man davon ausgehen kann dass sich die Werte wieder stabilisieren (lassen).

Mögliche Ursache 2 – Marodes Lebendgestein und/oder totes Gestein

Im Becken wurden ca. 25 Kg lebendes Gestein und ca. 10 Kg totes Gestein verbaut. beim toten Gestein kann es durchaus immer mal vorkommen dass man einen Glücksgriff macht und einfach belastetes Gestein bekommt. Beim lebenden Gestein habe ich eigentlich wenig bedenken, da dieses frisch importiert wurde und nur wenige Tage beim Händler zwischengelagert wurde. Außerdem ist die Quelle des Gesteins bekannt für gute Qualität. Lassen sich die Werte nicht dauerhaft senken und stabilisieren, muss ich aber von der Ursache 2 ausgehen. Wie mein Plan in diesem Fall aussieht weis ich noch nicht.

Letztendlich werde ich so oder so erstmal ein paar Wochen abwarten ehe neue Tiere eingesetzt werden. Auch werde ich die nächsten Wochen langsam und geduldig versuchen die Werte zu stabilisieren. Die Zeit wird zeigen obund welche Maßnahmen letztendlich Notwendig sein werden. Schade ist der Verlauf alle mal, und ich kenne derartige Komplikationen aus der Vergangenheit gar nicht, nur aus Erzählungen von Freunden und Kunden. Meine 8 – 10 Becken die ich früher schon gestartet hatte, hatte derartige Probleme nicht.

Hotel Vier Jahreszeiten Gewinnspiel
 

Der Artikel beschäftigt sich damit wie man in seinen eigenen ASP.NET Anwendungen und Seite suchmaschinenfreundliche URL’s integrieren kann.

Noch immer hat der Grundsatz, dass Suchmaschinen mit vielen Parametern in den URL’s nicht klar kommen. Es hat sich zwar zunehmend immer weiter gebessert, aber unbedingt darauf verlassen sollte man sich nicht. Zudem heracht zumindest das Gerücht, dass z.B. Google auch die Url’s mit indiziert, und dem Inhalt der URL’s eine nicht zu unterschätzende Gewichtung zukommen lässt. Glaubt man machen SEO Berichten, so haben die in den Url’s enthaltenen Begriffe die höchste Wertigkeit. Und zu guter Letzt ist es für den Besucher natürlich auch angenehmer wenn er URL’s zu Gesicht bekommt, aus deren er den Inhalt der Seite ablesen kann.

Ich kenne mittlerweile keine CMS Systeme mehr die darauf nicht Rücksicht nehmen würden, bzw. denen man die SEO Freundlichkeit nicht mit wenigen Handgriffen per Plugin oder Boardmitteln beibringen kann. Ich spreche hier als Anwendungsentwickler mit dem Schwerpunkt der Entwicklung von  Anwendungen auf WEB Basis. Nicht immer aber oft ist dabei auch die Suchmaschinenoptimierung ein wichtiger Bestandteil.

ASP.NET ist in der Hinsicht nicht immer ein Freund, aber es gibt Mittel und Wege.

Um Suchmaschinenfreundliche URL’s generell ind ASP.NET umsetzten zu können benötigen wir das URLRewrite Modul für den IIS. Dies ist in einer Srandard Installation des IIS nicht vorhanden. Diese kann man sich leicht von der Seite http://www.iis.net über den Web Platform Installer runter laden und installieren.

Das URLRewrite Modul lässt sich dann nachdem es installiert und in der IIS Website Konfiguration aktiviert wurde,  mit Rewriteregeln in der Web.config mit den entsprechenden regeln füttern.

Dazu erstsellt man unter dem Tag <system.webServer> folgende Struktur:

<rewrite>
<rules>
<rule name=”Rewrite Rule”>
<match url=”^cms/([0-9]+)”/>
<action type=”Rewrite” url=”Zielseite.aspx?c={R:1}”/>
</rule>
</rules>
</rewrite>

Rule name kann ein beliebger Name für die Regel sein.

Match Url enthält die Regexpression für die Regel.

Action Type gibt in diesem Fall an wo hin der Request weitergeleitet werden soll, als die Url die wir “verschleiern wollen.

Beispiel mit einem Parameter

<rule name="CMS Rewrite">
<match url="^cms/([0-9]+)"/>
<action type="Rewrite" url="cms.aspx?c={R:1}"/>
</rule>

Diese Regel wertet die suchmaschinenfreundliche URL aus welche cms/ enhält. Die nach dem / angehängte Zahl gibt den eigentlichen Content (z.B. ID des Datensatzes) an der angezeigt werden soll. Die dabei ausgewertete ID wird an die richtige Server Url per Parameter mit dem Tag {R:1} angehängt.

Aus http://www.angermeier.net/cms.aspx?c=123 würde damit eine suchmaschinenfreundliche Url http://www.angermeier.net/cms/123

Beispiel mit 2 Paraneter

<rule name=”Produkt Image Rewrite”>
<match url=”^produkt/([0-9]+)/([0-9]+)”/>
<action type=”Rewrite” url=”produkt.aspx?p={R:1}&amp;img={R:2}”/>
</rule>

Hier ist der Aufbau wieder ähnlich dem ersten Beispiel, enthält aber 2 Parameter die wir über die Rewrite Regeln suchmaschinenfreundlich Gestalten werden. {R:1} gibt dabei den ersten Parameter an, {R:2} den zweiten Parameter.

Aus http://www.angermeier.net/produkt.aspx?p=123&img=456 würde damit eine suchmaschinenfreundliche Url http://www.angermeier.net/produkt/123/456

Dieses Szenario lässt sich sicherlich noch wesentlich verbessern, indem man am ende der url einfach den Namen des Produktes anhängt. Wie zum Beispiel:

http://www.angermeier.net/produkt/3838/1/Aqua_science_blue_54W_22K_T5.html

Die Regexpression sucht nach dem Wortteil Produkt, gefolgt von zwei Nummern. Alles was danach noch angehängt wird, wird nicht berücksichtigt. Dies lässt sehr viel Freiraum für die eigene Kreativität.

Mit dieser Rewrite Engine und den Regexpressions hat man sehr viel Spielraum für seine eigene Vorstellung, und kann sich optimal auf die Gegebenheiten einstellen. Dieser Beitrag ist keine Anleitung wie man Suchmaschinenoptimierte URL’s am besten optimiert, sondern wie man dies grundsätzlich bei ASP.NET Anwendungen umsetzten kann. Dazu finden sich im Web einige sehr spannende Anleitungen und How To’s.

Grünhaus Energie Kampagne
 

OpenNMS Logo

In diesem How To wird Schritt für Schritt erklärt wie man OpenNMS auf einem Debian 6.0 Squeeze System installiert. Für dieses How To ist eine frische Installation von Debian 6.0 Squeeze Voraussetzung. Eine Standard Systeminstallation reicht aus. GGf. noch SSH (apt-get install ssh) nachinstallieren. Mehr ist erstmal nicht nötig.

Installation von OpenNMS

OpenNMS bniete für die meisten Debian Versionen fertige DebianPakete an.  Selbst bauen ist daher nicht nötig. Vorteilshaft an dieser Sache, man muss sich um keine Anhängigkeiten kümmern, da alle über die Debian Paketverwaltung aufgelöst werden. Um OpenNMS  zu installieren zu könnem müssen zunächst die Sourcen für OpenNMS im APT eingetragen werden:

vi /etc/apt/sources.list
deb http://debian.opennms.org stable main
deb-src http://debian.opennms.org stable main

Damit man die Pakete probemlos installieren kann muss man sich noch den OpenNMS Key runterladen und zur Paketverwaltung hinzufügen.

wget -O - http://debian.opennms.org/OPENNMS-GPG-KEY | sudo apt-key add -

Danach kann man direkt mit der Installation beginnen:

apt-get install opennms

Während der Installation treten zwei Meldungen bzgl. iplike und der OpenNMS Konfiguration auf. Diese muss man zunächst mit OK Übersprungen. Dies werden wir in den folgenden Schritten fortführen.

Postgres Konfiguration

Standardmässig verwendet OpenNMS eine Postgres Datenbank. Die Datenbank Engine wird bereits mit der OpenNMS Installation installiert. OpenNMS gibt in Ihren How To’s vor dass OpenNMS ohne Passwort auf die Datenbank zugreift. Aus dem Sicherheitsaspekt gesehen nicht ganz optimal, der Einfachheit halber werde ich aber in meinem How To ebenfalls darauf verzichten.

Dazu muss man folgende Änderungen an der Postgres Konfiguration vornehmen:

Änderung der pg_hba.conf
vi /etc/postgresql/8.4/main/pg_hba.conf
# TYPE DATABASE USER CIDR-ADDRESS METHOD

# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all  ::1/128 trust

Nach der Änderung sarten wir Postgres neu:

/etc/init.d/postgresql restart

Datenbank anlegen

Nun müssen wir für OpenNMS eine Datenbank anlegen:

createdb -U postgres -E UNICODE opennms

Danach prüfen wir ob wir auf die Datenbank zugreifen können:

psql -U postgres --host=localhost opennms

Es sollte nach dem Aufruf der Prompt der Postgres Datenbank erscheinen. Diese schaut je nach Hostname in etwa so aus:

opennms=#

Mit \q kann man die Postgres Eingabeaufforderung wieder verlassen

Installation von iplike

bei der Installation von OpenNMS werden wir darauf hingewiesen dass iplike nicht installiert werden kann. Dies ist erst nach der Datenbank Konfiguration möglich. Nun installieren wir iplike, dies geschieht durch ausführen des folgenden Befehls:

install_iplike.sh

Nicht wundern, das einzige was diese Script zurück gibt ist CREATE FUNCTION.

OpenNMS fertig installieren

Java Umgebung einrichten:

/usr/share/opennms/bin/runjava -s

OpenNMS Installer ausführen:

/usr/share/opennms/bin/install -dis

Nach diesem Schritt muss man nur noch den Dienst starten und kann direkt loslegen:

/etc/init.d/opennms start

Nun ist die Installation von OpenNMS abgeschlossen. Man kann nun auf das Web-Frontend über den Link: http://servername:8980/opennms darauf zugreifen. Die voreingestellten Zugangsdaten lautet: Benutzer Admin, Passwort Admin. Das Passwort sollte sofort geändert werden. Dazu gibt es im Admin Menü einen Eintrag Configure Users and Groups.

 

Heute habe ich keine so guten Nachrichten zu vermelden. Seit dem Tod des C. tominiensis am 04. Juli 2011, ist nun fast der ganze Fischbestand verstorben.

Am Leben sind im Augenblick noch

  • Valenciennea sexguttata
  • Cirrhilabrus cyanopleura
  • Biochoeres chrysus
  • ein Chromis viridis

Verstorben sind nun in den letzten Tagen

  • zwei Zebrasoma flavescens
  • fünf Chromis viridis
  • 1 Pärchen Amphiprion percula (eigene Nachzuchten)
  • Cryptocentrus cinctus
  • Centropyge flavissima
Der verbliebene Chromis sieht auch nicht seht gut aus, und wird vermutlich auch bald ableben. Der B. Chrysus sowie der C. Cynopleura und die Gundel machen nach wie einen fiten Eindruck und haben keine Krankheitsanzeichen. Die Garnelen und Einsiedlerkrebse sind davon ebefalls nicht betroffen. Korallen stehen alle gut und haben ein gutes Polypenbild.
Behandelt wurde mit Microbe Lift Herbtana (reef) und mit Aquarium Münster protomarin coral. Beides zeigte aber keine nennenswerte Wirkung. Ich gehe davon aus dass die Infektion zu heftig war. Die Tire waren wie gesagt gut genährt, hatten keine Anzeichen von schwächen. Zudem habe ich beim Tod des C. tominiensis die UV-Anlage und eine Ozon Anlage in Betrieb genommen.
Ein Test aler relevaten Wasserwerte blieb Ergebnislos:
Ph: 8,2
Kh: 8,5 (Tropic Marin)
Calcium (Ca): 420 mg/l (Salifert)
Magnesium (Mg): 1280 mg/l (Salifert)
Nitrit (No2): n.n. (Tropic Marin)
Nitrat (NO3): 5 mg/l (Hanna)
Phosphat (Po4): 0,05 mg/l (Hanna)
Dichte: 35 psu
Temp.: 28 °C
Nun bleibt erstmal abzuwarten wie es weiter geht, und ob es weitere Verluste gibt.
© 2012 www.coral-riff.net Suffusion theme by Sayontan Sinha