Schlagwort-Archive: analyse

ZABBIX Monitoring Network

Server und Application Monitoring mit Docker

Bitpetite

Je nachdem in welchem Umfeld du unterwegs bist, sammelst du über die Zeit mehrere Server an. Ob diese nun virtualisiert sind oder nicht ist dabei nicht entscheidend. Die Frage die du dir stellen solltest: Wie kannst du den Überblick behalten?

Ich habe beispielsweise einen ganzen „echten“ Server nur zur Sicherung der Daten meiner anderen Server. Dies realisiere ich mittels der Open Source Software BackupPC (ich blogge hierzu gerne, wenn es interessant ist – einfach Kommentar hinterlassen). Auf dieses System greife ich natürlich nicht täglich zu, sondern nur im Notfall. Doch wie häufig prüfe ich, ob das System überhaupt läuft? Du ahnst es schon: Gar nicht! Ohne Witz, ich denke an diesen Backupserver nur genau einmal im Monat: Wenn die Rechnung kommt.

Und hier ist der Knackpunkt: Mit steigender Anzahl an Systemen, sinkt die Motivation, wirklich alle Systeme im Blick zu behalten. Bei meiner Cloud oder der Piwik-Instanz werde ich schon merken wenn die ausfällt, auch wenn es sicherlich einige Stunden dauert, aber bei Systemen die halt „einfach da sind“ kann es Tage oder Wochen dauern. Daher sollte ich hier nun endlich mal ein Monitoringsystem aufsetzen.

Definition von Monitoring

Im Monitoring (zumindest für mich) geht es mir darum, eine beliebig große Anzahl an Servern und auch Applikationen zu überwachen. Und zwar in einem Intervall, den ich selbst nicht leisten kann, sprich: „Alle X Sekunden“ oder „Alle X Minuten“. Die ermittelten Daten werden gespeichert und können rückwirkend ausgewertet werden.

Innerhalb dieser Intervalls werden dann verschieden viele Parameter abgefragt. Je nach Ergebnis der Abfrage und je nach Parameter sowie eben auch möglicher anderer Parameter können dann verschiedene Ereignisse ausgelöst werden sodass ich bspw. eine E-Mail erhalte, wenn ein Server abstürzt oder wenn der verfügbare Speicherplatz einer Festplatte nahezu aufgebraucht ist. Aber eben auch die Verfügbarkeitsprüfung von Applikationen ist wichtig, bei dem angesprochenen Backupsystem bspw. ist es zwar nett zu wissen, dass der Server läuft, aber dadurch weiß ich ja noch lange nicht, ob die Applikation auch verfügbar ist.

Na toll, dann musst du halt den ganzen Tag in dieses Monitoring-System glotzen oder was?“ Fragst du mich jetzt vielleicht…. nein 😉

Die oben erwähnten Ereignisse können genutzt werden um mich über gewisse Situationen informieren zu lassen. Bspw. währe ein wichtiges / kritisches Ereignis, wenn ein Server ausfällt. Und ich habe für mich entschieden, dass ich bei kritischen Ereignissen definitiv sofort benachrichtigt werden, bspw. in Form einer E-Mail.

So einfach geht’s: ZABBIX Monitoring Server einrichten

netcup.deIch habe mir bei netCup einen ganz kleinen Server geholt, der bei mir nun ausschließlich das Monitoring ausführen wird. Damit ich mich nicht um die Installation bzw. Migration der Monitoring-Anwendung kümmern muss, werde ich -wiedermal- Docker einsetzen.

Server-System vorbereiten

Dazu habe ich ein Debian Wheezy aufgesetzt (musst du nicht genau so machen), mit diesem Startpunkt ergibt sich erstmal die Installation von Docker und nginx auf dem Server:

Nun habe ich alle Pakete aktualisiert und nginx installiert (brauche ich später mal). In meinem Setup muss ich nun noch das kernel-update auf eine Version > 3.10 vornehmen.

Nachdem der neuere Kernel installiert ist, kann ich mit der Installation von Docker fortfahren. Hierzu muss ich erstmal die passenden Software-Repositoriys im System hinterlegen:

