Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Ich dachte, ich wäre mit Linux vertraut, aber ich hätte nie erwartet, dass es in der Produktionsumgebung auf den Kopf gestellt werden würde ...

Ich dachte, ich wäre mit Linux vertraut, aber ich hätte nie erwartet, dass es in der Produktionsumgebung auf den Kopf gestellt werden würde ...

Linux中文社区
Linux中文社区nach vorne
2023-08-01 17:09:501757Durchsuche

Ich beschäftige mich seit vielen Jahren mit Betrieb und Wartung und bin auf verschiedene Probleme gestoßen, wie Datenverlust, Website-Fehlfunktionen, versehentliches Löschen von Datenbankdateien, Hackerangriffe und andere Probleme. Ich habe auch viele Freunde getroffen, die dachten, sie wären mit dem Linux-System vertraut, und als sie Probleme sahen, gerieten sie nie in Panik. Die Produktionsumgebung kippte jedoch um (fast wurde sie gefeuert). . . Heute werde ich einfach ein paar gute Linux-Bediengewohnheiten herausarbeiten und sie mit Ihnen teilen. Lassen Sie uns sicher agieren und

niemals umkippen! !

Ich dachte, ich wäre mit Linux vertraut, aber ich hätte nie erwartet, dass es in der Produktionsumgebung auf den Kopf gestellt werden würde ...Online-Betriebsspezifikationen

Nutzung testen

Als wir zum ersten Mal lernten, wie man Linux verwendet, von den Grundlagen über Dienste bis hin zu Clustern, haben wir es alle auf einer virtuellen Maschine gemacht, obwohl der Lehrer uns das gesagt hat war nicht anders als eine reale Maschine, aber der Wunsch nach der realen Umgebung wächst von Tag zu Tag, aber die verschiedenen Snapshots der virtuellen Maschine haben dazu geführt, dass wir alle möglichen ungeschickten Gewohnheiten entwickelt haben, so dass wir, wenn wir die Erlaubnis erhalten, die zu bedienen Server, wir können es kaum erwarten, es auszuprobieren. Eines Tages gab mir der Chef das Root-Passwort. Da ich nur Putty verwenden konnte, habe ich mich stillschweigend beim Server angemeldet Ich habe versucht, auf xshell+key login zu wechseln. Da es keinen Test gab und keine SSH-Verbindung mehr vorhanden war, wurde ich zu diesem Zeitpunkt vom Server blockiert. Später habe ich einfach das Personal des Computerraums gebeten, darüber nachzudenken. Zum Glück ist dies eine kleine Firma, sonst wäre ich direkt getötet worden ... Zum Glück hatte ich damals mehr Glück.

Das zweite Beispiel betrifft die Dateisynchronisierung. Jeder weiß, dass rsync Dateien schnell synchronisiert, aber die Geschwindigkeit beim Löschen von Dateien ist viel schneller als bei rm -rf. Es gibt einen Befehl in rsync, um eine bestimmte Datei basierend auf einem bestimmten Verzeichnis zu synchronisieren Das erste Verzeichnis ist leer, dann kann man sich das Ergebnis vorstellen. Das Quellverzeichnis (mit Daten) wird zunächst aufgrund von Fehlbedienungen und fehlenden Tests gelöscht. ..Die Daten der Produktionsumgebung wurden gelöscht und es gibt kein Backup. Sie können selbst über die Konsequenzen nachdenken. Die Bedeutung liegt auf der Hand.

Vor der Eingabe immer wieder bestätigen

Bezüglich des Fehlers rm -rf / var glaube ich, dass die Wahrscheinlichkeit, dass er auftritt, bei Menschen mit schnellen Händen oder bei relativ langsamer Internetgeschwindigkeit recht hoch ist Die Hinrichtung ist abgeschlossen, Ihr Herz wird mindestens zur Hälfte kalt sein. Sie können sagen, dass ich es so oft ohne Fehler gedrückt habe, also haben Sie keine Angst, ich möchte nur sagen, dass Sie es verstehen werden, wenn es einmal passiert. Denken Sie nicht, dass diese Betriebs- und Wartungsunfälle alle darauf zurückzuführen sind Andere. Wenn du nicht aufpasst, wird das nächste passieren.

