Problembehandlung bei der Überwachung von UNIX‑ und Linux-Computern
System Center – Operations Manager bietet für UNIX‑ und Linux-Computer eine Überwachung, die der für Windows-Computer ähnelt. Sie können den Status und die Leistung überwachen, Berichte abrufen, Aufgaben ausführen und benutzerdefinierte Überwachungsinstrumente implementieren.
Sie können die folgenden Aspekte von UNIX- und Linux-Computern überwachen:
Dienste und Anwendungen
Dateisystem, Speicherplatz, Auslagerungsbereich, Systemspeicher
Netzwerkschnittstellen
Kernprozesse und Attribute
Schlüsselkonfigurationen
Bevor Sie UNIX‑ und Linux-Computer überwachen können, müssen Sie die folgenden Schritte ausführen:
- Importieren Sie Management Packs, indem Sie die neuesten Versionen vom Microsoft Download Center herunterladen.
- Erstellen Sie einen dedizierten Ressourcenpool für die Überwachung von UNIX‑ und Linux-Computern.
- Konfigurieren Sie die Zertifikate für jeden Verwaltungsserver im Pool.
- Erstellen und konfigurieren Sie ausführende Konten.
- Installieren Sie den Agent auf UNIX und Linux mit dem Ermittlungs-Assistenten.
- Importieren Sie Management Packs, indem Sie die neuesten Versionen vom Microsoft Download Center herunterladen.
- Erstellen Sie einen dedizierten Ressourcenpool für die Überwachung von UNIX‑ und Linux-Computern.
- Konfigurieren Sie die Zertifikate für jeden Verwaltungsserver im Pool.
- Erstellen und konfigurieren Sie ausführende Konten.
- Installieren Sie den Agent auf UNIX und Linux mit dem Ermittlungs-Assistenten.
- Importieren Sie Management Packs, indem Sie die neuesten Versionen vom Microsoft Download Center herunterladen.
- Erstellen Sie einen dedizierten Ressourcenpool für die Überwachung von UNIX‑ und Linux-Computern.
- Konfigurieren Sie die Zertifikate für jeden Verwaltungsserver im Pool.
- Erstellen und konfigurieren Sie ausführende Konten.
- Installieren Sie den Agent auf UNIX und Linux mit dem Ermittlungs-Assistenten.
Nachdem Sie die oben genannten Schritte abgeschlossen und den Agent erfolgreich auf einem oder mehreren UNIX‑ und Linux-Computern entdeckt und bereitgestellt haben, sollten Sie überprüfen, ob diese ordnungsgemäß überwacht werden. Nachdem ein Agent bereitgestellt wurde, werden die ausführenden Konten verwendet, um Erkennungen unter Verwendung der entsprechenden Ermittlungsregeln durchzuführen und anschließend mit der Überwachung zu beginnen. Navigieren Sie nach mehreren Minuten im Verwaltungsarbeitsbereich zu Geräteverwaltung/UNIX/Linux-Computer, und stellen Sie sicher, dass die Computer nicht als Unbekannt aufgeführt sind. Sie sollten ermittelt und die spezifische Version des Betriebssystems und der Distribution angezeigt werden.
Standardmäßig überwacht Operations Manager die folgenden Betriebssystemobjekte:
- Betriebssystem
- Logischer Datenträger
- Netzwerkadapter
Sie können zusätzliche Überwachungs‑ und Interaktionsfunktionen für Ihre verwalteten UNIX‑ und Linux-Computer bereitstellen, indem Sie die UNIX‑ und Linux-Überwachungspaketvorlagen verwenden. Weitere Informationen finden Sie unter UNIX‑ oder Linux-Protokolldatei und UNIX‑ oder Linux-Prozess im Erstellungshandbuch.
Problembehandlung bei UNIX‑ und Linux-Überwachung
Der folgende Abschnitt enthält Informationen zu Problemen, die bei der Überwachung von UNIX- und Linux-Computern im Operations Manager auftreten können.
Fehlermeldung zur Zertifikatsignierung
Während der Installation UNIX/Linux-Agents wird möglicherweise folgende Fehlermeldung angezeigt:
Event Type: Error
Event Source: Cross Platform Modules
Event Category: None
Event ID: 256
Date: 4/1/2009
Time: 4:02:27 PM
User: N/A
Computer: COMPUTER1
Description: Unexpected ScxCertLibException: Can't decode from base64
; input data is:
Dieser Fehler tritt auf, wenn das Zertifikatsignaturmodul aufgerufen wird, aber das Zertifikat selbst leer ist. Dieser Fehler kann durch einen SSH-Verbindungsfehler mit dem Remotesystem verursacht werden.
Wenn dieser Fehler angezeigt wird, gehen Sie folgendermaßen vor:
Stellen Sie sicher, dass der SSH-Daemon auf dem Remotehost ausgeführt wird.
Stellen Sie sicher, dass Sie eine SSH-Sitzung mit dem Remote-Host öffnen können, indem Sie die im Ermittlungs-Assistent angegebenen Anmeldeinformationen verwenden.
Stellen Sie sicher, dass die im Ermittlungs-Assistenten angegebenen Anmeldeinformationen über die erforderlichen Berechtigungen für die Ermittlung verfügen. Weitere Informationen finden Sie unter Anmeldeinformationen für den Zugriff auf UNIX- und Linux-Computer.
Zertifikatname und Hostname stimmen nicht überein
Der im Zertifikat verwendete allgemeine Name (CN) muss mit dem vollqualifizierten Domänennamen (FQDN) übereinstimmen, der von Operations Manager aufgelöst wird. Wenn der CN nicht übereinstimmt, wird beim Ausführen des Ermittlungs-Assistenten der folgende Fehler angezeigt:
The SSL certificate contains a common name (CN) that doesn't match the hostname
Sie können die grundlegenden Details des Zertifikats auf dem UNIX- oder Linux-Computer anzeigen, indem Sie den folgenden Befehl eingeben:
openssl x509 -noout -in /etc/opt/microsoft/scx/ssl/scx.pem -subject -issuer -dates
Wenn Sie dies tun, wird die Ausgabe angezeigt, die den folgenden ähnelt:
subject= /DC=name/DC=newdomain/CN=newhostname/CN=newhostname.newdomain.name
issuer= /DC=name/DC=newdomain/CN=newhostname/CN=newhostname.newdomain.name
notBefore=Mar 25 05:21:18 2008 GMT
notAfter=Mar 20 05:21:18 2029 GMT
Überprüfen Sie die Hostnamen und Datumsangaben, und stellen Sie sicher, dass sie mit dem Namen übereinstimmen, der vom Operations Manager-Verwaltungsserver aufgelöst wird.
Wenn die Hostnamen nicht übereinstimmen, verwenden Sie eine der folgenden Aktionen, um das Problem zu beheben:
Wenn der UNIX- oder Linux-Hostname korrekt ist, aber vom Operations Manager-Verwaltungsserver falsch aufgelöst wird, ändern Sie entweder den DNS-Eintrag so, dass er mit dem korrekten FQDN übereinstimmt, oder fügen Sie einen Eintrag in der Hostsdatei auf dem Operations Manager-Server hinzu.
Wenn der UNIX- oder Linux-Hostname falsch ist, führen Sie eine der folgenden Aktionen aus:
Ändern Sie den Hostnamen auf dem UNIX- oder Linux-Host in den richtigen Namen und erstellen Sie ein neues Zertifikat.
Erstellen Sie ein neues Zertifikat mit dem gewünschten Hostnamen.
Ändern Sie den Namen auf dem Zertifikat:
Wenn das Zertifikat mit einem falschen Namen erstellt wurde, können Sie den Hostnamen ändern und das Zertifikat und den privaten Schlüssel erneut erstellen. Führen Sie dazu den folgenden Befehl auf dem UNIX- oder Linux-Computer aus:
/opt/microsoft/scx/bin/tools/scxsslconfig -f -v
Die Option -f bewirkt, dass die Dateien in /etc/opt/microsoft/scx/ssl überschrieben werden.
Sie können auch den Hostnamen und den Domänennamen auf dem Zertifikat ändern, indem Sie die Schalter -h und -d verwenden, wie im folgenden Beispiel:
/opt/microsoft/scx/bin/tools/scxsslconfig -f -h <hostname> -d <domain.name>
Starten Sie den Agent neu, indem Sie den folgenden Befehl ausführen:
/opt/microsoft/scx/bin/tools/scxadmin -restart
Fügen Sie der Hostsdatei einen Eintrag hinzu:
Wenn sich der FQDN nicht im Reverse-DNS befindet, können Sie der Hostdatei, die sich auf dem Verwaltungsserver befindet, einen Eintrag hinzufügen, um die Namensauflösung bereitzustellen. Die Datei „hosts“ befindet sich im Ordner „Windows\System32\Drivers\etc“. Ein Eintrag in der Hostsdatei ist eine Kombination aus der IP-Adresse und dem FQDN.
Wenn Sie beispielsweise einen Eintrag für den Host namens newhostname.newdomain.name mit einer IP-Adresse von 192.168.1.1 hinzufügen möchten, fügen Sie Folgendes am Ende der Hostsdatei hinzu:
192.168.1.1 newhostname.newdomain.name
Probleme mit Management Pack
ExecuteCommand unterstützt keine Pipelineoperatoren oder Aliase
Wenn Sie einen Alias oder einen Pipelineoperator mit dem ExecuteCommand-Parameter verwenden, schlägt der Befehl fehl. Der ExecuteCommand-Parameter unterstützt den Pipelineoperator, Aliase und shellspezifische Syntax nicht.
In System Center Operations Manager Management Packs, die zum Verwalten von UNIX- und Linux-Computern entwickelt wurden, startet der ExecuteCommand-Parameter keinen Shellprozess, wodurch die benutzerdefinierte Aktion fehlschlägt.
Für jeden der folgenden benutzerdefinierten Aktionstypen geben Sie an, wie die Befehlsargumente mithilfe des ExecuteCommand-Parameters oder des ExecuteShellCommand-Parameters aufgerufen werden:
Microsoft.Unix.WSMan.Invoke.ProbeAction
Microsoft.Unix.WSMan.Invoke.WriteAction
Microsoft.Unix.WSMan.Invoke.Privileged.ProbeAction
Microsoft.Unix.WSMan.Invoke.Privileged.WriteAction
Der ExecuteCommand-Parameter übergibt die Befehlszeilenargumente an die Konsole, ohne einen Shellprozess zu starten.
Der ExecuteShellCommand-Parameter übergibt die Befehlsargumente mithilfe der Standardshell des Benutzenden an einen Shellprozess. Diese Shell unterstützt Pipeline-, Aliase- und Shellspezifische Syntax.
Hinweis
Der ExecuteShellCommand-Parameter verwendet die Standardshell der Benutzenden, die die Befehle ausführen. Wenn Sie eine bestimmte Shell benötigen, verwenden Sie den ExecuteCommand-Parameter und stellen Sie den Befehlsargumenten die erforderliche Shell voran.
Die folgenden Beispiele zeigen, wie Sie die Parameter ExecuteCommand und ExecuteShellCommand verwenden:
So übergeben Sie die Befehlszeilenargumente ohne Starten eines Shellprozesses an die Konsole:
<p:ExecuteCommand_INPUT xmlns:p="https://schemas.microsoft.com/wbem/wscim/1/cim-schema/2/SCX_OperatingSystem"> <p:Command> service syslog status </p:Command> <p:timeout>10</p:timeout> </p:ExecuteCommand_INPUT>
So übergeben Sie die Befehlszeilenargumente an einen Shellprozess, der auf eine explizite Shell verweist:
<p:ExecuteCommand_INPUT xmlns:p="https://schemas.microsoft.com/wbem/wscim/1/cim-schema/2/SCX_OperatingSystem"> <p:Command> /bin/sh ps -ef syslog | grep -v grep </p:Command> <p:timeout>10</p:timeout> </p:ExecuteCommand_INPUT>
So übergeben Sie die Befehlsargumente an einen Shellprozess, der die Standardshell der Benutzenden verwendet:
<p:ExecuteShellCommand_INPUT xmlns:p="https://schemas.microsoft.com/wbem/wscim/1/cim-schema/2/SCX_OperatingSystem"> <p:Command> uptime | awk '{print $10}' |awk -F"," '{print $1}' </p:Command> <p:timeout>10</p:timeout> </p:ExecuteShellCommand_INPUT>
Protokollieren und Debuggen
In diesem Abschnitt wird beschrieben, wie Sie Protokollierungs- und Debug-Tools für die Problembehandlung bei der Überwachung von UNIX- und Linux-Computern aktivieren.
Hinweis
Mit Operations Manager 2019 UR3 können Einstellungen auf Protokollebene ohne den Agentneustart geändert werden. Weitere Informationen
Hinweis
Sie können Einstellungen auf Protokollebene ändern, ohne den Agent neu starten zu müssen. Weitere Informationen
Aktivieren der Operations Manager-Modulprotokollierung
Die Operations Manager-Agents für UNIX und Linux verwalten mehrere Protokolldateien, die beim Beheben von Clientproblemen hilfreich sein können. Diese Protokolldateien befinden sich auf dem verwalteten UNIX- oder Linux-Computer. Der Protokollierungsgrad für die Agent-Protokolldateien kann bei Bedarf konfiguriert werden. Ausführlichere Protokollierung kann bei der Diagnose eines Problems hilfreich sein. Für den normalen Betrieb sollten die Protokollebenen nicht auf einen Wert eingestellt werden, der ausführlicher ist als die Standardkonfigurationen (Fortgeschritten), um ein übermäßiges Anwachsen der Protokolldatei zu verhindern.
Hinweis
Anrufe außerhalb der Windows-Remoteverwaltung (WinRM) werden mit SSH/SFTP getätigt. Diese Komponenten basieren auf einem separaten Protokollierungsmechanismus, nicht auf Operations Manager.
Hinweis
Der Protokollierungsgrad für die Protokolldatei „omiserver.log“ kann in dieser Version des Operations Manager-Agents für UNIX und Linux nicht von der Standardeinstellung geändert werden.
Erstellen Sie eine leere Datei mit dem Namen EnableOpsmgrModuleLogging im temporären Verzeichnis für das Benutzerkonto, das zum Aufrufen der Module verwendet wird. Geben Sie dazu als Befehlszeile oder in der Eingabeaufforderung für PowerShell Folgendes ein:
COPY /Y NUL %windir%\TEMP\EnableOpsMgrModuleLogging
New-Item "$env:windir\TEMP\EnableOpsMgrModuleLogging"
Hinweis
Im Allgemeinen ist es das SYSTEM-Konto, das die Aufrufe vornimmt, und „C:\Windows\Temp“ ist der Standardordner „SYSTEM temp“.
Nach der Erstellung der leeren Datei beginnt Operations Manager sofort mit der Protokollierung der SSH‑ und Zertifikatsaktivitäten im temporären Verzeichnis. Skripts, die SSH-Module aufrufen, verwenden als Protokoll „<Scriptname.vbs>.log“. Andere Module verfügen über eigene Protokolle.
In einigen Fällen kann es erforderlich sein, HealthService neu zu starten, damit die Protokollierung von „EnableOpsmgrModuleLogging“ wirksam wird.
Aktivieren der Protokollierung für den UNIX-Agent
Diese Protokolle melden die UNIX-Agentaktionen. Wenn es ein Problem mit den an Operations Manager zurückgegebenen Daten gibt, sehen Sie in diesem Protokoll nach. Sie können die Menge der mit dem Befehl „scxadmin“ protokollierten Informationen festlegen. Die Syntax für diesen Befehl lautet:
scxadmin -log-set [all|cimom|provider] {verbose|intermediate|errors}
In der folgenden Tabelle sind die möglichen Parameterwerte aufgeführt:
Ebene | Beschreibung |
---|---|
Fehler | Protokollieren von nur Warnungs‑ oder Fehler-Nachrichten. |
Fortgeschrittene Anfänger | Protokollieren von Info‑, Warnungs‑ und Fehler-Nachrichten. |
Ausführlich | Protokolliieren von Info‑, Warnungs‑ und Fehler-Nachrichten mit Debugprotokollierung. Beachten Sie, dass dieser Protokollierungsgrad wahrscheinlich ein schnelles Wachstum in der Größe der Protokolldateien verursacht. Es wird empfohlen, diese Option nur für kurze Zeiträume zu verwenden, um ein bestimmtes Problem zu diagnostizieren. |
Verwenden von DebugView zur Problembehandlung bei Problemen bei der Ermittlung
DebugView ist eine alternative Methode für „EnableOpsmgrModuleLogging“ zur Problembehandlung bei Problemen bei der Ermittlung.
Laden Sie DebugView herunter über: https://go.microsoft.comfwlink/?Linkid=129486.
Starten Sie DebugView auf dem Verwaltungsserver, der die Ermittlung ausführt.
Beginnen Sie mit der Entdeckung der UNIX-Agents. Sie sollten mit der Anzeige der Ausgabe in Ihren DebugView-Fenstern beginnen.
DebugView stellt ein schrittweises Lesen des Prozesses des Ermittlungs-Assistenten dar. Dies ist häufig die schnellste Methode zur Problembehandlung bei Problemen bei der Ermittlung.
Aktivieren der Operations Manager-Protokollierung für die Windows-Remoteverwaltung
Diese ausführliche Ablaufverfolgungsmethode wird verwendet, um die Abfragen für die Windows-Remoteverwaltung (WinRM) anzuzeigen, die von Operations Manager verwendet werden, um Daten von Agents zu sammeln. Wenn Sie vermuten, dass es ein Problem mit der WinRM-Verbindung gibt, finden Sie in diesem Protokoll detaillierte Informationen, die bei der Problembehandlung helfen können.
Öffnen Sie auf dem Verwaltungsserver, der den UNIX‑ oder Linux-Agent überwacht, eine Eingabeaufforderung.
Geben Sie die folgenden Befehle in die Eingabeaufforderung ein:
cd C:\Program Files\Microsoft System Center\Operations Manager\Tools
StopTracing.cmd
StartTracing.cmd VER
Reproduzieren Sie das Problem in Operations Manager.
Geben Sie die folgenden Befehle in die Eingabeaufforderung ein:
StopTracing.cmd
FormatTracing.cmd
Suchen Sie in der Datei „TracingGuidsNative.log“ nach „WS-Man“.
Hinweis
WinRM ist auch als WS-Management (WS-Man) bekannt.
Hinweis
Mit dem FormatTracing-Befehl wird ein Windows-Explorer-Fenster geöffnet, in dem das Verzeichnis C:\Windows\Logs\OpsMgrTrace
angezeigt wird. Die Datei „TracingGuidsNative.log“ befindet sich in diesem Verzeichnis.
Verwalten von UNIX‑ und Linux-Protokolldateien
Die Operations Manager-Agents für UNIX und Linux beschränken nicht die Größe der Agent-Protokolldateien. Implementieren Sie einen Prozess zum Verwalten der Protokolldateien, um die maximale Größe der Protokolldateien zu steuern. Zum Beispiel ist das Standard-Hilfsprogramm „logrotate“ auf vielen UNIX‑ und Linux-Betriebssystemen verfügbar. Das Hilfsprogramm „logrotate“ kann so konfiguriert werden, dass es die Protokolldateien steuert, die von den Operations Manager-Agents für UNIX oder Linux verwendet werden. Nach dem Rotieren oder Ändern der Protokolldateien des Agents muss dem Agent mitgeteilt werden, dass die Protokolle rotiert wurden, damit die Protokollierung fortgesetzt werden kann. Der Befehl „scxadmin“ kann mit dem Parameter „–log-rotate“ in der folgenden Syntax verwendet werden:
scxadmin -log-rotate all
Beispiel für eine Logrotate-Konfigurationsdatei
Das folgende Beispiel veranschaulicht eine Konfigurationsdatei zum Rotieren von scx.log-Dateien und omiserver.log mit dem logrotate-Hilfsprogramm von Linux. In der Regel wird logrotate als geplanter Auftrag (mit crond) ausgeführt und auf Konfigurationsdateien angewendet, die sich in /etc/logrotate.d
befinden. Um diese Konfigurationsdatei zu testen und zu verwenden, passen Sie die Konfiguration an Ihre Umgebung an und verknüpfen oder speichern Sie die Datei in /etc/logrotate.d
.
#opsmgr.lr
#Rotate scx.log
#Weekly rotation, retain four weeks of compressed logs
#Invoke scxadmin -log-rotate to resume logging after rotation
/var/opt/microsoft/scx/log/scx.log {
rotate 4
weekly
compress
missingok
notifempty
postrotate
/usr/sbin/scxadmin -log-rotate all
endscript
}
#Rotate scx.log for the monitoring user account named: monuser
#Weekly rotation, retain four weeks of compressed logs
#Invoke scxadmin -log-rotate to resume logging after rotation
/var/opt/microsoft/scx/log/monuser/scx.log {
rotate 4
weekly
compress
missingok
notifempty
postrotate
/usr/sbin/scxadmin -log-rotate all
endscript
}
#Optionally, rotate omiserver.log. This requires that OMI be stopped and started to prevent
#impact to logging. Monthly rotation, retain two weeks of compressed logs
#Uncomment these lines if rotation of omiserver.log is needed
#/var/opt/microsoft/scx/log/omiserver.log{
# rotate 2
# monthly
# compress
# missingok
# notifempty
# prerotate
# /usr/sbin/scxadmin -stop
# endscript
# postrotate
# /usr/sbin/scxadmin -start
# endscript\
#}
Nächste Schritte
Weitere Anleitungen zur Behebung gängiger Agent-Bereitstellungsprobleme finden Sie im Wiki Operations Manager 2012 Problembehandlung: UNIX/Linux-Agent-Ermittlung.