Unter Debian Wheezy muss ich in "/etc/apt/sources.list" nun noch die Zeile "deb-src [arch=amd64] https://download.docker.com/linux/debian wheezy stable" auskommentieren.

Nun kann ich den Paketmanager aktualisieren lassen und dann Docker in der Community Edition installieren:

ZABBIX Server als Docker-Container aufsetzen

Ich habe mich für ZABBIX als Monitoring-Server entschieden. Das System hatte ich vor einigen Jahren schon mal für einen Anwendungsfall im Einsatz und kenne zumindest noch einige Grundlagen. Außerdem habe ich damit später noch etwas vor (mehr dazu in den kommenden Beiträgen). ZABBIX benötigt eine Datenbank. Und im Sinne von Docker benötigen wir also zwei Container: Einmal der Monitoring-Server und einmal dann halt die Datenbank.

Zum Einsatz kommt hier ZABBIX Version 3.2.4 und eine MariaDB. Beide Images stammen vom monitoringartist. Die Container werden jeweils als „deamon“ (-d Parameter) gestartet, laufen also im Hintergrund und Docker wird außerdem angewiesen, die Container sofort neuzustarten, falls sie Abstürzen (--restart unless-stopped Parameter).

Damit die DB zwischen den Starts korrekt persistiert wird und backups gezogen werden können, werden zwei Ordner als Volumes gemounted. Außerdem wird localtime als Read-Only eingebunden. Ich habe mich hier überwiegend an die Anleitung gehalten.

Neben der DB brauche ich dann noch die eigentliche Server-Applikation. Hierzu nehme ich vom monitoringartist das ZABBIX XXL-Image. Hier geben wir ebenfalls localtime als Read-Only rein. Ansonsten gibt es keine weiteren Volumes, da der Server keine eigenen Daten persistiert (nur die DB). Ich verlinke dann noch die Datenbank und gebe zwei Ports frei damit von außen mit der Applikation kommuniziert werden kann (hier kommt später nginx zum Einsatz).

Damit Zugangsdaten und einige Konfigurationen passen, setze ich noch verschiedene Environment-Variablen.

Nun läuft der ZABBIX Server, bis das Web-Interface erreichbar ist, kann es wohl 60 Sekunden dauern, also nicht erschrecken. Du kannst darauf zugreifen, dazu benötigst du die IP / URL deines Server und hängst da den Port (in diesem Fall 8090) hinter, also bspw.: http://server-ip:8090

ZABBIX DashboardDie Standard-Login-Daten sind „admin“ als Benutzername und „zabbix“ als Passwort.

Tipp: Das Passwort solltest du sofort ändern.

Ersten Server ins Monitoring aufnehmen

Der erste Server der im Monitoring überwacht werden sollte, ist der Monitoring-Server. Zugegeben, das hört sich sinnfrei an, wenn der Monitoring-Server abstürzt kann er dich darüber schließlich nicht informieren. Ich mache es dennoch. Zum einen möchte ich genau jetzt wissen, ob Daten erfasst werden können, zum anderen möchte ich die Daten für rückwirkende Analysen erfassen.

Du gehst dazu über den Menüpunkt „Configuration > Hosts“ und dort siehst du den „Zabbix Server“. In rot steht „deactivated“ dort, wenn du darauf klickst, aktivierst du die Aufzeichnung.

Weitere Server ins Monitoring aufnehmen

Von hieran geht es unglaublich schnell, weitere Server ins Monitoring aufzunehmen. Ich habe inzwischen auf allen Servern Docker laufen da ich künftig jegliche Applikationen jeweils in einem Docker-Container betreiben möchte. Daher setze ich nun auch auf den zu überwachenden Servern einen Zabbix-Agent im Docker-Container ein. Mein Vorteil: Ich führe ein einziges Kommando aus und der Server ist im Monitoring.

Hierzu setze ich, ebenfalls vom monitoringartist, das Image dockbix-agent-xxl-limited in der neusten Version ein. Wichtig hierbei ist, dass der --net=host Parameter verwendet wird, sodass der Docker-Container im selben Netzwerk-Stack läuft wie der Host. Außerdem muss der Container mit dem --privileged Parameter gestartet werden, da er auf viele Systemeigenschaften zugreifen muss, die überwacht werden sollen. Das gesamte Filesystem muss gemountet werden, zusätzlich muss /var/run in den Container (auf selben Pfad) gelegt werden. Auf diese Weise kann der ZABBIX-Agent im Container alles überwachen.

