Frage Toolkit & Gewohnheiten für Linux Network & System Administration [geschlossen]


Ich habe die Aufgabe, ein kleines Büronetzwerk sowie mehrere Workstations mit Debian und Ubuntu zu verwalten. Es gibt zwei Server: eine Datenbank und einen Druckserver sowie einen Sicherungs- und Dateiserver.

Da ich relativ neu auf dieser Seite der Dinge bin, weiß ich genug, um mir in gewissem Maße auf Linux zu helfen. Ich würde gerne wissen, welche Software-Tools und Aufgaben / Gewohnheiten ich anwenden kann, um dieses Feld zu erlernen und effektiv zu sein.

Ich muss nicht wissen, was das Beste ist, was ein Neuling-Systemadministrator als Starter-Paket verwenden kann, um zu lernen und als Grundlage für eine ordnungsgemäße Systemverwaltung zu dienen.

Was ich brauche, sind die paar grundlegenden Tools, mit denen ich anfangen muss, und die Art von Dingen, die ich regelmäßig tun muss, zB: welche Logs zu checken, wann und was zu überwachen, die Art von 'richtigem' Startort und was ich kann ad wie ich brauche.


20
2017-10-17 13:23


Ursprung


Subjektives Thema, im Extremfall. Wie würde eine "richtige" Antwort aussehen? - Bill Weiss


Antworten:


1

Überwachung geschäftskritischer Prozesse [z. B. - Datenbank wird ausgeführt und reagiert auf einfache Abfragen], grundlegende Parameter des Betriebssystems [freier Speicherplatz, Lastdurchschnitt]. Sie können verwenden Nagios oder Zabbix zum Beispiel.

2

Sammeln Sie Statistiken, um einige Baselines zu erstellen. In Zukunft wird dies für die Kapazitätsplanung nützlich sein. Sie können verwenden Munin, zabbix, Kakteen usw.

3

Führen Sie geplante automatische Sicherungen durch, speichern Sie einige davon offline, extern. zu überwachen, wenn sie erfolgreich waren, von Zeit zu Zeit manuell überprüfen, ob Sie kritische Daten wiederherstellen können. Sie möchten vielleicht verwenden Backupninja um sie zu orchestrieren oder Zmanda, aber es gibt viel mehr nützliche Werkzeuge ..

4

dokumentieren. Für dein eigenes Wohl. denken Sie nicht, dass ein Mangel an Dokumentation Ihre Arbeitsplatzsicherheit erhöht. Der erste, der leiden wird, weil du es nicht hast, wirst du wahrscheinlich schnell vergessen.

5

von anderen zufälligen Dingen:

lerne eine Skriptsprache - vielleicht kennst du schon eine? perl / python / php kann zur Automatisierung von Aufgaben verwendet werden und ist in vielen Fällen für komplexere Aufgaben besser geeignet als bash

lerne deine Werkzeuge - es ist endlose Liste ... ssh kommt mir wahrscheinlich zuerst in den Sinn. Auschecken diese und Das.


16
2017-10-17 13:35



