Vor zwei Jahren habe ich bereits einen Beitrag verfasst
[
Für wen es interessant sein könnte
Dies könnte für Sie interessant sein, wenn Sie in einem kleinen Team oder alleine arbeiten. Sie haben kein Monitoring und sind sich nicht sicher, ob Sie es wirklich brauchen. Entweder haben Sie ein beliebtes seriöses Monitoring „für die Großen“ ausprobiert, aber es hat sich bei Ihnen irgendwie nicht durchgesetzt, oder es funktioniert in einer fast standardmäßigen Konfiguration und hat Ihr Leben nicht wesentlich verändert. Und auch – wenn Sie definitiv nicht vorhaben, einen ganzen Mitarbeiter (oder gar eine Abteilung) damit zu beauftragen, das Monitoring-Dashboard mindestens ein paar Stunden am Tag zu überwachen oder zu konfigurieren.
Warum okerr ungewöhnlich ist
Als nächstes werde ich interessante Merkmale des Okerra zeigen, die es von einigen anderen Überwachungssystemen unterscheiden.
Okerr ist eine Hybridüberwachung
Bei der internen Überwachung läuft auf den überwachten Maschinen ein „Agent“, der Daten an den Überwachungsserver übermittelt (z. B. freien Speicherplatz). Wenn der Server extern ist, führt er Prüfungen über das Netzwerk durch (z. B. Ping oder Website-Verfügbarkeit). Jeder Ansatz hat seine Grenzen. Okerr nutzt beide Möglichkeiten. Überprüfungen innerhalb von Servern werden von einem sehr einfachen (30 KB) Agenten oder Ihren eigenen Skripten und Anwendungen durchgeführt, und Netzwerküberprüfungen werden durch okerr-Sensoren in verschiedenen Ländern durchgeführt.
okerr ist nicht nur Software, sondern auch eine Dienstleistung
Der Serverteil jeder Überwachung ist groß und komplex, er ist schwierig zu installieren und zu konfigurieren und erfordert Ressourcen. Mit okerr können Sie Ihren eigenen Überwachungsserver installieren (kostenlos und Open Source) oder einfach nur den Client-Teil verwenden und den Dienst unseres Servers nutzen. Auch kostenlos.
Wenn Sie mit der Überwachung die mangelnde Zuverlässigkeit von Servern und Anwendungen kompensieren und vertuschen können, stellt sich die philosophische Frage: Wer ist der Wächter? Wie informiert uns die Überwachung über ein Problem, wenn es selbst aus irgendeinem Grund einzeln oder zusammen mit Ihren anderen Ressourcen „gestorben“ ist (z. B. der Kanal zum Rechenzentrum ist ausgefallen)? Bei Nutzung des externen Dienstes okerr – dieses Problem ist behoben – erhalten Sie eine Warnung, auch wenn das gesamte Rechenzentrum mit Ihren Servern ohne Strom ist oder von Zombies angegriffen wird.
Natürlich besteht das Risiko, dass der okerr-Server selbst nicht verfügbar ist, das ist wahr (wie Sie wissen, werden 90 % der Zuverlässigkeit immer einfach und „kostenlos“ erreicht, 99 % mit minimalem Aufwand und jede weitere neun ist es exponentiell schwieriger). Aber erstens ist die Wahrscheinlichkeit dafür geringer, und zweitens kann das Problem nur dann unbemerkt bleiben, wenn es mit Problemen auf unseren Servern zusammenfällt. Wenn wir eine Zuverlässigkeit von 99.9 % haben und Sie 99.9 % haben (nicht zu hohe Zahlen), dann beträgt die Wahrscheinlichkeit eines unentdeckten Fehlers 0.1 % von 0.1 % = 0.0001 %. Es ist sehr gut, Ihre Zuverlässigkeit fast ohne Aufwand und ohne Kosten um drei Neunen zu erhöhen!
Ein weiterer Vorteil von Monitoring als Service besteht darin, dass ein Hosting-Anbieter oder ein Webstudio einen Okerr-Server installieren und den Clients als kostenpflichtige oder kostenlose Zusatzleistung Zugriff gewähren kann. Ihre Konkurrenten verfügen nur über Hosting und Websites, Sie jedoch über zuverlässiges Hosting mit Überwachung.
Bei Okerr geht es um Indikatoren
Der Indikator ist eine „Glühbirne“. Es gibt zwei Hauptzustände: Grün (OK) und Rot (ERR). Das Projekt enthält viele gruppierte Indikatoren (z. B. nach Server). Auf der Hauptseite des Projekts sehen Sie sofort, dass entweder alles grün ist (und Sie können es schließen) oder dass etwas rot leuchtet und korrigiert werden muss. Beim Übergang zwischen diesen Zuständen wird eine Warnung gesendet. Einmal am Tag, während Sie es einrichten, wird eine Zusammenfassung des Projekts gesendet.
Jeder okerr-Indikator verfügt über integrierte Bedingungen, durch die er seinen Zustand ändert (in Zabbix wird dies als Trigger bezeichnet). Beispielsweise sollte der Lastdurchschnitt nicht mehr als 2 betragen (dies ist natürlich konfigurierbar). Und für jede interne Prüfung (durchschnittliche Auslastung, freie Festplatte, ...) gibt es einen Watchdog. Wenn wir aus irgendeinem Grund zum vereinbarten Zeitpunkt keine erfolgreiche Bestätigung erhalten, wird ein Fehler protokolliert und eine Warnung gesendet.
Unser üblicher Arbeitsrhythmus besteht darin, morgens E-Mails zu lesen und neben anderen Briefen auch die Zusammenfassung durchzusehen (wir planen dies zu Beginn der Arbeit ein). Wenn darin alles in Ordnung ist, erledigen wir andere wichtige Dinge (aber zur Sicherheit können wir schnell einen Blick auf das Okerra-Dashboard werfen und sicherstellen, dass in diesem Moment alles grün ist). Wenn eine Warnung eintrifft, reagieren wir.
Natürlich ist es möglich, einfach „informative“ Indikatoren beizubehalten (um das Bild des Netzwerks aus der Überwachung zu sehen), aber es wird alles getan, um einfach, einfach und schnell Indikatoren speziell für die automatische Überwachung und den Versand von Warnungen zu erstellen.
Der Zweck, für den Sie okerr einrichten, sind Benachrichtigungen, sodass Sie in einer Minute einen Indikator erstellen können, der ein Jahr lang „schlafen“ kann, nur Aktualisierungen akzeptiert, und wenn ein Jahr später etwas kaputt geht, leuchtet er auf und sendet eine Warnung. Die Minute, die Sie einmal damit verbracht haben, einen Indikator zu erstellen, hat sich ausgezahlt; Sie haben sofort und vor allen anderen von dem Problem erfahren. Es ist möglich, dass sie das Problem behoben haben, bevor es jemand bemerkt hat. Was schnell hochgehoben wird, gilt nicht als gefallen!
Sicherheit
Es wäre schade, wenn Sie eine Überwachung einrichten würden, um die Zuverlässigkeit zu erhöhen, aber dadurch werden Sie über das Netzwerk angegriffen und es gibt eine ganze Reihe von Netzwerkschwachstellen in verschiedenen Überwachungstools (
Agent (okerrmod aus Paket
Vollständige Überwachungsabdeckung
Unsere Regel ist nun, dass wir von okerr über alle technischen Probleme erfahren. Wenn plötzlich gegen die Regel verstoßen wird (okerr hat nicht vor dem bevorstehenden Eintreten gewarnt (sofern dies möglich ist) oder dass es bereits eingetreten ist), fügen wir Kontrollen zu okerr hinzu.
Externe Kontrollen
Ein typisches Set:
- Klingeln
- http-Status
- Überprüfung der Gültigkeit und Aktualität des SSL-Zertifikats (warnt, wenn es bald abläuft)
- Öffnen Sie den TCP-Port und setzen Sie darauf ein Banner
- http grep (die Seite darf keinen bestimmten Text enthalten)
- sha1-Hash, um Seitenänderungen abzufangen.
- DNS (DNS-Eintrag muss einen bestimmten Wert haben)
- WHOIS (warnt, wenn die Domain bald kaputt geht)
- Antispam-DNSBL (Hostprüfung anhand von mehr als 50 Antispam-Blacklists gleichzeitig)
Interne Kontrollen
Auch ein ziemlich standardmäßiges Set (aber leicht erweiterbar).
- df (freier Speicherplatz)
- Durchschnittslast
- opentcp (offene TCP-Listening-Sockets – benachrichtigt, wenn etwas gestartet oder abgestürzt ist)
- Betriebszeit – nur Betriebszeit auf dem Server. Benachrichtigt, wenn es heruntergefahren ist (d. h. der Server ist überlastet)
- client_ip
- dirsize – Wir verwenden es, um zu verfolgen, wann die Rootfs unserer virtuellen Maschinen die zulässige Größe überschreiten, ohne strenge Einschränkungen einzuführen, und um die Größe der Home-Verzeichnisse der Benutzer zu überwachen
- empty und nonempty – Überwacht Dateien, die leer (oder nicht leer) sein sollten. Beispielsweise sollte das Fehlerprotokoll des okerr-Servers selbst leer sein, und wenn überhaupt eine Zeile darin enthalten ist, erhalte ich eine Benachrichtigung und überprüfe diese. Aber mail.log auf dem Mailserver sollte NICHT leer sein (N Minuten nach der Rotation). Und manchmal war es bei uns nach einem Systemupdate leer, wenn logrotate rsyslog nicht korrekt neu starten konnte.
- Zeilenanzahl – Anzahl der Zeilen in der Datei (wie wc -l). Wir verwenden es als weicheren Ersatz für empty, wenn das Fehlerprotokoll zwar immer noch wachsen kann, aber nur langsam (z. B. trifft der Googlebot auf einige geschlossene Seiten). Es gibt ein Limit von 2 Zeilen pro 20 Minuten. Liegt der Wert höher, erfolgt eine Warnung
Interessante interne Kontrollen
Wenn Sie bisher „diagonal“ gelesen haben, wird es jetzt interessanter, genauer zu lesen.
Sicherungen
Überwacht Backups im Verzeichnis. Unsere Sicherungsdateien haben Namen wie „ServerName-20200530.tar.gz“. Für jeden Server in okerr wird der Indikator ServerName-DATE.tar.gz erstellt (das tatsächliche Datum wechselt in die Zeile „DATE“). Das Vorhandensein eines neuen Backups und seine Größe werden ebenfalls überwacht (es darf beispielsweise nicht weniger als 90 % des vorherigen Backups betragen).
Was muss getan werden, damit ein neues Backup nachverfolgt wird, nachdem wir mit der Erstellung und dem Ablegen in diesem Verzeichnis begonnen haben? Nichts! Dies ist ein sehr praktischer Ansatz, wenn Sie „nichts“ tun müssen, weil:
- „Nichts“ zu tun geht ziemlich schnell und spart Zeit
- Es ist schwer zu vergessen, „nichts“ zu tun
- Es ist schwierig, mit einem Fehler „nichts“ falsch zu machen. Nichts ist die zuverlässigste Methode
Wenn plötzlich keine neuen Sicherungsdateien mehr angezeigt werden, wird eine Warnung angezeigt. Wenn Sie beispielsweise einen der Server deaktiviert haben und keine Backups mehr vorhanden sein sollten, müssen Sie den Indikator löschen (über die Weboberfläche oder von der Shell über die API).
maxfilesz
Verfolgt die Größe der größten Dateien (normalerweise: /var/log/*). Auf diese Weise können Sie unvorhersehbare Probleme abfangen, z. B. Brute-Force-Passwörter oder das Versenden von Spam über den Server.
runstatus/runline
Dies sind zwei wichtige Proxy-Module zum Ausführen anderer Programme auf dem Server. Runstatus meldet den Programm-Exit-Code an den Indikator. okerr benötigt beispielsweise kein Modul, um zu überprüfen, ob systemd-Dienste ausgeführt werden. Dies erfolgt über runstatus (siehe unten). Runline – meldet dem Server die Zeile, die das Programm erzeugt. Zum Beispiel, temp_RUN="cat /sys/class/thermal/thermal_zone0/temp"
In der Runline-Konfiguration auf unserem Server wird ein Indikator servername:temp mit der Prozessortemperatur erstellt.
SQL
Führt eine numerische Abfrage an MySQL aus und meldet das Ergebnis an den Indikator. In einem einfachen Fall können Sie beispielsweise „SELECT 1“ ausführen – dadurch wird überprüft, ob das DBMS als Ganzes funktioniert.
Eine viel interessantere Anwendung ist jedoch beispielsweise die Verfolgung der Anzahl der Bestellungen in einem Online-Shop. Wenn Sie wissen, dass Sie 100 oder mehr Bestellungen pro Stunde haben, können Sie die Mindestgrenze auf 100 oder 80 festlegen. Wenn Ihre Verkäufe dann plötzlich sinken, erhalten Sie eine Benachrichtigung und können dies herausfinden.
Beachten Sie, dass es keine Rolle spielt, aus welchem unvorhersehbaren Grund dies geschah:
- Der Server ist einfach nicht verfügbar (stromlos oder ohne Netzwerk), und die Warnung kam von der Tatsache, dass der Indikator „verrottet“ war.
- Der Server ist mit etwas überlastet, er arbeitet langsam oder Pakete gehen verloren, es ist für Benutzer unpraktisch und sie verlassen den Server, ohne Einkäufe zu tätigen
- Der Server ist in den Spam-Listen enthalten und E-Mails von ihm werden nicht akzeptiert, Benutzer können sich nicht registrieren
- Das Budget für die Werbekampagne ist aufgebraucht, die Banner drehen sich nicht.
Die Gründe dafür können vielfältig sein und sind nicht alle im Voraus vorhersehbar und technisch schwer nachzuvollziehen. Sie können jedoch den letzten Parameter (Anordnungen) bequem überwachen und daraus schließen, dass die Situation verdächtig ist und eine Behandlung verdient.
Logische Indikatoren
Ermöglicht die Verwendung boolescher Ausdrücke (Python-Syntax) über ein Modul
Sie können zwei Indikatoren erstellen, Tag und Nacht. Stellen Sie beide auf „stumm“ (es werden keine Benachrichtigungen gesendet). Und erstellen Sie einen logischen Indikator, der erfordert, dass der Tagindikator vor 20:00 Uhr in Ordnung ist, und nach 20:00 Uhr reicht es aus, wenn der Nachtindikator in Ordnung ist.
Ein weiteres Beispiel für die Verwendung eines logischen Indikators ist Eskalation. Beispielsweise meldet sich ein Projektmanager von Benachrichtigungen ab (er muss dies nicht tun, Administratoren sollten auf normale Probleme reagieren), abonniert jedoch einen logischen Indikator, der rot wird, wenn ein Indikator im Projekt nicht innerhalb der vorgegebenen Zeit korrigiert wird.
Außerdem ist es möglich, die zulässige Arbeitszeit beispielsweise von 3 bis 5 Uhr morgens festzulegen. Es ist uns egal, ob Server und Websites in dieser Zeit abstürzen. Aber um 5:00 Uhr müssen sie arbeiten. Wenn sie zu einem anderen Zeitpunkt nicht funktionieren, alarmieren Sie sie. Mit dem logischen Indikator können Sie auch die Serverredundanz berücksichtigen. Wenn Sie über 5 Webserver verfügen, können Administratoren jederzeit 1–2 Server abschalten. Wenn jedoch weniger als 3 von 5 Servern im Kampf sind, wird eine Warnung angezeigt.
Bei den obigen Beispielen handelt es sich nicht um oker-Funktionen, es handelt sich nicht um einige Funktionen, die aktiviert und konfiguriert werden müssen. Okerra verfügt nicht über alle diese Funktionen, aber es gibt ein logisches Modul, mit dem Sie diese Funktionalität implementieren können (ungefähr wie in einer Programmiersprache – wenn wir arithmetische Operatoren haben, dann brauchen wir keine spezielle Funktion zur Berechnung der 20 % Mehrwertsteuer Von der Sprache her können Sie es jederzeit selbst machen und an Ihre Bedürfnisse anpassen).
Logic Indicator ist wahrscheinlich eines der wenigen relativ komplexen Themen in okerr, aber die gute Nachricht ist, dass Sie es erst beherrschen müssen, wenn Sie es müssen. Gleichzeitig erweitern sie die Möglichkeiten erheblich und halten das System selbst recht einfach.
Hinzufügen eigener Schecks
Ich möchte wirklich die Idee vermitteln, dass okerr kein Satz von Tausenden vorgefertigten Schecks für alle Gelegenheiten ist, sondern im Gegenteil – vor allem – eine einfache Engine mit einer einfachen Möglichkeit, eigene Schecks zu erstellen. Das Erstellen eigener Checks in okerr ist keine Aufgabe für Hacker, System-Mitentwickler oder zumindest fortgeschrittene okerr-Benutzer, sondern eine machbare Aufgabe für jeden Administrator, der Linux vor einem Monat zum ersten Mal installiert hat.
Die Überprüfung der Mindestlöhne erfolgt über das Modul
Diese Zeile in der config
true_OK=/bin/true
Nur eine Zeile – und hier sind wir schon ein bisschen erweitert haben Funktionalität okerr.
Auch eine solche Prüfung hat bereits ihren Wert: Wenn Ihr Server plötzlich abstürzt, wird der entsprechende Indikator auf dem okerr-Server nicht rechtzeitig aktualisiert und nach Ablauf der Zeit erscheint eine Warnung.
Diese Prüfung benachrichtigt Sie, dass der Apache2-Server abgestürzt ist (naja, man weiß ja nie...):
apache_OK="systemctl is-active --quiet apache2"
Wenn Sie also eine beliebige Programmiersprache beherrschen und zumindest Shell-Skripte schreiben können, können Sie bereits eigene Prüfungen hinzufügen.
Schwieriger: Sie können (in jeder Sprache) Ihr eigenes Modul für okerrmod schreiben. Im einfachsten Fall sieht es so aus:
#!/usr/bin/python3
print("STATUS: OK")
Ist es nicht sehr schwierig? Das Modul muss die Prüfung selbst durchführen und die Ergebnisse auf STDOUT ausgeben. Ein komplexeres Modul ergibt beispielsweise Folgendes:
$ okerrmod --dump df
NAME: pi:df-/
TAGS: df
METHOD: numerical|maxlim=90
DETAILS: 49.52%, 13.9G/28.2G used, 13.0G free
STATUS: 49.52
NAME: pi:df-/boot
TAGS: df
METHOD: numerical|maxlim=90
DETAILS: 84.32%, 53.1M/62.9M used, 9.9M free
STATUS: 84.32
Es aktualisiert mehrere Indikatoren gleichzeitig (getrennt durch eine Leerzeile), erstellt sie bei Bedarf, zeigt Verifizierungsdetails und ein Tag an, anhand dessen Sie die erforderlichen Indikatoren im Dashboard leicht finden können.
Telegram
Es gibt einen Telegram-Bot
Statusseiten
Heutzutage sind Statusseiten fast ein Muss für jedes Unternehmen, das über IT verfügt, einen verantwortungsvollen Umgang mit Zuverlässigkeit hat und seine Kunden/Benutzer mit Respekt behandelt.
Stellen Sie sich eine Situation vor: Ein Benutzer möchte etwas tun, Informationen anzeigen oder eine Bestellung aufgeben, und etwas funktioniert nicht. Er weiß nicht, was los ist, auf wessen Seite das Problem liegt und wann es gelöst wird. Vielleicht hat Ihr Unternehmen einfach eine nicht funktionierende Website? Oder ist es vor sechs Monaten kaputt gegangen und wird in zwei Jahren repariert? Aber Sie müssen jetzt einen Kühlschrank kaufen, er ist bereits im Warenkorb... Und eine ganz andere Sache ist es, wenn jemand sieht, dass mit Ihnen etwas nicht stimmt (zumindest ist klar, dass das Problem nicht auf seiner Seite liegt), dass die Das Problem wurde entdeckt, Sie arbeiten bereits daran und haben vielleicht sogar den ungefähren Zeitpunkt für die Korrektur notiert. Der Benutzer kann sich anmelden und eine E-Mail-Benachrichtigung erhalten, wenn das Problem behoben ist, und er kann tun, was er möchte (einen Kühlschrank kaufen).
Probleme und Ausfallzeiten passieren jedem. Aber Nutzer und Partner vertrauen eher denen, die hier transparenter und verantwortungsvoller vorgehen.
Hier
Failover
Um diesen Artikel nicht noch länger zu machen, verweise ich noch einmal auf meinen vorherigen Artikel -
Niedrige Systemanforderungen
Für okerr-Server verwenden wir Maschinen mit RAM ab 2 GB. Für Netzwerksensoren reichen sogar 512 MB. Der Client-Anteil ist im Allgemeinen nahezu Null. (Plastiktüte
Wenn man das berücksichtigt – okerr, wahrscheinlich am meisten kostenlos Überwachungssystem von den verfügbaren, denn selbst um ein anderes kostenloses Open-Source-System wie Zabbix oder Nagios zu verwenden, müssen Sie ihm Ressourcen (Server) zuweisen, und das ist bereits Geld. Darüber hinaus sind noch einige Serverwartungen erforderlich. Mit okerr kann dieser Teil entfernt werden. Oder Sie müssen es nicht entfernen und Ihren eigenen Server verwenden, je nachdem, was Ihnen am besten gefällt.
API und Integration in proprietäre Software
Einfache und offene Architektur. okerr hat eine ziemlich einfache
#!/bin/sh
for indicator in `okerrclient --api-filter sslcert`
do
echo set location for $indicator
okerrclient --api-set location=ru retest=1 --name $indicator
done
Sie können den Indikator mit unserem Client-Modul aktualisieren, auch ohne, einfach über Curl.
# short and nice (using okerrupdate and config file)
$ okerrupdate MyIndicator OK
# only curl is enough!
$ curl -d 'textid=MyProject&name=MyIndicator&secret=MySecret&status=OK' https://bravo.okerr.com/
Sie können Indikatoren direkt aus Ihrem Programm aktualisieren. Senden Sie beispielsweise Heartbeat-Signale, damit okerr weiß, dass es ausgeführt wird, und einen Alarm auslöst, wenn es abstürzt oder einfriert. Okerr-Komponenten tun übrigens genau das – okerr überwacht sich selbst und Probleme in fast jedem Modul werden erkannt und eine Warnung über das Problem generiert. (Und wenn dies „fast“ der Fall ist, werden sie von einem anderen Server abgeglichen)
Hier ist der Code (vereinfacht) in unserem Telegram-Bot:
from okerrupdate import OkerrProject, OkerrExc
op = OkerrProject()
uptimei = op.indicator("{}:telebot_uptime".format(hostname))
...
uptimei.update('OK', 'pid: {} Uptime: {} cmds: {}'.format(
os.getpid(), dhms(uptime), commands_cnt))
Es gibt eine Bibliothek zum Aktualisieren von Indikatoren aus Python-Programmen
Wie okerr uns hilft
Okerr hat unser Leben verändert. Tatsächlich. Vielleicht könnte ein anderes Überwachungssystem das Gleiche tun, aber die Arbeit mit okerr ist für uns einfach und unkompliziert und es verfügt über alle Funktionen, die wir brauchten (wir haben hinzugefügt, was es nicht hatte). Übrigens, wenn einige Funktionen fehlen, fragen Sie nach und ich werde sie hinzufügen (ich verspreche es nicht, aber ich möchte, dass okerr das beste Überwachungssystem für kleine bis mittlere Projekte ist). Oder noch besser: Fügen Sie es selbst hinzu – es ist ganz einfach.
Wir haben es geschafft, nach dem Grundsatz zu leben: „Lernen Sie alles über alle Probleme von der Kerra.“ Wenn plötzlich ein Problem auftritt, von dem wir nichts von okerr erfahren haben, fügen wir okerr einen Haken hinzu. (In diesem Fall meine ich mit „wir“ uns als Benutzer des Systems, nicht als Mitentwickler.) Anfangs kam das häufig vor, mittlerweile ist es sehr selten geworden.
Überwachung
Über okerr überwachen wir die Protokollgrößen auf allen Servern. Es ist natürlich unmöglich, jede Zeile des Protokolls sorgfältig mit den Augen zu lesen, aber die bloße Beobachtung der Wachstumsrate bringt schon viel. Dadurch haben wir Spam-Mails und Brute-Force-Passwortsuchen entdeckt, und wenn einige der Anwendungen „verrückt“ werden, funktioniert bei ihnen etwas nicht und sie wiederholen es immer wieder (jedes Mal fügen sie dem Protokoll ein paar Zeilen hinzu). ).
SSL-Zertifikate. Fast unmittelbar nach dem Start a2okerr.py
– und wenn mehrere neue Sites auf dem Server erscheinen, werden sie automatisch in okerr angezeigt. Wenn das Zertifikat aus irgendeinem Grund drei Wochen vor Ablauf des Zertifikats plötzlich nicht erneuert wird, wissen wir Bescheid und werden herausfinden, warum es nicht aktualisiert wird, so ein Hund. a2certbot.py
aus demselben Paket - es hilft dabei sehr (es überprüft sofort die wahrscheinlichsten Probleme - und schreibt, was gut überprüft wurde und wo es am wahrscheinlichsten ein Problem gibt).
Wir überwachen das Ablaufdatum aller unserer Domains. Und alle unsere Mailserver, die E-Mails versenden, werden auch anhand von über 50 verschiedenen Blacklists überprüft. (Und manchmal fallen sie hinein). Wussten Sie übrigens, dass auch Google-Mailserver auf der schwarzen Liste stehen? Nur zum Selbsttest haben wir mail-wr1-f54.google.com zu den überwachten Servern hinzugefügt und es steht immer noch auf der schwarzen Liste von SORBS! (Hier geht es um den Wert von „Anti-Spammer“)
Backups – ich habe oben bereits geschrieben, wie einfach man diese mit okerr überwachen kann. Wir überwachen jedoch sowohl die neuesten Backups auf unserem Server als auch (mithilfe eines separaten Dienstprogramms, das okerr verwendet) die Backups, die wir auf Amazon Glacier hochladen. Und ja, es kommt von Zeit zu Zeit zu Problemen. Kein Wunder, dass sie zusahen.
Wir verwenden den Eskalationsindikator. Es zeigt an, ob ein Problem schon seit längerer Zeit nicht behoben wurde. Und wenn ich einige Probleme löse, kann ich sie manchmal vergessen. Eskalation ist eine gute Erinnerung, auch wenn Sie sich selbst überwachen.
Insgesamt glaube ich, dass die Qualität unserer Arbeit um eine Größenordnung gestiegen ist. Es gibt fast keine Ausfallzeiten (oder der Kunde hat keine Zeit, es zu bemerken. Nur psst!), während der Arbeitsaufwand geringer und die Arbeitsbedingungen ruhiger geworden sind. Wir sind von der Notfallarbeit mit dem Ausbessern von Löchern mit Klebeband zu einer ruhigen und maßvollen Arbeit übergegangen, bei der viele Probleme im Voraus vorhergesagt werden und Zeit bleibt, sie zu verhindern. Sogar aufgetretene Probleme lassen sich jetzt leichter beheben: Erstens erfahren wir davon, bevor Kunden in Panik geraten, und zweitens kommt es oft vor, dass das Problem mit kürzlichen Arbeiten zusammenhängt (während ich eine Sache erledigt habe, habe ich eine andere kaputt gemacht) – Es ist also heiß. Es ist für Spuren einfacher, damit umzugehen.
Aber es gab noch einen anderen Fall...
Wussten Sie, dass im beliebten Debian 9 (Stretch) ein so beliebtes Paket wie phpmyadmin immer noch (seit vielen Monaten!) im verwundbaren Status ist? (
Ein anderes Mal in einer ähnlichen Situation: Nach einer Sicherheitslücke in SSH war es notwendig, alle Server zu aktualisieren. Und wenn Sie eine Aufgabe festlegen, müssen Sie die Ausführung kontrollieren. (Untergebene neigen dazu, Missverständnisse zu verstehen, zu vergessen, verwirrt zu sein und Fehler zu machen). Deshalb haben wir zunächst auf allen Servern eine SSH-Versionsprüfung zu okerr hinzugefügt und über okerr sichergestellt, dass Updates auf allen Servern ausgerollt wurden. (Praktisch! Ich habe diesen Indikatortyp gewählt, und Sie können sofort erkennen, welcher Server welche Version hat.) Als wir sicher waren, dass die Aufgabe auf allen Servern abgeschlossen wurde, haben wir die Indikatoren entfernt.
Es kam ein paar Mal vor, dass ein bestimmtes Problem auftauchte und dann von selbst wieder verschwand. (wahrscheinlich jedem bekannt?). Wenn Sie es bemerken, wenn Sie es überprüfen – und es gibt nichts zu überprüfen – funktioniert bereits alles gut. Doch dann geht es wieder kaputt. Dies ist uns beispielsweise bei Produkten passiert, die wir auf den Amazon Marketplace (MWS) hochgeladen haben. Irgendwann war der geladene Bestand falsch (falsche Warenmengen und falsche Preise). Wir haben es herausgefunden. Aber um es herauszufinden, war es wichtig, das Problem sofort herauszufinden. Leider ist MWS, wie alle Amazon-Dienste, etwas langsam, sodass es immer zu Verzögerungen kam, aber dennoch konnten wir den Zusammenhang zwischen dem Problem und den Skripten, die es verursachen, zumindest grob erfassen (wir haben es überprüft, stecken fest Ich habe es an den okerr gesendet und es überprüft und sofort eine Warnung erhalten.
Ein interessanter Fall wurde kürzlich von einem großen und teuren europäischen Hoster in die Sammlung aufgenommen, den unser Kunde nutzt. Plötzlich verschwanden ALLE unsere Server vom Radar! Erstens bemerkte der Kunde selbst (schneller als Okerra!), dass die Website, mit der er arbeitete, nicht geöffnet wurde, und erstellte ein Ticket dafür. Aber nicht nur eine Seite ist ausgefallen, sondern alle! (Natasha, wir haben alles fallen lassen!). Hier begann Okerr, lange Fußwickel mit allen für ihn aufleuchtenden Indikatoren zu senden. Panik, Panik, wir laufen im Kreis (was können wir sonst tun?). Dann stieg alles. Es stellte sich heraus, dass im Rechenzentrum routinemäßige Wartungsarbeiten durchgeführt wurden (alle paar Jahre) und wir hätten natürlich gewarnt werden müssen. Aber ihnen ist ein Problem passiert und sie haben uns nicht gewarnt. Nun ja, mehr Herzinfarkte, weniger Herzinfarkte. Aber nachdem alles wiederhergestellt ist, müssen Sie alles noch einmal überprüfen! Ich kann mir nicht vorstellen, wie ich das mit meinen Händen machen würde. Okerr hat alles in wenigen Minuten getestet. Es stellte sich heraus, dass die meisten Server einfach vorübergehend nicht verfügbar waren, aber sie funktionierten. Einige waren überlastet, standen aber auch so auf, wie sie sollten. Von all den Verlusten haben wir zwei Backups verloren, die laut der Krone hätten erstellt und geladen werden sollen, während diese volle Banane im Gange war. Ich habe mir nicht einmal die Mühe gemacht, sie zu erstellen, nur einen Tag später kam die Meldung, dass alles in Ordnung sei und Backups erschienen seien. Dieses Beispiel gefällt mir wirklich gut, weil sich okerr in einer Situation als sehr nützlich erwiesen hat, über die wir vorher noch nicht einmal nachgedacht hatten, aber das ist der Zweck der Überwachung – dem Unvorhersehbaren zu widerstehen.
Für Okerr-Sensoren verwenden wir das günstigste Hosting (wobei Qualität und Zuverlässigkeit nicht wichtig sind, sie versichern sich gegenseitig). Wir haben also kürzlich ein sehr gutes und supergünstiges Hosting gefunden, die Benchmarks sind großartig. Aber... manchmal stellt sich heraus, dass ausgehende Verbindungen von der virtuellen Maschine über eine andere (benachbarte) IP erfolgen. Wunder. Client_ip-Modul mit
Und noch etwas: Da es sich um VPS-Hosting handelt, verwenden wir immer kostengünstige Hosting-Anbieter (Hetzner, OVH, Scaleway). Es gefällt mir sowohl hinsichtlich der Benchmarks als auch der Stabilität sehr gut. Auch für andere Projekte nutzen wir das deutlich teurere Amazon EC2. Dank okerr haben wir also unsere eigene fundierte Meinung. Beide fallen. Und ich würde nicht sagen, dass sich günstige Hostings wie Hetzner über den langen Zeitraum unserer Beobachtungen als merklich weniger stabil erwiesen haben als EC2. Wenn Sie also nicht an andere Amazon-Funktionen gebunden sind, warum sollten Sie dann mehr bezahlen? 🙂
Was kommt als nächstes?
Wenn ich Sie zu diesem Zeitpunkt noch nicht von Okerr abgeschreckt habe, dann versuchen Sie es! Sie können direkt zu diesem Link gelangen
Nach der Registrierung werden Sie aufgefordert, eine Schulung zu absolvieren (einige nicht sehr schwierige Schulungsaufgaben auszuführen). Die anfänglichen Limits sind sehr gering, aber für das Training oder einen Server reichen sie aus. Nach Abschluss der Schulung werden die Grenzwerte (z. B. die maximale Anzahl an Indikatoren) erhöht.
Aus der Dokumentation – zunächst einmal
Wenn Sie es ernsthaft nutzen und diese erhöhten Limits nicht ausreichen, schreiben Sie an den Support und wir werden es (kostenlos) erhöhen.
Möchten Sie den Okerr-Server auf Ihrem Server installieren? Hier
Wir wollen, dass dieses Projekt durchstartet, damit die Welt dank uns zuverlässiger wird. Dank freier Software und Dienste ist die Welt freundlicher geworden und entwickelt sich dynamischer. Quellen können im kostenlosen GitHub gespeichert werden, für E-Mails können Sie das kostenlose Gmail verwenden. Wir nutzen kostenlos
Source: habr.com