Lastverteilung, Backends und Statistiken

In den letzten Tagen, schon eher Wochen war es hier recht still. Der Grund ist die Last des Servers gewesen. Da ein Bekannter von mir einen schlecht programmierten Chat benutzt war die Last auf der Datenbank und dem Webserver teilweise sehr hoch. Dadurch konnten ein paar Seiten nicht mehr ausgeliefert werden. Damit meine Seiten erreichbar bleiben habe ich einfach schnell alle hinter einen Loadbalancer gepackt, der diese Seite z.B. auf drei Webserver verteilt. Die Datenbank wurde auf eine zweite MySQL geschoben und alle Webserver benutzen jetzt für diese Seite die neue Datenbank über eine VPN Verbindung.

Das geht aktuell noch sehr gut, sollten die Besucherzahlen weiter so steigen wird auch hier die nächste Lösung zum Einsatz kommen. Diese wird aber aktuell noch getestet, damit nachher nichts schief läuft.

Das nächste Problem war dann mit der Verteilung auf die verschiedenen Server die Uploads beim Wordpress und anderen. Diese werden nur auf dem Server abgelegt, auf dem ein Upload ausgeführt wurde. So sind diese Dateien auf den anderen Servern nicht vorhanden. Dazu wird jetzt regelmässig zwischen den einzelnen Servern synchronisiert. Das übernimmt Unison, da es sehr gut mit SSH funktioniert.

Bei einem anderen Thema wird aktuell an Lastverteilten Front-, Backends und Proxys gebastelt. Der Grund ist Google Analytics, GetClicky usw. die Trackingdaten auf Ihren Servern speichern. Jetzt wird das alle komplett selbst gemacht. Alle Daten werden bei mir gespeichert, nichts mehr an andere Anbieter übertragen. Denn es könnte immer mal sein, das Daten an dritte weitergegeben werden, ein Anbieter stellt seinen Dienst ein oder der Dienst wird kostenpflichtig. Wenn auch nur zum Teil kostenpflichtig, fehlen dann vielleicht dann im kostenlosen Teil die Daten die am wichtigsten sind.

Weitere Argumente gegen einen externen Dienstleister sind Ausfälle bei diesem. Als beim letzten mal Google ausgefallen ist (DNS/Domainklau) waren alle Seiten, die Google Analytics einsetzen nicht mehr erreichbar oder sehr eingeschränkt nutzbar. Es kam immer zu Timeouts beim einbinden des Google Codes und Seiten wurde nur halb oder sogar überhaupt nicht mehr angezeigt. Schlimmer als ein Ausfall ist aber ein erfolgreicher Hack der Google Server. Sollte das einmal passieren könnten Angreifer die Hälfte aller Internetseiten weltweit umleiten auf eigene Seiten.

Damit die eigenen Statistiksoftware stabil und zuverlässig erreichbar ist, ist sie auch hinter einem Loadbalancer, die jeweiligen Frontends sind aber so abgespeckt, das sie nicht mehr viel, bis auf eine Funktion Scriptseitig ausführen können. Sie rufen die angeforderten Inhalte auf den Backends ab, die jeweils wieder nur einen Teil der Aufgaben übernehmen. Ein paar können PHP, die anderen wiederum können z.B. nur Perl. Das ganze setzt sich somit wie folgt zusammen.

  • 2 Loadbalancer
  • Je Loadblancer 4 Frontends
  • Je Frontend 4 PHP und 4 Perl Backends

Die Frontends haben nur die Funktion die Anfragen für die Backends so verarbeiten damit diese mit den richtigen Parametern gefüttert werden. Sollte jetzt jemand z.B. versuchen und auch noch Erfolg haben PHP- oder Perlscripte dazu zu benutzen um externen Code auf dem Webserver abzulegen ist es zwar toll für den Angreifer. Problem ist nur das er im weiteren Verlauf überhaupt nicht auf sein zuvor abgelegtes Script zugreifen kann. Es wurde, wenn es jemand überhaupt schaffen sollte, auf einem der Backends ausgeführt. Diese sind aber überhaupt nicht vom Internet aus erreichbar. Auch nicht über angehängte Parameter könnte man den Frontendserver dazu zubewegen diese weiter durch zureichen. Dazu kommt noch, der Angreifer weiss gar nicht das er auf dahinter liegende Server zugreift und schon gar nicht auf welchen er landet.

Was weiter oben schon angesprochen wurde ist hierbei kein Problem, wenn eine Anfrage sehr langsam oder gar nicht von einem Backend beantwortet werden kann. Bei den ersten Tests war es schon erstaunlich wie schnell die Seiten aufgebaut wurden, auch wenn die entsprechenden Backends komplett abgeschaltet waren. Der Rest der Seite wurde von den anderen geliefert und prompt vom Browser dargestellt.

