Lange Zeit, damit meine ich viele viele Jahre, war der Mozilla Firefox meine erste Wahl beim Browser. Aber, schon vor 1-2 Jahre bemerkte ich Anfangs gelegentlich, zum Schluss immer öfter Unregelmäßigkeiten in der Stabilität des Browsers. Ich entwickele sehr viele Web Anwendungen und hin und wieder passiert es mir auch dass ich da einen Hund rein haue und der Browser ganz zu recht verrückt spielt. So dachte ich einige Zeit es liege vielleicht daran. Schnell viel mir aber auf das Internet Explorer, Chrome, Opera und andere diese Phänomene nicht hatten, was mich letztendlich wieder dazu zwang an der Stabilität von Mozilla Firefox zu zweifeln. Ich stieg auf den Google Chrome verwandten SrWare Iron um bin seit dem glücklich.
Was die Firefox Probleme anging macht ich mir zunächst keine großen Gedanken, mir war es unerklärlich, und ich wollte nicht glauben oder wahrhaben das der Mozilla Firefox einfach Probleme hat, war er doch viele Jahre mein stetiger und einziger Begleiter.

Vor nicht allzu langer Zeit stiess ich immer wieder auf einzelne Berichte im Internet wo User ähnliche Probleme äußerten. Ich begann damit mich mit dem Phänomen genauer zu beschäftigen. Für mich hat es den Anschein, dass gerade bei Javascript In Website der Browser zunehmend Probleme bekommt. Was mir in diesem Zusammenhang aufgefallen ist, bei Javascript-lastigen Webseiten gibt der Browser dafür verwendete Ressourcen nicht mehr frei. So hatte ich teils Mozilla Firefox Prozesse im Taskmanager die teils bis zu 1,5 GB groß waren. Ab ca. 800 MB macht sich das auch in der Geschwindigkeit deutlich bemerkbar. Das ging soweit dass man mit dem Firefox fast nicht mehr arbeiten konnte, und man dazu gezwungen wurden selbigen neu zu starten. Tat man dies nicht und nahm in Kauf dass es einfach etwas länger dauert, erledigte dass dann meist der Firefox selber für einen, indem er sich mittendrin ohne zutun einfach schloss.

Um ganz sicher zu gehen führte ich meine Test’s mit unterschiedlichen Seiten durch, überprüfte auch meine JavaScripts und so weiter und so fort. Konnte aber nicht wirklich fremde Faktoren eindeutig finden. Daher und das scheint sich in den immer mehr werdenden Berichten zu bestätigen, verliert der Firefox wohl an Stabilität, Zuverlässigkeit und damit seinen Ruf. Ich würde mich echt freuen, und ich wünsche es den Entwicklern von Firefox, dass der Mozilla Firefox wieder so stabil wird wie er einst war.

 

Es ist mittlerweile etwas mehr als ein Jahr her, alle Beteiligten werden diesen Tage lange Zeit nicht vergessen. Bei einem Kunden ist eine Webfarm in Betrieb, die auf virtuellen Server und einem HP SAN basiert. Das SAN hat insgesamt Netto 5 Tb (Terrabyte) Datenkapazität, Brutto, RAID 6 6 TB. Im Juni 2010 ging bei Wartungsarbeiten am SAN rund 1,5 TB Daten verloren, es existierte keine Datensicherung, und der Schaden auf dem LUN war mit herkömmlichen Mitteln nicht zu beheben.

Was war geschehen?

Ein Techniker hatte bei Wartungsarbeiten eine VMWare LUN mit einer Windows LUN verwechselt, was dazu führte dass beim Formatieren der Windows LUN nicht das Windows LUN formatiert wurde sondern die VMWare LUN mit ca. 20 Virtuellen Servern und insgesamt 1,5 TB Daten. Der folgenschwere Fehler wurde nicht gleich bemerkt, da die ESX Server immer noch Problemlos auf Ihr LUN und auf die Partitionen zugreifen konnten. Erst als die ersten Daten von der Windows Maschine auf die VMWare LUN geschrieben wurde, vielen alle ESX Gastsystem prompt aus. An dieser Stelle wurde ich als Experte hinzugezogen und versuchte zunächst mit normalen Boardmitteln und dem HP Support sowie dem VMWare Support den Fehler zu finden und zu beheben. Da zunächst kein Zusammenhang mit den Wartungsarbeiten hergestellt werden konnte tappten wir einige Zeit im Dunklen. Im Fokus lag zunächst die Wiederherstellung des LUN’s um damit die Ausgefallenen Systeme wieder zum Leben zu erwecken. Allerdings ich mit herkömmlichen Boardmitteln, sowie HP und VMWare nicht in der Lage den Fehler zu beheben. Das bedeutete dass die Daten unwiderruflich verloren waren. Dies stellte für den Kunden ein sehr großes Problem dar, da der Ausfall gerade in einer für den Kunden äußerst ungünstigen Zeit erfolgte.