Erlauben Sie nicht, dass mehrere Personen arbeiten. Bei dem letzten Unternehmen, für das ich gearbeitet habe, war das Betriebs- und Wartungsmanagement ziemlich chaotisch. Um Ihnen das typischste Beispiel zu nennen: Das Betriebs- und Wartungspersonal, das mehrmals zurückgetreten war, hatte das Server-Root-Passwort . Wenn wir eine Aufgabe im Bereich Betrieb und Wartung erhalten, führen wir normalerweise eine einfache Überprüfung durch und bitten andere um Hilfe, wenn das Problem überwältigend ist (der etwas Linux kennt). Netzwerkadministrator und Ihr Chef werden gemeinsam einen Server debuggen. Nach mehreren Vergleichen habe ich festgestellt, dass Ihre Serverkonfigurationsdatei anders war als beim letzten Mal, als Sie sie geändert haben, und dann haben Sie das Problem erneut gefunden und es gelöst, aber andere haben dir gesagt, dass sie es auch gelöst haben. Das sind unterschiedliche Parameter ... Ich weiß wirklich nicht, welcher die wahre Ursache des Problems ist Das Problem ist gelöst und alle sind zufrieden. Wenn Sie jedoch auf die gerade geänderte Datei stoßen, ist der Test ungültig. Was passiert, wenn Sie feststellen, dass die Datei erneut geändert wurde? von mehreren Personen durchgeführt.

Zuerst sichern und dann ausführen

Entwickeln Sie eine Gewohnheit. Wenn Sie Daten ändern möchten, sichern Sie zuerst, z. B. die .conf-Konfigurationsdatei. Darüber hinaus wird empfohlen, beim Ändern der Konfigurationsdatei die ursprünglichen Optionen zu kommentieren und dann zu kopieren und zu ändern. Wenn im ersten Beispiel eine Datenbanksicherung vorhanden ist, ist die Fehlfunktion von rsync also in Ordnung passiert nicht über Nacht, sondern nur beiläufig. Es muss nicht so schlimm sein, wenn Sie ein Backup haben.

Einbeziehen von Daten

Verwenden Sie rm -rf mit Vorsicht

Es gibt viele Beispiele im Internet, verschiedene rm -rf /, verschiedene Löschungen der Hauptdatenbank, verschiedene Betriebs- und Wartungsunfälle ... Ein kleiner Fehler wird verursacht viele Verluste. Wenn Sie es wirklich löschen müssen, seien Sie vorsichtig.

Backup-Vorgang ist wichtiger als alles andere

Ursprünglich gibt es oben alle Arten von Backups, aber ich möchte es in die Datenkategorie unterteilen, um noch einmal zu betonen, dass Backups sehr wichtig sind. Ich erinnere mich, dass mein Lehrer etwas gesagt hat Daten beteiligt sind? Sie können nicht vorsichtig genug sein. Das Unternehmen, für das ich arbeite, verfügt über eine Drittanbieter-Zahlungswebsite und eine Online-Kreditplattform. Die Zahlung von Drittanbietern wird alle zwei Stunden vollständig gesichert Ich werde nicht auf Details eingehen. Richtig. Stabilität ist wichtiger als alles. Tatsächlich sind nicht nur Daten, sondern auch Stabilität wichtiger als alles andere in der gesamten Serverumgebung Wir streben nicht nach der schnellsten, sondern nach der stabilsten und benutzerfreundlichsten. Verwenden Sie daher keine neue Software auf dem Server, z. B. nginx + php-fpm. In der Produktionsumgebung wird PHP aufgehängt und neu gestartet Ändern Sie einfach Apache.

Vertraulichkeit ist wichtiger als alles andere

Heutzutage gibt es alle Arten von pornografischen Fotos und alle Arten von Router-Hintertüren. Wenn es um Daten geht, ist es daher unmöglich, sie nicht vertraulich zu behandeln. Wenn Sie außerdem nach dem öffentlichen Konto Linux suchen, sollten Sie auf diese Weise lernen, im Hintergrund auf „Linux“ zu antworten, um ein Überraschungsgeschenkpaket zu erhalten.

Einbeziehen der Sicherheit

ssh

Ändern Sie den Standardport (wenn ein Profi Sie hacken möchte, wird er natürlich nach dem Scannen angezeigt). Verbieten Sie die Root-Anmeldung mit normalen Benutzern + Schlüsselauthentifizierung + Sudo-Regeln + IP-Adresse + Benutzereinschränkungen Verwenden Sie hostdeny ähnlich explosionssicher. Knacken Sie die Software (wenn Sie nach einigen Versuchen versuchen, sie direkt zu blockieren), überprüfen Sie die angemeldeten Benutzer in /etc/passwd

Firewall

Die Firewall muss in der Produktionsumgebung aktiviert sein. und folgen Sie dem Minimalprinzip, löschen Sie alle und geben Sie dann die erforderlichen Service-Ports frei.

Feine Berechtigungen und Kontrollgranularität

