Schlagwort-Archive: server

ZABBIX Monitoring Network

Server und Application Monitoring mit Docker

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.

TeamSpeak Server in unter 5 Minuten [teamspeak] [docker]

TeamSpeak Server in unter 5 Minuten. Alles was man dafür benötigt ist irgendeinen (v)Server, da können auch bereits andere Applikationen drauf laufen.

Um mit anderen Applikationen nicht in Konflikt zu kommen empfehle ich den Einsatz von Docker. Ich selbst nutze Docker immer mehr, da es die einzelnen Applikationen eines Servers kapselt sodass sie sich gegenseitig nicht beeinflussen.

Mit folgenden zwei Zeilen startet ihr euren Server:

Ihr könnt euch dann direkt per Client auf euren Server verbinden und mit der finalen Konfiguration beginnen.

Die wichtigen Dateien wie die sqlite-DB oder die Logs werden dabei unter /srv/docker/teamspeak abgelegt.

Plesk Onyx – ERROR: Zend_Db_Adapter_Exception: SQLSTATE[HY000] [2002] No such file or directory

Für die Entwicklung einiger eigener Plesk Extensions habe ich einen vServer gemietet auf dem ein Plesk Onyx läuft. Neulich gab es da 100 Paket-Updates und ich hab sie mal machen lassen. Kurz darauf der Schreck: Plesk funktionierte nicht mehr. Die Meldung: ERROR: Zend_Db_Adapter_Exception: SQLSTATE[HY000] [2002] No such file or directory. Und nun?

Ich habe im Internet gelesen und versucht. Nichts half. Etwa 10 Minuten nach dem „Update“-Klick wusste ich, das mysql nicht lief. Etwa 30 Minuten später wusste ich was los war:

Ergab:

Es gab also irgendwelche Probleme mit dem Pfad „/var/lib/mysql-files“. Ich habe geprüft was darin ist und wollte schauen ob die Berechtigungen passen… Der Ordner existierte nicht! OK, daran wird es wohl liegen, doch wo bekomme ich den Ordner her und was gehört da rein.

Die Lösung ist simpel

Ganz ehrlich, ich habe das folgende im Netz als Kommentar gelesen und wollte einfach nicht daran glauben dass es wirklich hilft:

Also: Einfach Ordner anlegen, Dateiberechtigungen setzen und schon startet MySQL wieder.

Im Plesk fand ich einen gelben Warnhinweis, dass ein update nicht lief wie geplant und ich doch bitte die Reperatur (link) starten solle. Geklickt, gewartet: Fertig.

mcmyadmin

[Minecraft] McMyAdmin: Minecraft-Server per WebInterface betreiben

McMyAdmin ist das wohl nütztlichste Minecraft-Tool was es meiner Meinung nach gibt. Nitrado hat irgendwann McMyAdmin eingeführt, da habe ich es kennengelernt, jetzt ist der Gameserver auf einen eigenen vServer gezogen, und wieder wird McMyAdmin genutzt.

Fotostrecke zu McMyAdmin

Eindrücke zu McMyAdmin

Nach der Fotostrecke möchte ich noch auf einige Bilder zu McMyAdmin genauer eingehen.

Serverstatus

Wer kennt es nicht: Man spielt auf dem Server und irgendwann „spackt“ es mal rum. Doch woran liegt es? Ist die Verbindung schlecht, mein PC zu überladen oder liegt es am Server? Wenn ja: Was genau fehlt da?

Über den Server-Status, den Startbildschirm von McMyAdmin, lassen sich diese Fragen schonmal auf Server oder Client beantworten und im Server-Fehler-Fall auch auf RAM oder CPU. Denn man hat sowohl die Übersicht, wie viel RAM genutzt wird, als auch die Übersicht, wie viel CPU beansprucht ist.

Wichtig ist: Der maximal auslastbare RAM wird über McMyAdmin konfiguriert. Natürlich können die Server-Kapazitäten nicht überschritten werden.

Berechtigungen

Na das nenn ich mal eine Übersicht. Server-Gruppen können definiert- und dann mit Usern und Berechtigungen finalisiert zu werden.