Über die zwei Environment-Variablen ZA_Server und ZA_ServerActive wird die Verbindung zum Monitoring-Server festgelegt.

An diesem Punkt kam ich ins Grübeln: Keinerlei Autentifizierung findet hier statt. Keine Tokens, keine Zugangsdaten, nix… Was, wenn jemand meine ZABBIX-Url herausfindet und mich mit Daten überflutet? Nachdem ich den ersten Versuch startete merkte ich aber schnell, dass eine Authentifizierung hier nicht notwendig sein wird.

Der Agent startet und Fragt vom Angegebenen Monitoring-Server ab, was er alles überwachen soll (dies kann pro Server variieren). Der Monitoring-Server schaut anhand des Anfragenden Hostname in der Konfiguration. Solange ich also in ZABBIX einen Server nicht eintrage, bekommt dieser „nichts“ zurück. Denn ZABBIX möchte von diesem Server dann keine Daten haben.

Damit der Agent also irgendwas übermittelt, muss ich erstmal den Server anlegen und konfigurieren. Dies erfolgt über den Menüpunkt „Configuratino > Hosts“. Hier siehst du eine Liste aller Hosts und kannst auch einen neuen Host anlegen.

ZABBIX Host anlegenIn der ersten Ansicht gibst du den Host-Name (der Hostname des Server), den Visible-Name (mit diesem Namen zeigt ZABBIX dir den Server an) und die IP Adresse des Servers an.

Im Tab „Templates“ wählst du dann noch Templates, ich wähle hier überwiegend nur „Template OS Linux“. Über die Templates werden die verschiedenen Parameter definiert, die überwacht werden sollen (bspw. CPU Auslastung, Festplattenspeicher, …).

ZABBIX: GLIBC-Error beheben

Ich hatte beim Start des ZABBIX-Agent auf einigen Servern Probleme. GLIBC war wohl nicht in der korrekten Version vorhanden. Dies lässt sich fix beheben:

Danach unbedingt den eingefügten (letzten) deb-Eintrag auskommentieren. Jetzt noch den Docker-Container vom Zabbix Agent löschen und neu anlegen.

Piwik - Dashboard

Piwik – Warum die Arbeit?

bitconnect

Auf redirect301 gibt es aktuell die große Piwik-Umfrage. Eine dort gestellte Frage, die ich sehr interessant fand ist: Warum nutzen so viele Piwik?

Ein Aspekt der diese Frage erst wirklich attraktiv macht ist, dass Piwik pflege braucht. Eine Piwik-Installation benötigt eine Datenbank und den Speicherplatz dafür, sowie ebenso Speicherplatz für die Piwik-Dateien.

Piwik – der Aufwand

Für den, der die Piwik-Installation betreibt, ist Piwik Aufwand. Es muss nicht nur einmal Installiert und dann ewig genutzt werden, nein: es gibt auch Updates. Alle zwei oder drei Monate tippe ich mal, wird dann der Versionshinweis oben rechts in der Ecke Orange und dann steht da „Es gibt ein Update“ oder so ähnlich.

Das gute ist inzwischen (ich nutze Piwik schon seid der Version 0.5 oder so): es gibt einen automatischen Update-Prozess. So kam es bei mir noch nie zu einem Fehlerfall und ein Update von Piwik dauerte ganze 2 oder 3 Minuten.

Den Aufwand, eine eigene Piwik-Installation zu betreiben, empfinde ich als sehr gering.

Aufwändig wirds nur, wenn es ein Problem mit dem Piwik gibt, und man aus versehen die DB löscht (ist mir mal vorgekommen), denn so eine 200 – 300 MB große Datenbank (da lachen jetzt ein paar Piwik-Admins drüber, weil ich so kleine DBs als groß bezeichne) kann man nicht mit jedem phpMyAdmin mal eben so hochladen.

Piwik – Speicherbedarf

