針對 UNIX 和 Linux 計算機的監視進行疑難解答
System Center - Operations Manager 提供 UNIX 和 Linux 電腦的監視,類似於監視 Windows 計算機。 您可以監視健康情況和效能、取得報表、執行工作,以及實作自訂監視檢測。
您可以監視 UNIX 和 Linux 電腦的下列層面:
服務和應用程式
檔案系統、磁碟空間、交換空間、系統記憶體
網路介面
核心程序和屬性
機碼設定
您必須先完成下列步驟,才能監視 UNIX 和 Linux 計算機:
- 從 Microsoft下載中心下載最新版本,以匯入管理元件。
- 建立專用的資源集 區來監視 UNIX 和 Linux 計算機。
- 設定集區中每個管理伺服器的憑證 。
- 建立及 設定執行身分帳戶。
- 使用探索 精靈在 UNIX 和 Linux 上安裝代理程式。
- 從 Microsoft下載中心下載最新版本,以匯入管理元件。
- 建立專用的資源集 區來監視 UNIX 和 Linux 計算機。
- 設定集區中每個管理伺服器的憑證 。
- 建立及 設定執行身分帳戶。
- 使用探索 精靈在 UNIX 和 Linux 上安裝代理程式。
- 從 Microsoft下載中心下載最新版本,以匯入管理元件。
- 建立專用的資源集 區來監視 UNIX 和 Linux 計算機。
- 設定集區中每個管理伺服器的憑證 。
- 建立及 設定執行身分帳戶。
- 使用探索 精靈在 UNIX 和 Linux 上安裝代理程式。
完成上述步驟並成功探索代理程式並將其部署至一或多部 UNIX 和 Linux 計算機之後,您應該確認它們受到正確監視。 部署代理程序之後,會使用執行身分帳戶來執行使用適用的探索規則來執行探索,然後開始監視。 幾分鐘后,在 [系統管理] 工作區覽至 [裝置管理/UNIX/Linux 計算機],並確認計算機未列為 [未知]。 應該探索它們,並顯示OS和散發版本的特定版本。
根據預設,Operations Manager 會監視下列操作系統物件:
- 作業系統
- 邏輯磁碟
- 網路介面卡
您可以使用 UNIX 和 Linux 監視組件範本,將其他監視和互動功能提供給受管理的 UNIX 和 Linux 電腦。 如需詳細資訊,請參閱撰寫指南中的 UNIX or Linux Log File (UNIX 或 Linux 記錄檔) 和 UNIX or Linux Process (UNIX 或 Linux 處理序) 。
針對 UNIX 和 Linux 監視進行疑難解答
下列主題提供相關資訊,說明在 Operations Manager 中監視 UNIX 和 Linux 電腦時可能發生的問題。
憑證簽署錯誤訊息
在安裝 UNIX/Linux 代理程式的過程中,您可能會看到下列錯誤。
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:
呼叫憑證簽署模組時,若憑證本身空白,就會發生這個錯誤。 造成這個錯誤的原因可能是遠端系統的 SSH 連線失敗。
如果您看到這個錯誤,請執行下列步驟:
確定遠端主機上的 SSH 精靈正在執行。
請確定您可以使用探索精靈中指定的認證,開啟與遠端主機的 SSH 工作階段。
確定探索精靈中指定的認證具有探索所需的許可權。 如需詳細資訊,請參閱 您必須具備才能存取 UNIX 和 Linux 計算機的認證。
憑證名稱和主機名稱不符
憑證中使用的一般名稱 (CN) 必須符合 Operations Manager 解析的完整網域名稱 (FQDN)。 如果 CN 不相符,當您執行探索精靈時,會看到下列錯誤:
The SSL certificate contains a common name (CN) that doesn't match the hostname
您可以輸入下列命令,檢視 UNIX 或 Linux 電腦上憑證的基本詳細資料:
openssl x509 -noout -in /etc/opt/microsoft/scx/ssl/scx.pem -subject -issuer -dates
當您這樣做時,您會看到類似下列的輸出:
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
驗證主機名稱和日期,並確認其符合 Operations Manager 管理伺服器所解析的名稱。
如果主機名不相符,請使用下列其中一個動作來解決問題:
如果 UNIX 或 Linux 主機名稱正確無誤,但是 Operations Manager 管理伺服器無法正確解析主機名稱,請將 DNS 項目修改成符合正確的 FQDN,或是新增項目到 Operations Manager 伺服器上的主機檔案。
如果 UNIX 或 Linux 主機名稱不正確,請執行下列其中一項操作:
將 UNIX 或 Linux 主機上的主機名稱變更為正確名稱,並建立新憑證。
建立具有所需主機名稱的新憑證。
變更憑證上的名稱:
如果建立憑證時使用的名稱不正確,您可以變更主機名稱並重新建立憑證和私密金鑰。 若要這樣做,請在 UNIX 或 Linux 電腦上執行下列命令:
/opt/microsoft/scx/bin/tools/scxsslconfig -f -v
-f 選項會強制覆寫 /etc/opt/microsoft/scx/ssl 中的檔案。
您也可以使用 -h 和 -d 參數來變更憑證上的主機名和域名,如下列範例所示:
/opt/microsoft/scx/bin/tools/scxsslconfig -f -h <hostname> -d <domain.name>
執行下列命令,以重新啟動代理程式:
/opt/microsoft/scx/bin/tools/scxadmin -restart
將專案新增至主機檔案:
如果 FQDN 不在反向 DNS 中,您可以將專案新增至位於管理伺服器上的主機檔案,以提供名稱解析。 主機檔案位於 Windows\System32\Drivers\etc 資料夾中。 主機檔案中的項目是 IP 位址和 FQDN 的組合。
例如,若要新增名為 newhostname.newdomain.name 且IP位址為192.168.1.1的主機專案,請將下列內容新增至主機檔案的結尾:
192.168.1.1 newhostname.newdomain.name
管理組件問題
ExecuteCommand 不支援管線運算子或別名
當您搭配 ExecuteCommand 參數使用別名或管線運算符時,命令會失敗。 ExecuteCommand 參數不支援管線運算符、別名和殼層特定語法。
在設計用來管理 UNIX 和 Linux 計算機的 System Center Operations Manager 管理元件中, ExecuteCommand 參數不會啟動殼層程式,導致自定義動作失敗。
針對下列每個自定義動作類型,您可以指定如何使用 ExecuteCommand 參數或 ExecuteShellCommand 參數來叫用命令自變數:
Microsoft.Unix.WSMan.Invoke.ProbeAction
Microsoft.Unix.WSMan.Invoke.WriteAction
Microsoft.Unix.WSMan.Invoke.Privileged.ProbeAction
Microsoft.Unix.WSMan.Invoke.Privileged.WriteAction
ExecuteCommand 參數會將命令行自變數傳遞至主控台,而不需要啟動殼層進程。
ExecuteShellCommand 參數會使用使用者的預設殼層,將命令自變數傳遞至殼層進程;此殼層支援管線、別名和殼層特定語法。
注意
ExecuteShellCommand 參數會使用執行命令之用戶的預設殼層。 如果您需要特定的殼層,請使用 ExecuteCommand 參數,並在命令自變數前面加上必要的殼層。
下列範例示範如何使用 ExecuteCommand 和 ExecuteShellCommand 參數:
若要將命令列引數傳遞到主控台而不啟動殼層處理:
<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>
若要將命令列引數傳遞到參照明確殼層的殼層處理:
<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>
若要將命令列引數傳遞到使用使用者的預設殼層的殼層處理:
<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>
記錄和偵錯
本節旨在說明如何啟用記錄和偵錯工具,對監視 UNIX 和 Linux 電腦的問題進行疑難排解。
注意
使用 Operations Manager 2019 UR3 時,記錄層級設定可以變更,而不需要重新啟動代理程式。 深入了解。
注意
您可以在不重新啟動代理程序的情況下變更記錄層級設定。 深入了解。
啟用 Operations Manager 模組記錄
適用於 UNIX 和 Linux 的 Operations Manager 代理程式會維護數個記錄檔,在針對客戶端問題進行疑難解答時很有用。 這些記錄檔位於受控 UNIX 或 Linux 電腦上。 您可以視需要設定代理程式記錄檔的記錄層級。 記錄更多詳細資料有助於診斷問題。 針對正常作業,記錄層級不應設定為比預設組態更詳細資訊的值(中繼),以避免記錄檔過度成長。
注意
由 Windows Remote Management (WinRM) 外部發出的呼叫是使用 SSH/SFTP 來進行。 這些元件必須使用與 Operations Manager 不同的其他記錄機制。
注意
omiserver.log記錄檔的記錄層級無法從這個版本的 UNIX 和 Linux Operations Manager 代理程式中的預設值變更。
在命令行或 PowerShell 提示字元中輸入 ,在用戶帳戶的 Temp 目錄中建立名為 EnableOpsmgrModuleLogging 的空白檔案:
COPY /Y NUL %windir%\TEMP\EnableOpsMgrModuleLogging
New-Item "$env:windir\TEMP\EnableOpsMgrModuleLogging"
注意
一般而言,這是進行呼叫的 SYSTEM 帳戶,而 C:\Windows\Temp 是預設的 SYSTEM 暫存資料夾。
建立空白檔案之後,Operations Manager 會立即開始將 SSH 和憑證活動記錄到 Temp 目錄。 呼叫 SSH 模組的腳本會記錄至 <Scriptname.vbs>.log。 其他模組都有各自的記錄檔。
在某些情況下,可能需要重新啟動HealthService,才能讓 EnableOpsmgrModuleLogging 記錄生效。
在 UNIX 代理程式上啟用記錄
這些記錄檔將會回報 UNIX 代理程式動作。 如果傳回 Operations Manager 的數據發生問題,請查看此記錄。 您可以使用 scxadmin 命令設定記錄的資訊量。 此命令的語法為:
scxadmin -log-set [all|cimom|provider] {verbose|intermediate|errors}
以下表格列出可能的參數值:
層級 | 描述 |
---|---|
錯誤 | 僅記錄 警告 或 錯誤 訊息。 |
中級 | 記錄 資訊、 警告和 錯誤 訊息。 |
詳細資訊 | 記錄 資訊、 警告及 錯誤 訊息,並包含偵錯記錄。 請注意,此記錄層次可能會導致記錄檔大小快速成長。 建議您只使用這個選項短期來診斷特定問題。 |
使用 DebugView 疑難排解探索問題
DebugView 是以 EnableOpsmgrModuleLogging 疑難排解探索問題的替代方法。
從: https://go.microsoft.comfwlink/?Linkid=129486下載DebugView。
在執行探索的管理伺服器上啟動 DebugView。
開始探索 UNIX 代理程式。 您應該會開始在 DebugView 視窗中看到輸出。
DebugView 將會顯示探索精靈程序的逐步讀出資料。 這通常是疑難排解探索問題最快速的方法。
啟用 Operations Manager 記錄用於 Windows 遠端管理
這種完整追蹤方法可用來查看 Operations Manager 從代理程式收集資料時使用的 Windows Remote Management (WinRM) 查詢。 如果您懷疑 WinRM 連線有問題,此記錄會提供可協助進行疑難解答的詳細資訊。
在監視 UNIX 或 Linux 電腦的管理伺服器上,開啟命令提示。
在命令提示字元中輸入下列命令:
cd C:\Program Files\Microsoft System Center\Operations Manager\Tools
StopTracing.cmd
StartTracing.cmd VER
在 Operations Manager 中重現失敗問題。
在命令提示字元中輸入下列命令:
StopTracing.cmd
FormatTracing.cmd
在TracingGuidsNative.log檔案中搜尋 WS-Man。
注意
WinRM 也稱為 WS-Management (WS-Man)。
注意
FormatTracing 命令會開啟顯示目錄的 Windows 檔案總 C:\Windows\Logs\OpsMgrTrace
管視窗。 TracingGuidsNative.log 檔案位於該目錄。
管理 UNIX 和 Linux 記錄檔
適用於 UNIX 和 Linux 的 Operations Manager 代理程式不會限制代理程式記錄檔的大小。 為了控制記錄檔的大小上線,請實作處理程序來管理記錄檔。 例如,許多 UNIX 和 Linux 作業系統中提供的標準公用程式 logrotate。 您可以設定 logrotate 公用程式來控制適用於 UNIX 或 Linux 的 Operations Manager 代理程式所使用的記錄檔。 在旋轉或修改代理程式的記錄檔之後,必須通知代理程式記錄已經旋轉以繼續記錄。 scxadmin 命令可以搭配 -log-rotate 參數搭配下列語法使用:
scxadmin -log-rotate all
Logrotate 組態檔範例
下列範例示範組態檔,以使用 Linux的logrotate 公用程式來旋轉scx.log檔案和omiserver.log。 一般而言,logrotate 會以排程工作的形式執行(使用 crond),並在 中找到的組態檔上 /etc/logrotate.d
採取行動。 若要測試及使用此組態檔,請修改設定以適合您的環境,並將檔案連結或儲存在 中 /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\
#}
下一步
如需協助解決常見代理程式部署問題的其他指引,請參閱 Operations Manager 2012 疑難解答:UNIX/Linux 代理程式探索 Wiki。