Ich wand PermissionsEx schon ziemlich klasse, aber über den MC-Chat war das manchmal schon schwierig, McMyAdmin bietet da visuell gesehen schon wesentlich mehr komfort.

In den McMyAdmin-Konfigurationen muss nur noch festgelegt werden, welches Permissions-Plugin befüllt werden soll.

Manko: Kein Export / Import der Permissions. Wird der Server gewechselt und ein neues McMyAdmin eingesetzt, müssen alle Persmissions per Hand übertragen werden.

Planung

Da McMyAdmin ein eigenständiger Prozess auf dem Server ist, welcher Minecraft startet (nicht umgekehrt wie es bei Plugins bspw. ist), gibt es die Möglichkeit, eine Art Cronjobs zu definieren.

Beispielsweise wird die Map jede Stunde gebackupt, jeden Tag um 4 Uhr der Server neugestartet (mit 4 Meldungen jeweils einige Minuten davor) oder eben auch alle 10 Minuten ein World-Safe durchgeführt.

Es wird übrigens nicht nur der Server neugestartet sondern eben auch die Logs rotiert (praktisch und übersichtlich).

Backups

Ein Bild sagt mehr als 1.000 Worte.

Also das ist der Grund, warum ich McMyAdmin einsetze: Die Backups… Ein einfaches Interface mit dem ich Backups anlegen kann und auch wiederherstellen ist möglich.

Manko: Keine Sortierung nach Erstellungsdatum absteigend. Auch der Fehlende Welt-Name in der Backupbezeichnung ist nicht so schön, aber auch nicht tragisch, in der Regel ändert sich der Weltname nicht.

 

Gläsernes Tool

Es währe zu perfekt, wenn es jetzt kein ABER gäbe…

Aber ich mag nunmal keine Spione und daher jetzt etwas meiner Ansicht nach kritisches: McMyAdmin hat einen Google-Tracking-Code verbaut… Auf Webseiten wäre das OK, aber bei gekaufter Software ist das so wie eine Software die alle Aktionen die man Ausführt an einen Server des Programmierers schickt. Stell dir mal vor bei jeder deiner Mails ginge an Microsoft / Thunderbird / Google die Info dass du eine Mail von Hannes Peter dem kleinen bekommen hast bzw. eine dahin schreibst…

Auf Anfrage an den Programmierer kam als Rückmeldung

McMyAdmin uses Google Analytics to collect information about the types of systems being used to connect to McMyAdmin panels (OS, Web browser, etc) and to help monitor overall usage. This information is used to help determine which browsers will receive the most testing. Google Analytics does not collect any personally identifiable information.

Michael Biggins – PhonicUK

Naja ich weiß ja nicht. Da nehm ich mir als WebEntwickler lieber ne Studie zur Hand und schau welche Browser berücksichtigt werden sollten.

Fazit

McMyAdmin ist ein gelungenes Administrations-Interface für Minecraft-Gameserver.

Durch McMyAdmin wird mir sehr viel Arbeit abgenommen und nach dem Herausschneiden des Tracking-Codes und dem einbauen einiger Übersetzungen kann ich diese Adminoberfläche wunderbar einsetzen.

 

Artikel-Empfehlung KW 9 2011

Librarian – Bibliotheken von Windows 7 individualisieren

Der neue Explorer (auch bekannt als Arbeitsplatz) von Windows 7 bietet neue Möglichkeiten, beispielsweise Bibliotheken. Die Verwaltung dieser kann durch diverse Programme enorm vereinfacht werden, sodass die Bibliotheken im Explorer in der Seitenleiste direkt angezeigt werden.

In Gedenken an die schweren Proteste: Ägypter nennt seine Tochter “Facebook”

Nun ist ja endlich Ruhe in Ägypten und für die meisten von uns -behaupte ich jetzt einfach mal- kehrt der Alltag wieder ein. In Ägypten ist allerdings immer noch nicht alles wieder beim Alten. Schlimmstenfalls merkt man es daran, dass ein ägyptisches Baby nun auf den Namen Facebook hört.

AllMyApps: App Store für Windows