Wie hoch ist der Speicherbedarf einer Piwik-Instanz? Also ich betreibe mein Piwik nun seid über zwei Jahren, davor hatte ich eine andere Instanz, eigentlich mehrere aber die habe ich zusammengeführt.

Neben den Dateien, die in Piwik Version 1.7.1 knapp 19 MiB Speicherplatz benötigten, kommt die Datenbank.

Nach zwei Jahren, aufzeichnung von überwiegend sehr kleinen Projekten, zeichnet meine Instanz nun 18 Webseiten auf. Pro Monat sind es dennoch nur 10.000 – 12.000 Besucher. Die Piwik-Datenbank ist aktuell 184 MB groß und hat 130.000 Besucher mit über 300.000 Aktionen erfasst.

Ich hatte übrigens zwischendrinn wohl mal einen seltenen Fehler, der das Piwik-Team im rotieren hielt, denn meine Piwik-DB stieg mal bei der hälfte der Datenmenge auf 1,6 GiB Speicherplatz an ^^

Also: ich habe viele kleine Projekte, nur drei die etwas größer sind, aber noch nicht lang aufgezeichnet werden. Daher ist hier alles noch so „klein“.

Piwik – Warum eigentlich?

Kommen wir nun zurück zu dem Punkt: Warum Piwik?

Ich habe geschrieben, dass Piwik Speicherplatz braucht, dass man Updates einspielen muss… rundum: Es benötgit Zeit, um Piwik zu betreiben. Warum sollte man dies also tun?

Geiz! Ganz simpel: Geiz!

Hört sich krass an, aber ich glaube, dass ist mein ansporn, Piwik zu benutzen. Ich gönne es Google nicht, zu wissen, wie viele Besucher ich habe. Denn Google Analytics wäre die Piwik-Alternative. Doch was mache ich wenn ich GA benutze? Ich schmeiße Google noch mehr Daten in den Hals, als es mit seinen über 60 Diensten eh schon hat.
Was mit den Daten passiert weiß im Endeffekt keiner mehr.

Also benutze ich Piwik, um die Daten, die ich über die Besucher erfasse -was laut Datenschützer eh schon schlimm ist- für mich zu behalten. Ich kann auch im Piwik konfigurieren, wie weite die IP anonymisiert wird, also bspw 123.456.789.101 (komplett), 123.456.789.0 (letzte 3 Zahlen weg), 123.456.0.0 (letzte 6 Zahlen weg), 123.0.0.0 (letzte 9 Zahlen weg) oder eben 0.0.0.0 (alle Zahlen weg).

Bei Google kann ich nicht prüfen, ob das lediglich so angezeigt wird, oder obs wirklich in der DB gekillt ist. Bei Piwik ist das kein Problem: reinschauen und fertig.

Piwik – Betriebsumfeld

Ich betreibe Piwik auf einem meiner vServer. Ich habe zwei virtuelle WebServer die sich lediglich darum kümmern, über 20 Domains online zu halten, einer davon kümmert sich (leider) noch ums Piwik. „Leider“ aus dem Grunde, weil das Piwik offline ist, wenn der WebServer mal abschmiert (99,8% Verfügbarkeit aktuell), besser wäre ein eigener vServer fürs Piwik.

Piwik – Alternativen

Nein: es gibt keine Alternative zu Piwik. Schonmal überlegt, warum so viele Leute GA nutzen? Weils genial ist. Piwik ist aktuell die einzige wirkliche Alternative dazu, wobei auch bei Piwik noch Features felhlen.

Piwik – Fehlende Features

  1. Zeiträume Vergleichen (bspw. KW1 und KW3; Januar und März)
  2. Asynchrones Tracking
  3. Besucherdauer im Intervall (alle 10 Sekunden prüfen ob der Besucher noch auf der Page ist, aktuell ist Besuchsdauer = Zeit des letzten Visit – Zeit des ersten Visit)
  4. Spaltenwahl des Dashboards (immer fest definiert Besuche, Seitenansichten und Umsatz)
  5. Rechtehandling (jeder Piwik-Benutzer sieht bspw. alle anderen Benutzer, kann nicht eingeschränkt werden)

Piwik – Fazit