Zusätzlich wird noch die MySQL-Datenbank in Zukunft mit primary und secondarys betrieben um die lesenden Zugriffe auf mehrere Server besser zuverteilen. Schreibend wird auf den primary zugegriffen, lesend über einen MySQL-Proxy auf allen, je nach dem wie die Last auf den einzelnen Datenbankservern aktuell ist.

Der aktuelle Traffic ist pro Stunde bei ca. 500 - 700 MB, kommt dabei dann dazu das z.B. das Chatsystem wieder einmal amok rennt, wurde es ab und zu einmal eng für die anderen Seiten auf dem Server. Durch die Veränderungen ist es egal, wenn etwas passiert. Sollte ein Server überhaupt nicht mehr erreichbar sein sind noch genug andere vorhanden um die Anfragen zu verarbeiten. Einer der Nebeneffekte ist auch, man kann einzelne Server aus der Verteilung nehmen und auf Testdomains benutzen um mit der Live Konfiguration testen zu können. Klappt alles mit diesem Server nimmt man noch mehr aus der Verteilung, macht die Änderungen auf diesen auch und tauscht die neu konfigurierten Server mit den aktuell genutzten aus. Man muss dann nur noch die restlichen Server umkonfigurieren und anschliessend wieder mit in die Verteilung nehmen. Die User merken nichts davon und es ist auch wesentlich weniger Stress. Man weiß das man in Ruhe auch einmal einen Fehler machen kann.

Noch zwei alternativen zu Google Analystics

 

Gestern wurde ja schon Piwik hier vorgestellt. Zwei weitere alternativen zu Google Analystics sind Woopra und W3Counter. Woopra ist eine Java Applikation, daher kommt es für die viele nicht in Frage, die ein “normales” Webpaket bei dem Provider Ihrer Wahl haben, welches nur mit MySQL, PHP und Perl ausgestattet ist. W3Counter läuft komplett auf dem Server des Anbieters. Zwar gibt es eine kostenlose Free anmeldung, diese beinhaltet aber nicht alle Features.

 

What is Woopra?

Woopra is a robust web-tracking & analysis tool that works perfectly on any website. It is mainly targeted for small to medium websites ranging from few hundreds up to tens of thousands of daily page views.

Essentially, it is targeted for blogs interested in the most minuscule details of every single action. In addition, Woopra provides a precise real-time streaming of every single activity on the website.

Woopra also features a clean interface, including many graphical visualization components, such as charts, maps, panels… Along with many other clean and advanced options that make Woopra an ideal solution for webmasters who desire to discern all the aspects of their website.

Woopra Main Features

Die 2. Alternative ist w3counter.

Es gibt zwar eine kostenlose Free Version, aber wer mehr möchte muss einen Account anlegen der kostenpflichtig ist.

 

W3Counter is about answering important questions.

They’re the questions a site owner needs to ask to learn about and improve how visitors find and interact with your website.

Information about your website visitors

Who your visitors are

Where are my visitors located?
What languages do my visitors speak?
What browsers and platforms are used to view my site?
What screen resolution do visitors view my site at?
Do my visitors have JavaScript enabled in their browsers?

Referrers and search engines

Where your visitors come from

What webpages are linking to mine and how many people click those links?
What pages started linking to my site today?
What search engines do people use to find my site?
What search phrases or keywords are used to find my site?
What phrases brought visitors to my site for the first time today?

Entry pages, exit pages, and bounce rates

What your visitors see and use

What pages are viewed most often?
What pages are linked to or found in search results most often?
From which pages to visitors leave my website?

Click overlays, navigation analysis

How visitors interact with your site

Which links are being clicked on my pages, and which aren’t?
How many seconds or minutes do visitors spend browsing my site?
How many pages are being viewed during each visit?

Who's on my site now

What visitors are doing right now

Who’s on my site right now?
What outside links are visitors clicking on to find my site right now?
What searches are visitors performing to find my site right now?

 

 

Piwik # open source web analytics

piwik is an open source (GPL license) web analytics software. It gives interesting reports on your website visitors, your popular pages, the search engines keywords they used, the language they speak… and so much more.

piwik aims to be an open source alternative to Google Analytics.

piwik is different from the competition because:

  1. the features are built inside plugins: you can add new features and remove the ones you don’t need. If you are a developer, you can easily build your own plugins!
  2. you own your data. Piwik being installed on your server, the data is stored in your own database and you can get all the statistics using open APIs (publishing the data in many formats: xml, json, php, csv)
  3. (NOW AVAILABLE!!!) the user interface is fully customizable, you can drag and drop the widgets you want to display, create the reports you want

Give it a try

  • you can try the online demo that shows you the latest piwik release. Please note that all User Interface part is still in progress so don’t expect something big on this. This is the most visible part though :-)

to install Piwik, download the latest release, upload it on your webserver (you need at least PHP 5.1 and a Mysql database), and open your browser: the installation process is automatic and takes less than 5 minutes

Das werde ich dann mal genauer angucken. Gefunden übrigends hier.

Listinus Toplisten





Site Meter