Kroll Ontrack als Datenretter

Nach der erfolglosen Fehlerbehebung blieb einzig und allein nur noch die Inanspruchnahme eines professionellen Datenretters wie Kroll Ontrack. Die Kosten für die Wiederherstellung der Daten wurde inkl. der Kosten für die Diagnose im Express Service auf einen mitteleren 4 stelligen Eurobetrag angesetzt. Noch am Tag des Ausfalls begann Kroll Ontrack mit dem Remote Data Recovery™ (RDR®). Die erste Diagnose dauerte etwa 24 Stunden an, und es zeigte sich das ware Ausmass der Beschädigungen. Das VMWare Filesystem (vfs) konnte nicht mehr gerettet werden da zuviel Schaden angerichtet wurde. So blieb den Daten-Rettern von Kroll Ontrack nur noch die Möglichkeit nach den Virtuellen Disks der VMWare Maschinen zu suchen. Dabei wurde nach den EXT3 Partitionen sich sich innerhalb des VFS Filesystems befanden gesucht. Ich hatte die Aufgabe Kroll Ontrack zu jeder Tages- und Nachtzeit für evtl. Fragen zur Verfügung zu stehen, und bildete auch eine Schnittstelle zwischen dem Kunden und seinen Mitarbeitern, und zwischen Kroll Ontrack.

Für die Datenrettung musste Kroll Ontrack Tools entwickeln die in der Lage waren die EXT3 Volumes aus dem VFS Volume zu extrahieren. Dafür gab es nur eine einzige Person bei Kroll Ontrack und laut Aussagen von Kroll Ontrack die einzige Person auf dieser Welt, die dazu in der Lage war. Dieser war in einer Zweigstelle in den USA tätig, was dazu führte das der Großteil der arbeiten in der lokalen Ortszeit von USA ausgeführt wurden. Ich hatte einen Nacht lang die Gelegenheit dem Profi bei der Datenrettung zuzusehen. Das was ich da beobachten konnte war Hardcore Datenrettung, größer hätte die Herausforderung für den Profi nicht sein können denke ich. Für mich hatte es den Anschein als wäre es ein menschgewordener Computer, der in der Lage war Kolonen von Hexadezimalzahlen wie ein Buch zu lesen und im Kopf auf Korrektheit zu prüfen. Gekippte Bit’s hatte er schnell als solches erkannt und behoben. Ich ging zuerst davon aus dass es sich um eine Art Try and Error Verfahren handelt, aber weit gefehlt der Mann wusste genau was er tat. Und so konnte Kroll Ontrack den Dateninhalt von den 20 virtuellen Maschinen zu 75% wieder so herstellen dass ich laufende System daraus herstellen konnte. Übrig blieben ein paar nicht ganz so wichtige Maschinen die nicht gerettet werden könnten, und leider auch gut 50% der Daten einer der wichtigsten Server. Diese musste durch den Kunden und den Mitarbeiter wiederhergestellt werden.

Fazit

Kroll Ontrack bietet einen sehr guten Service und Profi-Know How der obersten Güte. Aber was mich die ganze Misere gelehrt hat ist folgendes: Egal in welcher Umgebung und im welchen Aufbau man seine Daten hält, trotz RAID Arrays, hochverfügbaren SAN’s und alle anderen erdenklichen Sicherungseinrichtungen, man ist nie vor solchen Horror Szenarien sicher. Eine einfache, funktionsfähige Datensicherung auf ein unabhängiges System sollte das mindeste sein. Viele Kunden sehen den Nutzen aber leider erst dann wenn sie ein solches Horror Szenario durchlebt haben. Aber muss wirklich erst das Kind in den Brunnen fallen? Immerhin bei den hier genannten Szenario wäre beinahe ca. 150 Arbeitsplätze auf dem Spiel gestanden. Der Schaden beim Kunden belief sich auf einen mittleren 6 stelligen Betrag. Die Kosten für das darauffolgende Sicherungskonzept das eine Sicherung auf drei unabhängige Systeme ermöglichte kostete insgesamt samt Hardware und Dienstleistung, einen kleinen 4 stelligen Eurobetrag.

 

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.

 

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.

Gothaer Versicherung
 

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.

AquaticSport.de - Alles rund um den Wassersport
© 2012 www.coral-riff.net Suffusion theme by Sayontan Sinha