Wer schon immer den ein oder anderen Apple-Fanatiker mit deren AppStore geneidet hat (nein ich habe mich nicht verschrieben, ‚geneidet‘ ist gewollt) der hat jetzt sogar für einen Windows PC einen solchen zur Verfügung. Aktuell in englisch lädt das Programm allerdings, insofern vorhanden, auch die deutschen Anwendungen herunter. AllMyApps ist alles in allem ein nettes neues Programm welches potential in sich birgt, bis Microsoft einen eigenen AppStore veröffentlicht

HTML5 – Webseiten innovativ und zukunftssicher

Und da ist auch schon was für Papa dabei 🙂 Mit HTML5 habe ich mich noch gar nicht auseinandergesetzt, es wird aber mal Zeit. Dank Frank weiß ich jetzt auch mit welchem Buch ich einen guten Eintstieg habe. Wer also ein HTML5 Buch sucht…

Wie demotiviere ich Mitarbeiter? Zehn nicht ganz ernst gemeinte Tipps zur erfolgreichen Demotivation.

Wer auf Ironie steht und gerne mal schmunzeln will, ist hier goldrichtig. Denn neben den ganzen, inzwischen langweiligen Motivationstrainings, die es anscheinend an jeder Ecke zu  Hauf gibt, ist hier mal ein Demotivations-Training. Manchmal braucht es doch etwas Abwechslung oder?

Pascal Birchler, Herausgeber des WordPress-Magazins im Gespräch

Sehr krass. Ich konnte mich etwas wiedererkennen, hatte aber definitiv nicht genug aushaltevermögen. Pascal Birchler ist 17 Jahre alt, Schweizer, Herausgeber und Betreiber  des Schweizer WordPress Magazin. Das Schweizer  WordPress Magazin ist wohl eine der zentralen WordPress-Platformen ever, ich habe mich damit leider noch nicht so wirklich auseinandergesetzt. Allerdings habe ich mit Pascal geschrieben und wie es aussieht schreibe ich noch diesen Monat einen Artikel für das Magazin, mal sehen ob das was wird.

OEM Informationen in Windows einfügen

Für die Systemadministratoren unter uns, also diejenigen die sich (ab und an) um Computerprobleme kümmern dürfen, gibt es hier ein nützliches cooles Tool. Die OEM Informationen von Windows schildern, welcher Ansprechpartner für Systemprobleme bereitsteht. Ich werde es künftig auch bei meinen „Kunden“, also dem Bekanntenkreis, einsetzen, wenn ich da was am PC mache.

Bericht: Social Networks wie Facebook & Co. beheben Sicherheitslücken

Viele lieben sie, fast jeder nutzt eines davon und nur ganz wenige denken darüber nach: unsere Social Networks. Die, die allerdings darüber nachdenken, haben angefangen einige Sicherheitslücken aufzuschreiben und zu publizieren, nachdem die jeweiligen Netzwerk-Betreiber sich geweigert haben, die Lücken umgehend zu schließen. Wer etwas Zeit hat kann sich hier also anlernen, was er bei Facebook oder irgendwelchen VZ-gedönsen nicht machen sollte.

SpriteBox – Online-Editor für CSS-Sprites

Dass ich darauf nicht stehe, wusste ich, dass es CSS-Sprites heißt wusste ich nicht. Die Idee: Man erstelle ein Bild einer Grafiksammlung und lasse den Browser für die Darstellung einer Webseite diverse bereiche der Grafik hier und da mal anzeigen. Vorteil: es müssen nicht viele kleine Grafiken geladen werden. Nachteil: erhöhte Rechenkapazität wird gefordert. Nun ja wer dennoch drauf steht kann sich die SpriteBox mal ansehen, es ist ein Online-Editor für solche grafiken, welcher direkt einen CSS-Code generiert über den dann die grafiken geladen werden können.

Windows-Start analysieren

Wenns mal wieder länger dauert… sollte man vielleicht einfach mal schauen, worans liegt. Denn nach einer gewissen Zeit kann es vorkommen, dass das geliebte Windows-System sehr lange benötigt, um benutzbar zu sein. Libe Anwender: das liegt nicht an irgendeiner zugemüllten Registry, sondern an all den netten Auto-Start-Programmen, die ihr so nach und nach einschaltet. Wer mal einen Überblick über Autostart-Programme haben möchte, darf sich hier gerne eben diesen verschaffen.