"Es ist endlose Liste ..." - tatsächlich; Ich habe danach gegoogelt, bevor ich diese Frage gestellt habe, bin aber überwältigt. Ich glaube an KISS, und möchte von einer einfachen, einfachen Basis starten und versuchen, Dinge richtig zu lernen. - slashmais
Ich möchte hinzufügen, dass die Punkte 1 und 4 am wichtigsten sind. Ich würde empfehlen, ein Konfigurationsverwaltungssystem wie Puppet zu verwenden. Zumindest sollten Sie die Versionskontrolle (git / svn) verwenden, aber Puppet lässt Sie Dinge einmal ausführen und dann wiederholbar sein, falls Sie Dienste hinzufügen oder neu erstellen müssen. Ich glaube auch an Über-Engineering. Wenn Sie Ihre Infrastruktur so aufbauen, als würden Sie 100 Maschinen benötigen, ist es einfacher, Ihre 10 Maschinen zu verwalten und bei Bedarf zu skalieren. - neoice
Ich denke, es ist eine Frage der Meinung, aber ich würde Punkt 3 als den kritischsten setzen. Ja, es ist nervig, wenn die Buchhaltungsdatenbank für einen halben Tag nicht verfügbar ist, aber es ist Ja wirklich Es nervt, wenn alle finanziellen Daten weg sind, weil keine / schlechte Backups vorhanden sind. YMMV. - Joe Internet
@pQd - Ich würde auch Monitoring (Nagios, Opennms, etc) und ein Ticketing-System hinzufügen. Es muss nichts Außergewöhnliches sein: nur ein Platz, an dem Sie Ihre "Todo" -Elemente aufbewahren können. Schließlich kann es zu Leuten erweitert werden, die die benötigten Zeitangaben einreichen oder Warteschlangen für andere Teams entwickeln. - warren
lesen Zeitmanagement für Systemadministratorenvon Thomas Limoncelli. Sollte für jeden gelesen werden, der per Email arbeitet. - warren


Die Praxis der System- und Netzwerkadministration, von Limoncelli, et al, ist, wo Sie anfangen sollten. Technologien werden kommen und gehen (und können leicht gegoogelt werden), aber die Information in diesem Buch ist zeitlos (und unbezahlbar).


10
2017-10-17 22:30



Auch Essential System Administration von Frisch. - Jason Antman


Ein paar grundlegende Tools zu Beginn

Google. Nein im Ernst. Google ist der Traum eines Systemadministrators. Es gibt keine bessere Möglichkeit, die große Menge an Informationen im Internet zu nutzen. Und beschränken Sie sich nicht nur auf die Suche nach "Linux für Anfänger"; Wenn Sie eine bestimmte Aufgabe haben, die Sie erreichen möchten, Google für diese spezielle Sache. Sie werden oft mehr Informationen finden, als Sie brauchen, und als Anfänger wird vieles davon wie eine andere Sprache erscheinen, aber Lernen durch Tun ist eine gute Möglichkeit, Dinge schnell aufzuheben.

Tab-Vervollständigung Die Linux-Befehlszeile ermöglicht die Tab-Vervollständigung aller Befehle, Verzeichnisbäume, Verzeichnisnamen und Dateinamen.

Manpages. Jeder Befehl und viele Systemkonfigurationsdateien (/ etc / fstab, / etc resolv.conf usw.) haben Manpages. Geben Sie einfach "man command_name" oder "man file_name" ein, um zu sehen, ob das, wonach Sie suchen, eins hat. Oh und "q" beendet eine Manpage.

SSH. Eine der besten Möglichkeiten, auf ein Linux-System zuzugreifen. Wahrscheinlich das Der beste Weg, wenn Sie keinen physischen Zugang zum System haben.

Bildschirm. Screen ist eine fantastische kleine Anwendung, mit der man ein Terminal in viele verwandeln kann, die Dinge aus dem Weg / in den Hintergrund bringen kann und die Dinge so laufen lässt, dass man später zu ihnen zurückkehren kann.

Nano. Du hast oben erwähnt, dass du das bereits benutzt, aber ich dachte nur, ich würde meine zwei Cent einwerfen und sagen, dass ich zustimme. Vi und Vim und alle anderen sind in Ordnung, aber es ist die Einfachheit von Nano, die ich liebe. Es ist wie der Editor der Linux-Welt.

Finde und greife. Finden ist großartig zum Suchen zum Dateien, Grep ist großartig zum Suchen im Dateien. Beide können auf sehr einfache Weise verwendet werden, und beide können auf sehr komplexe Arten verwendet werden, aber beide sind in beiden Fällen sehr nützlich.

Sudo. Lässt Sie sich wie root verhalten, ohne root zu sein. Sehr hilfreich.

Plus ein paar andere Werkzeuge, die ich im Zusammenhang mit dem nächsten Abschnitt erwähnen werde ...