Piwik betreiben also die Leute, die zwar Besucherdaten erfassen, aber damit verantwortungsvoll umgehen. Denn „schlimmer“ als Besucherdaten erfassen ist ja eigentlich nur die erfassten Besucherdaten gleich noch einem riesen Konzern in den Rachen zu schmeißen, ohne Überblick, was letztendlich damit passiert.

Geheimnisse sollte man für sich behalten, und wer wann wo eine Webseite besucht, sollte keinen was angehen, außer den Besucher und den Betreiber. Warum den Betreiber? Der sollte wissen, was viel genutzt wird und was nicht, um sein Angebot nachhaltig zu verbessern, das merke ich bei einem Projekt, welches ich ehrenamtlich unterstütze, aktuell sehr stark.

 

PS: Ich nutze diverse Diensete von Google, verteufel den Konzern nicht, nur betrachte ich Google nüchtern und klar. Google hat die besten Dienste, logisch, aber man sollte dennoch drauf achten was diese Dienste so alles mit Daten veranstallten.

Bloggerei adé: Besucherauswertung bleibt privat

Genesis Mining

Zusammengefasst: ich schaffe die Bloggerei ab!

Was ist die Bloggerei

Die Bloggerei ist quasi ein Katalog, in dem man seinen Blog eintragen kann. Nutzt man WordPress, kann WordPress bei jedem neuen Artikel eine Art Ping an die Bloggerei senden, diese rufen dann die Überschrift und die Beschreibung des neuen Artikel ab und zeigen diesen im Katalog an. Der Katalog ist Kategorisch aufgebaut.

Prinzip dabei ist halt, dass sich jeder kleine Blog dort eintragen kann und Besucher erhält, auch wenn er noch unbekannt ist. Die Überschrift und die Beschreibung müssen natürlich interessant sein.

Das Bloggerei-Diagramm

Ist ein Blog einmal eingetragen, kann in der Bloggerei angezeigt werden, wie viele Besucher er erhält… Dieses Diagramm kann fehlinterpretiert werden.

Es hat mich schon immer gewundert: das Diagramm aus der Bloggerei stimmte einfach nicht mit den von mir aufgezeichneten Besuchern überein. „Seit Eintragung: 739 Besucher“? So viele sind doch nicht über die Bloggerei gekommen!?

Diagramm-Darstellung von der Bloggerei; man könnte vermuten es sind die Besucher aus der Bloggerei auf meinem Blog, nein es sind einfach flasche Zahlen, fast meine richtigen Besucherzahlen.

Bloggerei-Diagramm der Besucherzahlen

Bloggerei-Nutzen analysieren

Ich habe mein Piwik dazu animiert, die Besucher anzuzeigen, die über die Bloggerei gekommen sind, 7. 7 Besucher in zwei Monaten, haben den Weg in meinen Blog durch die Bloggerei gefunden. Was habe ich dafür?

Nachteile der Bloggerei

Die Bloggerei soll ja dazu dienen, Besucher auf meinen Blog zu bringen, wie ich aber festgestellt habe, passiert da nicht viel. Ich habe aber einen Nachteil: Manchmal lange Ladezeiten, das Bild muss ja erstmal aus der Bloggerei geladen werden, es liegt nicht lokal gespeichert!

Warum kann das Bild nicht lokal liegen? Dann würde die Bloggerei nicht mitbekommen, wie viele Besucher mein Blog hat. Durch das laden der exterenen Bilddatei, kann die Bloggerei nämlich in gewissem Maße auch meine Besucher auswerten, quasi wie Google Analytics/Piwik, nur qualitativ schlechter!

Fazit der Bloggerei

Da es nur Nachteile gibt, und diese durch die Besucher der Bloggerei nicht ausgeglichen werden können, habe ich vor einigen Tagen dann „Adé Boggerei“ gesagt 🙂 Schluss mit indirekter weitergabe der Besucherdaten!

Meine Besucher bleiben mit ihren informationen meine Besucher! Kommt meine Mutter zu besuch, habe ich auch nicht im Eingang eine Kammera, welche von meinem Nachbarn ausgewertet wird, nur damit er weiß mit wem ich so rumhänge oder!?

Nutzt ihr die Bloggerei? Habt ihr schon mal festgestellt, das der ein oder andere Seitenaufbau sehr lange dauert?