Sie können von normalen Benutzern gestartete Dienste verwenden und niemals Root verwenden. Kontrollieren Sie die Berechtigungen verschiedener Dienste auf ein Minimum, und die feinkörnige Kontrolle muss in Ordnung sein.

Einbruchserkennung und Protokollüberwachung

Verwenden Sie Software von Drittanbietern, um jederzeit Änderungen in wichtigen Systemdateien und verschiedenen Dienstkonfigurationsdateien zu erkennen, z. B. /etc/passwd, /etc/my.cnf, /etc/httpd/con /httpd.con usw.; Verwenden Sie ein zentrales Protokollüberwachungssystem, um /var/log/message, FTP-Upload- und Download-Dateien und andere Alarmfehlerprotokolle zu überwachen Verwenden Sie auch Software von Drittanbietern, um Scan zu erkennen und host.deny direkt einzubinden. Diese Informationen sind sehr hilfreich bei der Fehlerbehebung, nachdem das System kompromittiert wurde. Jemand hat gesagt, dass die Kosten, die ein Unternehmen in die Sicherheit investiert, direkt proportional zu den Kosten sind, die es durch Sicherheitsangriffe verliert. Sicherheit ist ein großes Thema und eine sehr grundlegende Aufgabe. Wenn die Grundlagen gut gemacht werden, kann die Systemsicherheit erheblich verbessert werden Den Rest erledigen Sicherheitsexperten

Tägliche Überwachung

Systembetriebsüberwachung

Viele Menschen beginnen mit der Überwachung, wenn sie mit Betrieb und Wartung beginnen. Große Unternehmen verfügen in der Regel über eine professionelle 24-Stunden-Überwachung sowie Betrieb und Wartung. Die Überwachung des Systembetriebs umfasst im Allgemeinen die Hardwarebelegung, den Speicher, die Festplatte, die CPU, die Netzwerkkarte und das Betriebssystem, einschließlich der Überwachung der Anmeldung und der Überwachung wichtiger Systemdateien. Regelmäßige Überwachung kann die Wahrscheinlichkeit von Hardwareschäden vorhersagen und sehr praktische Funktionen zur Optimierung bringen.

Überwachung des Servicebetriebs

Die Serviceüberwachung bezieht sich im Allgemeinen auf verschiedene Anwendungen, Web, Datenbank, LVS usw. Dabei werden im Allgemeinen einige Indikatoren überwacht und können schnell erkannt und behoben werden, wenn Leistungsengpässe im System auftreten.

Protokollüberwachung

Die Protokollüberwachung ähnelt hier der Sicherheitsprotokollüberwachung, hier handelt es sich jedoch im Allgemeinen um die Überwachung von Fehler- und Alarminformationen von Hardware, Betriebssystem und Anwendungen. Sie ist wirklich nutzlos, wenn das System einmal stabil läuft Wenn ein Problem auftritt, sind Sie sehr passiv, wenn Sie keine Überwachung durchführen.

Leistungsoptimierung

Tiefgehendes Verständnis des Betriebsmechanismus

Tatsächlich ist das Sprechen über Tuning aufgrund von mehr als einem Jahr Betriebs- und Wartungserfahrung im Grunde nur ein Gerede auf dem Papier, aber ich möchte es nur kurz zusammenfassen . Wenn ich ein tieferes Verständnis habe, werde ich es erneuern. Bevor Sie beispielsweise die Software optimieren, müssen Sie den Funktionsmechanismus einer Software wie Nginx und Apache genau verstehen. Jeder sagt, Nginx sei schnell, also müssen Sie wissen, warum Nginx schnell ist und welche Prinzipien es verwendet , wie man Anfragen besser verarbeitet als Apache, und Sie müssen in der Lage sein, es in einfachen und leicht verständlichen Worten auszudrücken, und Sie müssen in der Lage sein, den Quellcode bei Bedarf zu verstehen, ansonsten alle Dokumente, die Parameter verwenden denn Tuning-Objekte sind Unsinn.

Tuning-Framework und -Sequenz

Sobald Sie mit dem zugrunde liegenden Betriebsmechanismus vertraut sind, müssen Sie über ein Tuning-Framework und eine Tuning-Sequenz verfügen. Wenn es beispielsweise einen Engpass in der Datenbank gibt, ändern viele Leute direkt die Konfigurationsdatei der Datenbank Mein Vorschlag ist, zuerst die Datenbank entsprechend dem Engpass anzupassen, die Protokolle zu überprüfen und dann mit der Optimierung des Datenbankservers zu beginnen. Heutige Datenbankserver werden erst nach diversen Tests freigegeben und funktionieren auf allen Betriebssystemen, damit sollte man nicht erst anfangen.

