Wahrscheinlich hatten wir alle diese Situation: Sie haben ein Problem behoben, nur um festzustellen, dass es durch eine Konfigurationsänderung verursacht wurde, die Sie vor sechs Monaten vorgenommen haben, und Sie können sich nicht erinnern, warum Sie es getan haben. Sie machen es also rückgängig und beheben das Problem. Nun tritt ein anderes Problem auf. Oh ja, jetzt erinnere ich mich! Dann beheben Sie es richtig.
Es ist, weil du nicht die richtigen Notizen gemacht hast, du Narr! Aber was ist ein guter Weg, um dies zu tun?
Im Bereich Engineering verfügen wir über zahlreiche Software, mit deren Hilfe wir Änderungen erkennen und nachverfolgen können. Quellcodeverwaltung, Codeüberprüfungen usw. Jede Änderung wird nachverfolgt, jede Änderung erfordert einen Kommentar dazu, was es ist. Und typische technische Abteilungen benötigen gute Kommentare, sodass Sie in sechs Monaten, wenn Sie herausfinden, warum Sie das Problem auf diese Weise gelöst haben, eine historische "Schuld" -Funktion oder Binärsuch-Builds verwenden können, um das Problem zu lokalisieren. Diese Tools sind sehr effektive Kommunikationswerkzeuge und historische Aufzeichnungen.
Aber im Serverland gibt es 500 verschiedene Dienste, die alle auf unterschiedliche Weise konfiguriert werden können. Und sie haben nicht immer ein Textformat (Sie können Berechtigungen für einen Ordner festlegen oder den Speicherort der Auslagerungsdatei ändern), obwohl sie möglicherweise eine Textdarstellung haben.
In unserer Umgebung prüfen wir, welche Konfigurationsdateien in Perforce gespeichert werden können, aber es gibt nur sehr wenige davon. Ich kann die Active Directory-Datenbank nicht genau einchecken.
In der Vergangenheit habe ich versucht, ein manuelles Änderungsprotokoll in unserem Wiki zu führen, aber es ist sehr schwer, die Disziplin dafür aufrechtzuerhalten (ich weiß, keine gute Entschuldigung, aber es ist wirklich schwierig).
MEINE FRAGE: Welche Strategien und Tools verwenden Sie, um dieses Problem der Verfolgung von Konfigurationsänderungen auf Ihren Servern zu bewältigen?
- Update -
Hinweis: Ich bin nicht auf der Suche nach Tools für gemeinsame Notizen (ich kenne mich mit OneNote usw. aus), sondern nach automatisierten Tools, die speziell für die Nachverfolgung von Serveränderungen vorgesehen sind. Es gibt kein umfassendes Tool zum Nachverfolgen von Serverkonfigurationsänderungen, aber möglicherweise einige für bestimmte Anwendungen, z. B. Gruppenrichtlinienobjekte.
Ich interessiere mich auch sehr für bestimmte Strategien , die Sie nützlich fanden. "Wir teilen Notizen in Sharepoint" ist ziemlich vage. Wie erhältst du die Disziplin aufrecht? Welches Format verwenden Sie, um Ihre Änderungen zu verfolgen? Wie organisieren Sie Ihre Änderungsdaten? Ich hätte gerne Beispiele und Ideen.
quelle
Eines der Probleme in dieser Situation ist, dass es sich tatsächlich um eine Kombination aus Geschäftsprozess und technologischem Problem handelt. Und es ist definitiv größer, als nur zu verfolgen, welche Änderungen ein Administrator vorgenommen hat. Sie müssen auch auf unerwartete Änderungen und eine gute Koordination zwischen Administratoren oder Einheiten achten, damit eine Änderung auf einem AD-Controller die Datenbankberechtigungseinstellungen auf einigen Abteilungsservern nicht beeinträchtigt. Dh deine Frage ist eine Riesendose Würmer :)
In meiner Organisation sind wir ungefähr ein Jahr damit beschäftigt, Prozesse und Systeme einzuführen, um dies zu beheben. Für die Geschäftsprozessseite haben wir ein Change Management Team gebildet. Laut SOP werden alle Änderungen an den Produktionsumgebungen durch sie koordiniert. Sie kompilieren alle Änderungen sowie den Umfang, die betroffenen Systeme, die betroffenen Services usw. Erzwingen Sie eine gute Dokumentation der Änderungen sowie Rollout- und Rollback-Pläne. Veranstalten Sie wöchentliche (offene) Meetings, um sich über bevorstehende Änderungen in der Umgebung zu informieren, und senden Sie anschließend E-Mails, in denen alle diese Änderungen aufgeführt sind. Das Endziel bei diesem Prozess ist, dass effektiv jeder in der IT alles weiß, was sonst noch vor sich geht. Dies hilft, das Problem zu beenden, dass z. B. ein SysAdmin einen Kernel-Patch installiert und ein System neu startet, das die Timeclock-Datenbank herunterfährt.
Was die Technologie betrifft, kann ich nur von den Unix / Linux-Leuten sprechen, da ich mich nicht mit Windows beschäftige. Sie haben Puppet von Reductive Labs für das Konfigurationsmanagement all dieser Systeme eingeführt. Einfach gesagt, handelt es sich um ein Client / Server-System, bei dem eine Maschinenkonfiguration auf dem Server definiert wird und der Client diese Chancen von Zeit zu Zeit nutzt (standardmäßig 30 Minuten). Darüber hinaus werden verwaltete Dateien, die möglicherweise lokal verwaltet werden, zu diesem Zeitpunkt ebenfalls zurückgesetzt. Wir verwenden es für die Verwaltung von laufenden Diensten, Firewall-Konfigurationen, Benutzerautorisierung usw.
Ich würde auch empfehlen, in etwas wie TippingPoint zu suchen. Hierbei handelt es sich um einen Client-Service, der die Systemkonfiguration überwacht und Warnungen bei Änderungen sendet. Es macht uns Sicherheitsleute am glücklichsten. Es wird hauptsächlich zum Nachverfolgen von böswilligen oder unveröffentlichten Änderungen verwendet.
quelle
Ich war in 4 oder 5 Unternehmen, an die ich mich nicht wirklich erinnere.
Wir hatten alle dieses Problem. Keiner von uns hat es zu 100 Prozent gelöst, aber in der Firma, die ich jetzt bin, haben wir das, was ich für die beste Strategie bis heute halte.
Sharepoint / Wiki / Evernote / PINs
quelle
Es gibt wahrscheinlich bessere Tools für einige von diesen, aber das ist, was wir verwenden:
quelle
Informieren Sie sich unter Windows über die Microsofts System Center-Serie oder einen anderen Mitbewerber in Bezug auf Konfiguration und Dienstverwaltung für diese Plattform.
Die Änderungen müssen durch eine anständige Änderungsverwaltungsroutine geleitet werden, die sie von sich aus genehmigt und protokolliert, bevor sie tatsächlich abgeschlossen sind. Dies kann für den Anfang 100% manuell sein. Mit einigen der besser integrierten Tools können Sie das Tool auffordern, die eigentlichen Änderungen vorzunehmen und sich "automatisch" von ihm in einer zentralen Konfigurationsdatenbank abzumelden, anstatt sich mit bloßen Händen in die Konsole eines einzelnen Servers zu begeben und die Einstellungen von Hand zu durchsuchen Versuchen Sie, ein Problem im Cowboy-Stil zu beheben.
quelle
Sie sollten unbedingt über einen Änderungsverwaltungsprozess verfügen, insbesondere wenn es mehrere Personen gibt, die über die Fähigkeit / den Zugriff verfügen, Änderungen auf Systemebene in Ihrer Umgebung vorzunehmen. Auf diese Weise kann das Management auch potenzielle Änderungen abzeichnen. Der Nachteil führt jedoch zu einer Verzögerung des Änderungsprozesses, wenn Sie Änderungen nicht sofort vornehmen können.
Einige Möglichkeiten zum Nachverfolgen von Änderungen können die Validierung von Ereignissen in Ihrem SEM (vorausgesetzt, Sie haben einen Sicherheitsereignis-Manager) oder Tools wie Nessus (mit viel Arbeit kann Ihre Umgebung auf Änderungen überprüft werden) umfassen.
quelle
Dies ist eine lokalisierte, * nix-basierte Antwort. Ich habe keine guten Tools gefunden, um es unter Windows zu emulieren.
Es gibt ein paar Möglichkeiten, dies umzusetzen ... und es einzufangen, wenn Sie es vergessen.
Revisionskontrollsysteme wie Subversion, Git, CVS oder RCS sind eine gute Möglichkeit, den Verlauf einer Konfigurationsdatei zu verfolgen. Wenn Sie kein Revisionskontrollsystem auf Ihren Produktionsservern installieren möchten , können Sie die meisten Vorteile eines RCS nutzen, wenn Sie Konfigurationsdateiverzeichnisse lokal oder remote mit so etwas wie rsnapshot speichern. Sie verlieren jedoch die Möglichkeit der Überwachung oder des Festschreibens Protokolle (obwohl dies mit Kommentaren in den Dateien selbst umgangen werden könnte).
Damit Sie sich daran erinnern, die Änderungen zu protokollieren, ist die automatische Meldung von Konfigurationsänderungen über einen nächtlichen Tripwire- Lauf ein guter Anfang. Nach dem Erstellen der tripwire-Datenbank mit dem aktuellen Status der Dateien wird bei jeder Änderung eine E-Mail beim nächsten Durchlauf gesendet. Sie erhalten diese E-Mail so lange, bis die Datenbank aktualisiert wurde, wodurch der Tripwire "zurückgesetzt" wird.
quelle
Ich würde ein Issue-Tracking-System wie Flyspray verwenden (jeder wird es tun, aber ich mag Flyspray für Nicht-Programmier-Sachen). Bevor jemand eine Konfiguration berührt, sollte die Verbesserung / das Problem protokolliert werden. Wenn Sie es reparieren / implementieren, werden die Änderungen in das Ticket übernommen.
Ein Wiki kann nützlich sein, um das aktuelle Setup zu dokumentieren, aber es ist leicht, dass es veraltet ist - und es scheint mehr Mühe zu erfordern, IMO zu aktualisieren.
Sie werden kein automatisiertes Programm finden, um dies zu tun - obwohl Sie es möglicherweise so einrichten könnten, dass Änderungen an bestimmten Konfigurationsdateien automatisch per E-Mail an den Issue-Tracker gesendet werden, wenn Sie dies wünschen.
Ich denke, es geht nur um eine gute Politik, Instrumente und Disziplin mit niedrigen Barrieren.
quelle
Wir haben etwas Eigenes für die Änderungsprotokollverfolgung in unserer Umgebung erstellt. es ist nichts super-kompliziertes und es funktioniert ganz gut.
Wie gesagt, nichts Besonderes. Es verwendet PERL CGI (wurde vor einer Milliarde Jahren geschrieben) und eine Google Search-Appliance zur Indizierung.
Mängel:
Wie auch immer, wenn Sie sich nach all dem für den Code interessieren, lassen Sie es mich wissen und ich kann ihn wahrscheinlich abrufen, um ihn zu teilen.
quelle
Wie gesagt, es ist oft ein kulturelles Problem - schließlich kümmern sich einige Entwicklungshäuser nicht mehr um Kommentare (selbstdokumentierender Code ist heutzutage ein Modewort!) Und einige verwenden ein Versionskontrollsystem als heiliges Gral der historischen Aufzeichnungen. Offensichtlich sind diese nicht perfekt.
Der einzig wahre Weg, dies zu beheben, besteht darin, es zu einer kulturellen Lösung zu machen. Stellen Sie sicher, dass alle Änderungsgründe in einem Bug-Tracker (oder einer Wissensdatenbank oder einem Wiki) protokolliert werden, und stellen Sie sicher, dass alle Änderungen in einem Änderungskontrollsystem protokolliert werden.
Wir haben Notfalldienstkunden, jede Änderung an ihrem System wird protokolliert, und jedes Mal, wenn wir uns an ihrem System anmelden, müssen wir sie protokollieren. Für einige von ihnen müssen wir zuerst anrufen, um die Erlaubnis zu erhalten (und ich denke, sie protokollieren das auch!). Jede Änderung wird protokolliert und es ist strafbar, das Kundensystem zu ändern, ohne es zu protokollieren.
Es klingt lästig, aber es ist nicht. Sie gewöhnen sich schnell an, sich dem Zugriffsprotokoll und dem Änderungsprotokoll hinzuzufügen - es ist nichts Schlimmeres, als beim Einchecken einer Codeänderung einen Kommentar schreiben zu müssen.
Ich empfehle einen Bugtracker als Änderungskontrollgrundprotokoll, da diese normalerweise leicht zu aktualisieren sind (ich benutze Mantis).
quelle
Wenn Sie nach der "Unternehmenslösung" suchen (dh Sie haben mehr Geld als Gott und möchten ein wirklich cooles Tool haben), ist das Tool, das ich zur Unterstützung und Bereitstellung von Vor-Ort-Arbeiten verwendet habe, eine der zahlreichen Funktionen.
Keine Ahnung, wie hoch der Basispreis ist, aber bevor HP Opsware kaufte, waren es ~ 350.000 US-Dollar (ohne Support, und vertrauen Sie mir - Sie wollten Support, als ich mit Opsware anfing).
Einige der Kunden, die wir während meiner Arbeit dort hatten, verwendeten die Anwendungskonfiguration und die Schnappschussfunktionen in Verbindung mit Tripwire .
Natürlich, wenn Sie kein Budget haben - das ist eine schlechte Wahl ™ :)
Und fwiw, die Anzeige, die für mich oben auf dieser Seite erschien, als ich sie nachlud, war für Spiceworks . Sieht mächtig ähnlich aus wie HPSA :)
quelle
Wenn alles , was Sie tun möchten , ist Spurwechsel und schaffte es nicht , den gesamten Prozess (dh über Koch oder Puppet), nur
rsync
Ihretc
Verzeichnis (wo auch immer das sein mag) in einem lokalen git Repo.Natürlich können Sie bei Bedarf weitere Quellen hinzufügen.
quelle