Die Arten von Dingen, die Sie regelmäßig tun müssen

Überwachen Sie Ihr System. Überwachen Sie Ihre Festplattennutzung (df ist ein nützlicher Befehl und du auch für bestimmte Verzeichnisse), überwachen Sie Ihre laufenden Prozesse und Aufgaben (über die Befehle ps und top), überwachen Sie die in Ihren Systemen angemeldeten Benutzer (die Benutzer und die Befehle) sagen Sie dies), und überwachen Sie Ihre Netzwerknutzung (Apps wie Kakteen sind dafür gut). Wenn Sie Zugriff auf eine X-Windows-Umgebung haben, war GKrellM immer ein sehr nützliches All-in-One-Tool zur Systemüberwachung.

Sicherungen Für die Liebe von Tux, Backups. Sichern Sie Konfigurationsdateien, sichern Sie Home-Verzeichnisse, sichern Sie Anwendungsdaten. Sicherungen Selbst wenn Sie lediglich die Daten vom Server auf eine CIFS / NFS-Freigabe auf einer anderen Box und einer externen Festplatte kopieren. Und ja, Sie sollten zwei Kopien jedes Backups aufbewahren und niemals auf demselben Medium / System. Stellen Sie es sich als Backup Ihrer Backups vor.

Überprüfen Sie Ihre Backups. Überprüfen Sie routinemäßig, ob Sie Daten aus Ihren Backups auf Ihren Systemen wiederherstellen können. Leere / beschädigte / unvollständige Backups sind so nutzlos wie der Tag lang ist.

Verwenden Sie Ihre Protokolldateien. Dmesg, / var / log / messages, und eigentlich so ziemlich alles in / var / log period. Wenn etwas nicht richtig funktioniert und Sie nicht wissen, warum, haben die Protokolle möglicherweise keine Antwort, aber sie können Ihnen auf jeden Fall helfen, sie zu finden. Und die Protokolle und Verzeichnisse in / var / log sind vernünftig benannt, daher sollte es nicht schwer sein, das richtige Protokoll zu finden. Sie müssen nicht jede Protokolldatei ständig überwachen, aber wenn Sie sie im Auge behalten, können Sie Ihr System gesund und sicher halten.

Halten Sie Ihr System auf dem neuesten Stand. Lassen Sie Ihre Software nicht monatelang laufen, ohne aktualisiert zu werden, da dies zu vielen Problemen führen kann, wenn Konfigurationsdateien oder Abhängigkeiten geändert werden. Verschiedene Distributionen haben verschiedene Update-Programme (apt-get, yum, etc.), aber welche auch immer Sie verwenden, lernen Sie es und verwenden Sie es regelmäßig.

Halten Sie Ihr System sicher. Verwenden Sie Dinge wie iptables, PAM, hosts.allow / hosts.deny und ähnliche, um unerwünschten Zugriff auf Ihr System zu verhindern.

Höre nie auf zu lernen. Um mit etwas fortzufahren, das ich bereits erwähnt habe (Lernen durch Arbeiten), sollten Sie sich mit virtuellen Maschinen befassen. Laden Sie VirtualBox herunter (oder wenn Sie VMWare-Lizenzen noch besser haben) und machen Sie sich eine virtuelle Linux-Maschine. Sie können jede gewünschte Distribution auswählen, aber es ist wahrscheinlich am sinnvollsten, sie in Ihrer Umgebung zu verwenden. Spielen Sie in der VM herum. Verwenden Sie es wie eine Sandbox. Dinge aufstellen, Dinge brechen, untersuchen, lernen. Die Schönheit einer Sandbox-VM ist, dass es egal ist, was damit passiert. Wenn du es komplett schlauchst, mach einfach einen neuen. Oder bewahren Sie eine Sicherungskopie des Originals auf, nachdem Sie es eingerichtet haben, und verwenden Sie es bei Bedarf erneut.

Wie einige der anderen Beiträge in diesem Thread erwähnt und angedeutet haben, könnten diese Listen wirklich nahezu unendlich sein, aber das bringt hoffentlich einen guten Start.


10
2017-10-22 19:33



Es hat die Syntax aus meinen Beispiel- "man" -Befehlen gestrichen, also habe ich sie etwas angepasst. Sie würden einfach "command_name" und "file_name" durch den entsprechenden Befehl oder die Datei ersetzen. - kingfish
Manchmal in Notepad und ich finde ESC tippen,: wq das Problem ist, dass es kein seltener Fall ist. Ich wundere mich warum... - Mircea Vutcovici


Wenn Sie gerade erst anfangen, und vor allem, weil Sie Debian (Debian im Kern) haben, empfehle ich die Debian-Referenz. Es ist ein großartiger Überblick über nahezu jeden Aspekt der Systemverwaltung und sollte fast alles abdecken, was Sie über die Wartung einer kleinen Anzahl von Systemen wie diesen wissen müssen.

Ich stimme auch allen Punkten zu, die pQd gemacht hat, und genauer gesagt denke ich, es wäre eine gute Idee für Sie, ein Wiki einzurichten, um all Ihre Prozesse und Konfigurationen zu dokumentieren. In meiner Organisation verwenden wir Trac, aber jede Wiki-Engine sollte das tun, stellen Sie einfach sicher, dass es eine gute Möglichkeit bietet, Quellcode anzuzeigen, da dies für kleine Skripte und Befehlslisten nützlich ist.


8
2017-10-17 16:42





Ehrlich gesagt, Linux System Administration ist kein Feld, in das man einfach hineinspringen kann.

Wenn du müssen, zu ... habenAllerdings gibt es ein paar gute Bücher zu diesem Thema. O'Reilly hat zwei Bücher (Linux Network Administration und Linux System Administration), die Ihnen den Einstieg erleichtern sollen.

Persönlich, wenn ich du wäre, würde ich ein paar Tage damit verbringen, mit verschiedenen Distributionen herumzuspielen, Software zu installieren, Dinge von Nagios / Cacti / Apache2 / SSH / NFS einzurichten und vielleicht eine Art Skriptsprache zu lernen (ich benutze Perl, ich selbst; aber viele meiner Kollegen Admins bevorzugen Python. Es liegt wirklich an Ihnen, was Sie lernen wollen, obwohl).

Und lerne definitiv die Befehlszeile. Greifen Sie nicht auf grafische Tools als Krücke zurück.

Lerne vi. Selbst wenn du es nur gut genug lernst, um grundlegende Änderungen zu machen, dann gut - aber es ist wichtig, vi zu lernen, weil du manchmal auf einem System ohne Vim / Nano / Emacs feststeckst. Wenn Sie in dieser Situation sind, werden Sie froh sein, dass Sie einen oder zwei Tage damit verbracht haben, vi zu lernen.

Wenn Sie Hilfe benötigen, können Sie mir gerne eine E-Mail senden (meine E-Mail-Adresse ist [aus Sicherheitsgründen entfernt]) - ich würde mich freuen, Ihnen außerhalb von ServerFault weiterhelfen zu können.


3
2017-10-17 14:56