牛逼啊!接私活必备的 N 个开源项目!赶快收藏

Nur einen Parameter auf einmal anpassen

Nur einen Parameter auf einmal anpassen Wie jeder weiß, wird man verwirrt, wenn man zu viel anpasst.

Benchmark-Tests

Um festzustellen, ob eine Optimierung sinnvoll ist, und um die Stabilität und Leistung einer neuen Softwareversion zu testen, sind viele Faktoren erforderlich. Ob der Test den tatsächlichen Geschäftsanforderungen entspricht Tester. Weitere Informationen finden Sie in der dritten Ausgabe von „High Performance MySQL“. Mein Lehrer hat einmal gesagt, dass es keinen einheitlichen Parameter gibt und jede Parameteränderung oder -optimierung dem Geschäftsszenario entsprechen muss. Googlen Sie also keine weiteren Optimierungen, da dies keine langfristigen Auswirkungen auf Ihre Verbesserung haben wird und die Verbesserung des Geschäftsumfelds.

Betriebs- und Wartungsmentalität

Kontrollieren Sie Ihre Mentalität

Viele rm -rf /data sind in den ersten Minuten nach der Arbeit auf dem Höhepunkt ihrer Gereiztheit. Haben Sie also nicht vor, Ihre Mentalität zu kontrollieren? , Reizbarkeit Sie müssen auch zur Arbeit gehen, aber Sie können versuchen, die Verarbeitung kritischer Daten zu vermeiden, wenn Sie gereizt sind. Je stressiger die Umgebung, desto ruhiger müssen Sie sein, sonst verlieren Sie mehr. Die meisten Leute haben die Erfahrung mit rm -rf /data/mysql. Sie können sich vorstellen, wie Sie sich nach dem Löschen fühlen. Aber wenn es kein Backup gibt, müssen Sie sich in diesem Fall im Allgemeinen beruhigen Denken Sie darüber nach. Wenn Sie die physischen Dateien von MySQL löschen, sind noch einige Tabellen im Speicher vorhanden. Schließen Sie die MySQL-Datenbank also nicht. Dies ist für die Wiederherstellung sehr hilfreich dd, um die Festplatte zu kopieren, und dann können Sie für die Wiederherstellung natürlich meist nur ein Datenrettungsunternehmen finden. Stellen Sie sich vor, dass die Daten gelöscht wurden, wenn Sie verschiedene Vorgänge ausführen, die Datenbank schließen und sie dann reparieren. Möglicherweise wird nicht nur die Datei überschrieben, sondern die Tabelle im Speicher wird möglicherweise nicht gefunden.

Seien Sie für die Daten verantwortlich

Die Produktionsumgebung ist kein Kinderspiel, und die Datenbank ist auch kein Kinderspiel. Sie müssen für die Daten verantwortlich sein. Die Folgen einer unterlassenen Sicherung sind sehr schwerwiegend.

Gehen Sie der Sache auf den Grund

Viele Betriebs- und Wartungsmitarbeiter sind beschäftigt und kümmern sich nicht um das Problem, wenn es gelöst ist. Ich erinnere mich, dass die Website eines Kunden letztes Jahr nicht geöffnet werden konnte, nachdem ein Fehler im PHP-Code gemeldet wurde Es wurde festgestellt, dass die Sitzung und whos_online beschädigt waren. Die Dimension wurde durch Reparatur repariert, und ich habe es auf diese Weise repariert. Nach ein paar Stunden passierte es jedoch erneut, also ging ich zu Google Um nach den Gründen für den unerklärlichen Schaden an der Datenbanktabelle zu suchen: Einer war ein Myisam-Fehler, der andere war ein MySQL-Fehler. Am Ende wurde festgestellt, dass der Speicher nicht ausreichte , was dazu führte, dass OOM den MySQLd-Prozess beendete und keine Swap-Partition vorhanden war. Der Hintergrundüberwachungsspeicher reichte aus und schließlich wurde der physische Speicher aktualisiert, um das Problem zu lösen.

Test- und Produktionsumgebung

Überprüfen Sie vor wichtigen Vorgängen unbedingt die Maschine, an der Sie arbeiten, und vermeiden Sie das Öffnen zu vieler Fenster.

Das obige ist der detaillierte Inhalt vonIch dachte, ich wäre mit Linux vertraut, aber ich hätte nie erwartet, dass es in der Produktionsumgebung auf den Kopf gestellt werden würde .... Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:Linux中文社区. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen