針對 Linux 更新代理程式問題進行疑難排解

您的機器在更新管理中未顯示為就緒 (狀況良好),可能有很多原因。 您可以檢查 Linux 混合式 Runbook 背景工作角色代理程式的健康狀態,以判斷根本問題。 下列是電腦的三種整備狀態:

  • 準備就緒:混合式 Runbook 背景工作角色已部署,上次出現時間為不到一小時前。
  • 已中斷連線:混合式 Runbook 背景工作角色已部署,上次出現時間為超過一小時前。
  • 未設定:找不到混合式 Runbook 背景工作角色或尚未完成部署。

注意

Azure 入口網站顯示的內容與機器目前的狀態間,可能略有延遲。

本文探討如何對 Azure 入口網站中的 Azure 機器以及離線案例中的非 Azure 機器,執行疑難排解員。

注意

疑難排解員指令碼目前不會透過 Proxy 伺服器 (如已設定) 路由流量。

啟動疑難排解員

若為 Azure 機器,請在入口網站的 [更新代理程式整備程度] 資料行下選取疑難排解連結,即可開啟 [對更新代理程式進行疑難排解] 頁面。 針對非 Azure 機器,此連結會連往本文。 若要對非 Azure 機器進行疑難排解,請參閱<離線疑難排解>一節中的指示。

Screenshot of VM list page.

注意

VM 必須處於執行中狀態,才能進行檢查。 若 VM 未執行,將會出現 [啟動 VM]

在 [對更新代理程式進行疑難排解] 頁面上,選取 [執行檢查] 以啟動疑難排解員。 疑難排解員會使用執行命令,在機器上執行指令碼,以驗證相依性。 疑難排解員完成後,會傳回檢查結果。

Screenshot of Troubleshoot page.

當檢查完成後,會在視窗中傳回結果。 檢查區段會提供有關每個檢查所尋找項目的資訊。

Screenshot of Linux Troubleshooter.

先決條件檢查

作業系統

作業系統檢查會驗證混合式 Runbook 背景工作角色是否正在執行其中一種支援的作業系統

Dmidecode 檢查

若要確認 VM 是否為 Azure VM,請使用下列命令檢查資產標籤值:

sudo dmidecode

如果資產標籤與 7783-7084-3265-9085-8269-3286-77 不同,請重新啟動 VM 以起始重新註冊。

監視代理程式服務健康情況檢查

監視代理程式

若要修正此問題,請安裝 Azure Log Analytics Linux 代理程式,並確定其會傳達所需的端點。 如需詳細資訊,請參閱<在 Linux 電腦上安裝 Log Analytics 代理程式>。

此工作會檢查資料夾是否存在 -

/etc/opt/microsoft/omsagent/conf/omsadmin.conf

監控代理程式已啟動

若要修正此問題,您必須使用下列命令啟動 OMS 代理程式服務:

 sudo /opt/microsoft/omsagent/bin/service_control restart

若要驗證,您可以使用下列命令來執行進程檢查:

process_name="omsagent"
ps aux | grep %s | grep -v grep" % (process_name)"

如需詳細資訊,請參閱<針對適用於 Linux 的 Log Analytics 代理程式問題進行疑難排解

多路連接

此檢查會判斷代理程式是否正在回報給多個工作區。 更新管理不支援多路連接。

若要修正此問題,請完全清除 OMS 代理程式,並使用與更新管理連結的工作區重新安裝

藉由檢查此路徑下的目錄,驗證沒有其他多路連接:

/var/opt/microsoft/omsagent.

當這些是工作區的目錄時,目錄數目等於上線至 OMSAgent 的工作區數目。

Hybrid Runbook Worker

若要修正此問題,請執行下列命令:

sudo su omsagent -c 'python /opt/microsoft/omsconfig/Scripts/PerformRequiredConfigurationChecks.py'

此命令會強制 omsconfig 代理程式與 Azure 監視器進行通訊,以擷取最新的設定。

驗證以檢查下列兩個路徑是否存在:

/opt/microsoft/omsconfig/modules/nxOMSAutomationWorker/VERSION </br> /opt/microsoft/omsconfig/modules/nxOMSAutomationWorker/DSCResources/MSFT_nxOMSAutomationWorkerResource/automationworker/worker/configuration.py

混合式 Runbook 背景工作狀態

此檢查確保混合式 Runbook 背景工作正在機器上執行。 若混合式 Runbook 背景工作角色正常執行,則應會出現下列範例的處理序。

ps -ef | grep python
nxautom+   8567      1  0 14:45 ?        00:00:00 python /opt/microsoft/omsconfig/modules/nxOMSAutomationWorker/DSCResources/MSFT_nxOMSAutomationWorkerResource/automationworker/worker/main.py /var/opt/microsoft/omsagent/state/automationworker/oms.conf rworkspace:<workspaceId> <Linux hybrid worker version>
nxautom+   8593      1  0 14:45 ?        00:00:02 python /opt/microsoft/omsconfig/modules/nxOMSAutomationWorker/DSCResources/MSFT_nxOMSAutomationWorkerResource/automationworker/worker/hybridworker.py /var/opt/microsoft/omsagent/state/automationworker/worker.conf managed rworkspace:<workspaceId> rversion:<Linux hybrid worker version>
nxautom+   8595      1  0 14:45 ?        00:00:02 python /opt/microsoft/omsconfig/modules/nxOMSAutomationWorker/DSCResources/MSFT_nxOMSAutomationWorkerResource/automationworker/worker/hybridworker.py /var/opt/microsoft/omsagent/<workspaceId>/state/automationworker/diy/worker.conf managed rworkspace:<workspaceId> rversion:<Linux hybrid worker version>

更新管理會從作業端點下載混合式 Runbook 背景工作角色套件。 因此,若混合式 Runbook 背景工作角色未執行,而且作業端點檢查失敗,則更新會失敗。

若要修正此問題,請執行下列命令:

sudo su omsagent -c 'python /opt/microsoft/omsconfig/Scripts/PerformRequiredConfigurationChecks.py'

此命令會強制 omsconfig 代理程式與 Azure 監視器進行通訊,以擷取最新的設定。

如果問題仍然存在,請執行 omsagent 記錄收集器工具

連線能力檢查

是否已啟用 Proxy 的檢查

若要修正此問題,請移除 Proxy,或確定 Proxy 位址能夠存取必要條件 URL

您可以執行下列命令來驗證工作:

HTTP_PROXY

IMDS 連線檢查

若要修正此問題,請允許存取 IP 169.254.169.254。 如需詳細資訊,請參閱<存取 Azure Instance Metadata Service>。

網路變更之後,您可以重新執行疑難排解員,或執行下列命令來驗證:

 curl -H \"Metadata: true\" http://169.254.169.254/metadata/instance?api-version=2018-02-01

一般網際網路連線

這項檢查可確保電腦可以存取網際網路,而且如果您已封鎖網際網路且只允許特定 URL,則可以忽略。

任何 HTTP URL 上的 CURL。

註冊端點

此檢查會判斷混合式 Runbook 背景工作角色是否能夠正常地與 Log Analytics 工作區中的 Azure 自動化進行通訊。

Proxy 和防火牆設定必須允許「混合式 Runbook 背景工作角色」代理程式與註冊端點進行通訊。 如需打算開啟的位址與連接埠清單,請參閱<網路規劃>。

藉由允許必要條件 URL 來修正此問題。 如需詳細資訊,請參閱<啟用更新管理和變更追蹤和清查的權限

張貼網路變更,您可以在提供的 jrds 端點上重新執行疑難排解員或 CURL。

作業端點

此檢查會判斷 Log Analytics 代理程式是否能夠正確地與 Job Runtime Data Service (作業執行階段資料服務) 進行通訊。

Proxy 和防火牆設定必須允許「混合式 Runbook 背景工作角色」代理程式與「作業執行階段資料服務」進行通訊。 如需打算開啟的位址與連接埠清單,請參閱網路規劃

Log Analytics 端點 1

此檢查會確認您的機器有權存取 Log Analytics 代理程式所需的端點。

藉由允許必要條件 URL來修正此問題。

進行網路變更後,您可以在提供的 ODS 端點上重新執行疑難排解員或 Curl。

Log Analytics 端點 2

此檢查會確認您的機器有權存取 Log Analytics 代理程式所需的端點。

藉由允許必要條件 URL來修正此問題。

進行網路變更後,您可以在提供的 OMS 端點上重新執行疑難排解員或 Curl

軟體存放庫

藉由允許必要條件存放庫 URL 來修正此問題。 如需 RHEL,請參閱這裡

進行網路變更後,您可以重新執行疑難排解員或

套件管理員中設定的軟體存放庫 Curl。

重新整理存放庫有助於確認通訊。

sudo apt-get check
sudo yum check-update

注意

檢查僅適用於離線模式。

離線疑難排解

您可以藉由在本機執行指令碼,在「混合式 Runbook 背景工作角色」上離線使用疑難排解員。 可以在 GitHub 中找到 Python 指令碼 UM_Linux_Troubleshooter_Offline.py

注意

疑難排解程式指令碼的目前版本不支援 Ubuntu 20.04。

以下範例顯示此指令碼的輸出範例:

Debug: Machine Information:   Static hostname: LinuxVM2
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 00000000000000000000000000000000
           Boot ID: 00000000000000000000000000000000
    Virtualization: microsoft
  Operating System: Ubuntu 16.04.5 LTS
            Kernel: Linux 4.15.0-1025-azure
      Architecture: x86-64


Passed: Operating system version is supported

Passed: Microsoft Monitoring agent is installed

Debug: omsadmin.conf file contents:
        WORKSPACE_ID=00000000-0000-0000-0000-000000000000
        AGENT_GUID=00000000-0000-0000-0000-000000000000
        LOG_FACILITY=local0
        CERTIFICATE_UPDATE_ENDPOINT=https://00000000-0000-0000-0000-000000000000.oms.opinsights.azure.com/ConfigurationService.Svc/RenewCertificate
        URL_TLD=opinsights.azure.com
        DSC_ENDPOINT=https://scus-agentservice-prod-1.azure-automation.net/Accou            nts/00000000-0000-0000-0000-000000000000/Nodes\(AgentId='00000000-0000-0000-0000-000000000000'\)
        OMS_ENDPOINT=https://00000000-0000-0000-0000-000000000000.ods.opinsights            .azure.com/OperationalData.svc/PostJsonDataItems
        AZURE_RESOURCE_ID=/subscriptions/00000000-0000-0000-0000-000000000000/re            sourcegroups/myresourcegroup/providers/microsoft.compute/virtualmachines/linuxvm            2
        OMSCLOUD_ID=0000-0000-0000-0000-0000-0000-00
        UUID=00000000-0000-0000-0000-000000000000


Passed: Microsoft Monitoring agent is running

Passed: Machine registered with log analytics workspace:['00000000-0000-0000-0000-000000000000']

Passed: Hybrid worker package is present

Passed: Hybrid worker is running

Passed: Machine is connected to internet

Passed: TCP test for {scus-agentservice-prod-1.azure-automation.net} (port 443)             succeeded

Passed: TCP test for {eus2-jobruntimedata-prod-su1.azure-automation.net} (port 4            43) succeeded

Passed: TCP test for {00000000-0000-0000-0000-000000000000.ods.opinsights.azure.            com} (port 443) succeeded

Passed: TCP test for {00000000-0000-0000-0000-000000000000.oms.opinsights.azure.            com} (port 443) succeeded

Passed: TCP test for {ods.systemcenteradvisor.com} (port 443) succeeded

下一步

針對混合式 Runbook 背景工作角色問題進行疑難排解