Ich kenne Perl; Ich weiß / etwas / vi (wie man einfügt & speichert & beendet - bevorzugen Nano). Meine Situation ist zum Glück ein "Niederdruck", also muss ich nicht sofort ein sys-admin guru werden, ich kann hineinwachsen (und server-fault haben & dir (danke für das Vertrauen) fragen wann ich wirklich hängen bleiben (gehören auch zu einem sehr hilfreichen LUG). Was ich brauche, ist diese paar grundlegende Werkzeuge, mit denen ich anfangen muss, und die Art von Dingen, die ich regelmäßig tun muss, zB: welche Protokolle zu überprüfen, wann und was zu überwachen, die Art von "richtigen" Ort zu starten und zu dem ich ad wie ich brauche. - slashmais
Dann empfehle ich Ihnen, sich mit der Einrichtung von Cacti, Nagios, Snort und Postfix vertraut zu machen. Dies sind wahrscheinlich die vier Werkzeuge, mit denen Sie Ihr System am häufigsten überwachen. Wenn Sie diese Einstellungen vornehmen, sparen Sie viel Zeit beim manuellen Überprüfen der Protokolldateien. Zum manuellen Überprüfen von Protokollen ist alles in / var / log / wahrscheinlich eine gute Wahl. Es gibt keine speziellen Dateien, auf die ich Sie hinweisen kann, aber wenn etwas nicht richtig funktioniert, kann es sinnvoll sein, in / var / log einzuchecken - Michael Pobega
Es war einmal, dass ich auch Nano bevorzugte, Slashmais. Wenn Sie mit dem Bearbeiten von Dateien begonnen haben, sollten Sie vi genauer kennen lernen. Kann jetzt nicht genug davon bekommen ... - Kyle Smith


Wenn Sie mit der Installation einer Anwendung auf den Servern vertraut sind, sollten Sie darüber nachdenken webmin sch 100 100 100 100 100 100 100 100 100 100 100 sch dieser 100 sch 100 100 100 100 sch sch sch 100 100 sch 100 sch sch sch sch sch 100 100 sch 100 sch 100 sch sch sch sch sch sch sch sch 100 100 sch sch sch 100 sch 100 sch 100 sch sch sch sch sch sch sch 100 sch sch 100 sch sch sch sch sch sch sch sch dieser Richten Sie es so ein, dass es über einen Port hoher Port mit SSL läuft und es sich bei der Überprüfung lohnt.


3
2017-10-22 20:55





Ich werde Ihnen das größte Geheimnis der System- und Netzwerkadministration erzählen. Bereit? Ok, hier ist es:

Erlernen Sie die Grundlagen. Lass mich das ausarbeiten.

Jeder (oder nur ungefähr) kann lernen, was diese oder jene bestimmte Software tut, und wie man diese Taste auf diesem Werkzeug drückt, um x, y oder z arbeiten zu lassen. Das ist nichts besonderes.

Wenn du ein sein willst gut sys / net admin, lerne die Dinge unter der Haube. Wie ist die Abfolge von Ereignissen in einer typischen Netzwerkverbindung? Was ist der Unterschied zwischen einem Rahmen und einem Paket? Was bedeutet Lastdurchschnitt wirklich auf einem Unix-System? Was ist der typische Boot-Up-Prozess für eine Maschine (diese eine allein, wenn Sie sie von Anfang bis Ende folgen, wird eine Fülle von Wissen zur Verfügung stellen).

Sobald Sie die Grundlagen verstehen und sie wirklich gut verstehen, ist es viel einfacher, Wissen auf einer guten Grundlage zu legen. Aber wenn du an der Spitze beginnst und versuchst, bestimmte Teile von Software zu lernen, ohne zu wissen, was darunter passiert, dann wirst du ... nur ein weiterer High-Tech-Hausmeister, im Grunde genommen.


2
2017-10-21 20:31





Zunächst einmal, finden Sie Ihre Protokolle. Die meisten Linux Distributionen loggen sich in / var / log / messages ein, obwohl ich ein paar Logs in / var / log / syslog gesehen habe. 100 100 sch 100 100 sch sch 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 sch 100 100 100 100 100 sch 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 dieser Wenn Sie überhaupt mit E-Mail arbeiten, vergessen Sie nicht, / var / log / mail. Überprüfen Sie Ihre Anwendungen doppelt und finden Sie heraus, ob sich einige von ihnen irgendwo außerhalb von syslog lächerlich machen.

Verbessere deine vi-Fähigkeiten. Nano könnte das sein, was all die coolen Kids heutzutage benutzen, aber die Erfahrung hat mich gelehrt, dass vi der einzige Texteditor ist, der garantiert auf dem System ist. Sobald Sie sich an die Tastaturkürzel gewöhnt haben und beginnen, eigene Trigger zu erstellen, wird vi für Sie wie eine zweite Natur sein.

Lesen Sie die Manpage und führen Sie dann die folgenden Befehle auf jedem Computer aus und kopieren Sie die Ergebnisse in Ihre Dokumentation:

hostname
cat /etc/*release*
cat /etc/hosts
cat /etc/resolv.conf
cat /etc/nsswitch
df -h
ifconfig -a
free -m
crontab -l
ls /etc/cron.d
echo $SHELL

Das wird als Anfang Ihrer Dokumentation dienen. Der sch sch 100 sch sch dieser sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch 100 sch 100 sch 100 sch 100 sch sch sch sch dieser

Sch sch sch sch sch sch sch sch sch sch 100 sch sch 100 sch 100 sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch dieser Das wird Ihnen eine Vorstellung davon geben, was nicht so funktioniert, wie es sollte. Ihre Benutzer werden Ihnen ihre Meinung darüber geben, was falsch ist, genau zuhören, was sie zu sagen haben. Sie verstehen das System nicht, aber sie sehen es anders als Sie.

Wenn Sie ein Problem haben, überprüfen Sie die Dinge in dieser Reihenfolge:

  1. Festplattenspeicher (df -h): Linux und einige Anwendungen, die unter Linux ausgeführt werden, führen einige seltsame Dinge aus, wenn der Festplattenspeicher erschöpft ist. Es scheint ohne Zusammenhang zu sein, bis Sie ein Dateisystem zu 100% gefunden haben.

  2. Oben: Oben werden Sie wissen lassen, ob Sie einen Prozess haben, der sich dort befindet und alle verfügbaren CPU-Zyklen verschlingt. Nichts sollte 99% CPU für einen längeren Zeitraum verbrauchen. Wenn es ein legitimer Prozess ist, sollte es wahrscheinlich schwanken. Während du oben bist, überprüfe ...

  3. Systemlast: Die Systemlast sollte normalerweise auf einem Standardserver oder einer Workstation unter 3 liegen. Die Systemlast basiert auf CPU, Speicher und E / A.

  4. Speicher (frei -m): RAM-Nutzung in Linux ist ein wenig anders. Es ist nicht ungewöhnlich, einen Server zu sehen, auf dem fast der gesamte Arbeitsspeicher belegt ist. Keine Panik, wenn Sie dies sehen, ist es meistens nur Cache und wird bei Bedarf gelöscht. Achten Sie jedoch genau auf den Umfang des verwendeten Swaps. Wenn möglich, halte dies so nahe wie möglich bei Null. Unzureichender Speicher kann zu allen Arten von Leistungsproblemen führen.

  5. Protokolle: Gehen Sie zurück zu Ihren Protokollen und führen Sie den Tail -500 / var / log / messages | mehr und beginne zu lesen und zu sehen, was vor sich geht. Hoffentlich können die Protokolle Sie in die Richtung weisen, in die Sie als nächstes gehen müssen.

Ein gut gepflegter Linux-Server kann jahrelang ohne Probleme laufen. Wir haben gerade einen heruntergefahren, der 748 Tage lang lief, und wir haben ihn nur heruntergefahren, weil wir die Anwendung auf neue Hardware migriert hatten. Hoffentlich hilft Ihnen das, Ihre Füße nass zu machen und Sie zu einem guten Start zu bringen.

Noch eine letzte Sache: Erstellen Sie immer eine Kopie einer Konfigurationsdatei, die Sie ändern möchten, und kopieren Sie immer die Zeile, die Sie ändern, und kommentieren Sie das Original, indem Sie den Grund für die Änderung hinzufügen. Dies wird Ihnen die Angewohnheit geben, zu dokumentieren, wie Sie gehen, und kann Ihr Fell 9 Monate später retten.


2
2017-10-25 08:14