System Center Operations Manager 中的 Linux 記錄檔監視
注意
System Center Operations Manager 不支援在 OMS 代理程式淘汰時進行 FluentD 型記錄檔監視,此記錄檔已排定為 2024 年 8 月。
System Center Operations Manager 現在已使用最新版的 Fluentd 代理程式,增強 Linux 伺服器的記錄檔監視功能。 此更新提供先前記錄檔監視的下列改善:
- 記錄檔名稱和路徑中的通配符。
- 適用於可自定義記錄搜尋的新比對模式,例如簡單比對、獨佔比對、相互關聯比對、重複相互關聯和獨佔相互關聯。
- 支援 Fluentd 社群所發佈的一般 Fluentd 外掛程式。
基本作業
Linux 中記錄檔監視的基本作業包括下列步驟:
- 記錄會寫入 Linux 代理程式上的記錄。
- Fluentd 會收集記錄,並在模式比對上建立事件。
- 事件會傳送至管理伺服器上的 OMED 服務,並記錄至 管理伺服器上的 System Center OMED 服務 事件記錄檔。 (The 只有在成功從 Fluentd 代理程式傳送事件時,才會建立 System Center OMED 服務 事件記錄檔)
- 自定義管理元件中的規則和監視會收集事件,並在 Operations Manager 中建立警示。
組態概觀
記錄檔監視需要下列步驟。 下列各節提供詳細資訊:
- 匯入 最新的 System Center Operations Manager 2019 Linux 管理元件。
- 在每個要監視的 Linux 電腦上安裝最新版的 Linux 代理程式。
- 在每個要監視的 Linux 計算機上安裝最新的 OMSAgent 。
- 建立 Fluentd 組態檔以收集記錄。
- 將組態檔複製到 Linux 代理程式。
- 使用範例管理元件建立規則和監視,以從記錄收集事件並建立警示。
- 匯入 最新的 System Center Operations Manager 2022 Linux 管理元件。
- 在每個要監視的 Linux 電腦上安裝最新版的 Linux 代理程式。
- 在每個要監視的 Linux 計算機上安裝最新的 OMSAgent 。
- 建立 Fluentd 組態檔以收集記錄。
- 將組態檔複製到 Linux 代理程式。
- 使用範例管理元件建立規則和監視,以從記錄收集事件並建立警示。
安裝記錄監視管理元件
安裝 Microsoft.Linux.Log.Monitoring 管理元件,以啟用 Linux 記錄檔監視。
注意
如果您已設定 OMS 代理程式,而且嘗試從控制台卸載 UNIX 和 LINUX 代理程式,則 OMS 元件將不會從代理程式卸載。
設定 Linux 記錄檔監視
若要設定 Linux 記錄檔監視,請執行下列步驟:
使用安裝管理元件的標準程序,匯入最新的 System Center Operations Manager 2019 Linux 管理元件。
手動或在Linux伺服器上安裝新的Linux代理程式[使用探索精靈](/system-center/System Center Operations Manager/manage-deploy-crossplat-agent-console)。
在您想要監視的每個 Linux 電腦上安裝最新的 OMSAgent。 使用下列命令:
# Download latest OMS Agent from GitHub wget https://raw.githubusercontent.com/Microsoft/OMS-Agent-for-Linux/master/installer/scripts/onboard_agent.sh # Run onboarding script sh onboard_agent.sh
在 Linux 代理程序上執行下列步驟:
使用安裝管理元件的標準程序,匯入最新的 System Center Operations Manager 2022 Linux 管理元件。
手動或在Linux伺服器上安裝新的Linux代理程式[使用探索精靈](/system-center/System Center Operations Manager/manage-deploy-crossplat-agent-console)。
在您想要監視的每個 Linux 電腦上安裝最新的 OMSAgent。 使用下列命令:
# Download latest OMS Agent from GitHub wget https://raw.githubusercontent.com/Microsoft/OMS-Agent-for-Linux/master/installer/scripts/onboard_agent.sh # Run onboarding script sh onboard_agent.sh
在 Linux 代理程序上執行下列步驟:
使用下列命令,在下列路徑中建立資料夾:
# Create omsagent.d folder mkdir -p /etc/opt/microsoft/omsagent/scom/conf/omsagent.d # Create certs folder mkdir /etc/opt/microsoft/omsagent/scom/certs # Create log folder mkdir -p /var/opt/microsoft/omsagent/scom/log # Create run folder mkdir /var/opt/microsoft/omsagent/scom/run # Create state folder mkdir /var/opt/microsoft/omsagent/scom/state # Create tmp folder mkdir /var/opt/microsoft/omsagent/scom/tmp # Create fluent-logging folder (used for log file position file, this location is flexible) mkdir -p /home/omsagent/fluent-logging
將這些每個資料夾的擁有權設定為
omsagent:omiusers
:# Change owner of System Center Operations Manager folder chown omsagent:omiusers /etc/opt/microsoft/omsagent/scom # Change owner of log folder chown omsagent:omiusers /var/opt/microsoft/omsagent/scom/log # Change owner of run folder chown omsagent:omiusers /var/opt/microsoft/omsagent/scom/run # Change owner of state folder chown omsagent:omiusers /var/opt/microsoft/omsagent/scom/state # Change owner of tmp folder chown omsagent:omiusers /var/opt/microsoft/omsagent/scom/tmp # Change owner of fluent-logging folder (used for log file position file, this location is flexible) chown omsagent:omiusers /home/omsagent/fluent-logging
建立 omsagent 和 omsconfig 檔案:
# Create omsadmin.conf file touch /etc/opt/microsoft/omsagent/scom/conf/omsadmin.conf # Create omsagent.conf file touch /etc/opt/microsoft/omsagent/scom/conf/omsagent.conf
將這些每個檔案的擁有權設定為
omsagent:omiusers
:# Change owner of omsadmin.conf file chown omsagent:omiusers /etc/opt/microsoft/omsagent/scom/conf/omsadmin.conf # Change owner of omsagent.conf file chown omsagent:omiusers /etc/opt/microsoft/omsagent/scom/conf/omsagent.conf
編輯 檔案
/etc/opt/microsoft/omsagent/scom/conf/omsadmin.conf
,並在變更反白顯示的信息之後新增下列資訊。WORKSPACE_ID=scom System Center Operations Manager_ENDPOINT=https://<mark>\<MSFQDN\></mark>:8886 MONITORING_ID={274F8D7B-DBCA-8FC3-1451-8DCD55092156}
重新啟動 OMSAgent:
/opt/microsoft/omsagent/bin/service_control restart
確認 omsagent 記錄檔中的狀態:
tail -100 /var/opt/microsoft/omsagent/scom/log/omsagent.log
啟用 OMED 服務
在資源集區中的每個管理伺服器上啟用 OMED 服務,並管理 Linux 代理程式。
OMED 服務會從 Fluentd 收集事件,並將其轉換為 Operations Manager 事件。 您匯入自定義管理元件,可根據從Linux伺服器收到的事件產生警示。
您可以從 Operations 控制台或在管理伺服器或閘道伺服器上手動啟用 OMED 服務。
- 從 Operations 控制台,移至 [監視>Operations Manager>管理伺服器管理伺服器>狀態]。
- 選取 [管理伺服器] 狀態中的管理伺服器。
- 從 [工作] 中,選取 [健全狀況服務>[工作啟用 System Center OMED 伺服器]。
新增 OMED 防火牆規則
若要啟用 OMED 防火牆規則,您有兩個選項,請透過 PowerShell 或手動新增埠 (TCP/8886)。
請遵循下列步驟,使用 PowerShell 自動新增規則:
下列命令可讓您自動新增防火牆規則:
Set-NetFirewallRule -DisplayName "System Center Operations Manager External DataSource Service" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 8886
指派 OMSAgent 的客戶端憑證
指派 OMSAgent 的用戶端憑證時,您有兩個選項。
- 從 OMI 代理程式連結至已簽署的憑證。
- 手動為 OMS 代理程式產生客戶端憑證。
選取必要的索引標籤,以取得從 OMI 代理程式連結至已簽署憑證的步驟,或從 OMS 代理程式手動產生用戶端憑證:
將與
omikey.pem
檔案的omi.pem
擁有權設定為omsagent:omiusers
:# Change owner of System Center Operations Manager-cert.pem file chown omsagent:omiusers /etc/opt/microsoft/omsagent/scom/certs/scom-cert.pem # Change owner of System Center Operations Manager-key.pem file chown omsagent:omiusers /etc/opt/microsoft/omsagent/scom/certs/scom-key.pem
在 Linux 電腦上執行下列命令,將 OMS 代理程式用戶端憑證設定為 OMI 憑證(Operations Manager Linux 代理程式憑證):
# Link file omi.pem to System Center Operations Manager-cert.pem ln -s /etc/opt/omi/ssl/omi.pem /etc/opt/microsoft/omsagent/scom/certs/scom-cert.pem # Link file omikey.pem to System Center Operations Manager-key.pem ln -s /etc/opt/omi/ssl/omikey.pem /etc/opt/microsoft/omsagent/scom/certs/scom-key.pem
建立 Fluentd 組態檔
您可以使用組態檔來設定 Fluentd 作業。 若要利用記錄監視,您必須建立組態檔。 組態檔包含來源記錄檔名稱、路徑和篩選等資訊,以定義要收集的數據。
master Fluentd 組態檔 omsagent.conf 位於 /etc/opt/microsoft/omsagent/scom/conf/
。 您可以將記錄檔監視組態直接新增至此檔案,但應該建立個別的組態檔,以便更妥善地管理不同的設定。 接著,您會在主檔案中使用 @include 指示詞來包含您的自定義檔案。
例如,如果您在 中/etc/opt/microsoft/omsagent/scom/conf/omsagent.d
建立 logmonitoring.conf,您會將下列其中一行新增至 omsagent.d 檔案:
# Include all configuration files
@include omsagent.d/*.conf
或
# Include single configuration file
@include omsagent.d/logmonitoring.conf
如需 Fluentd 組態檔的詳細資訊,請參閱 Fluentd 組態檔語法。
下列各節說明組態檔不同指示詞中的設定,這些指示詞對記錄檔監視而言是唯一的。 每個都包含範例設定,您可以貼到組態檔中,並根據您的需求進行修改。
您可以先檢閱和評估記錄監視的完整範例組態檔,再建立您自己的配置檔。
來源
Source 指示詞會定義您要收集之數據的來源,也就是您定義記錄檔詳細數據的位置。 Fluentd 會挑選寫入來源的每個記錄,並將事件提交至 Fluentd 的路由引擎。 在此指示詞中指定標記。 標記是字串,用來做為 Fluentd 內部路由引擎的指示,以相互關聯不同的指示詞。
下列範例顯示由 Operations Manager 收集並標記的 syslog 記錄,以供處理。
<source>
# Specifies input plugin. Tail is a fluentd input plugin - http://docs.fluentd.org/v0.12/articles/in\_tail
type tail
# Specify the log file path. Supports wild cards.
path /var/log/syslog
# Recommended so that Fluentd will record the position it last read into this file.
pos_file /home/user1/fluent-test/demo_syslog.log.pos
# Used to correlate the directives.
tag System Center Operations Manager.log.syslog
format /(?<message>.*)/
</source>
篩選器
filter 指示詞的語法與 Match 相同,但允許對要處理哪些數據進行更複雜的篩選。 收集的事件必須符合要新增至輸出之所有篩選條件的準則。
此處所述的記錄檔監視有六個篩選外掛程式。 使用其中一或多個篩選來定義您想要從記錄檔收集的事件。
- 簡單比對:filter_System Center Operations Manager_simple_match
- 獨佔比對:filter_System中心作業Manager_excl_match
- 重複相互關聯:filter_System中心作業Manager_repeated_cor
- 相互關聯的比對:filter_System中心作業Manager_cor_match
- 獨佔相互關聯:filter_System中心作業Manager_excl_correlation
- Operations Manager 轉換器:filter_System Center Operations Manager_converter
選取必要的索引標籤,以複製個別篩選外掛程式的程式代碼:
最多需要 20 個輸入模式。 每當符合任何模式時,就會將事件傳送至 Operations Manager。
<filter tag>
type filter_System Center Operations Manager_simple_match
regexp1 <key> <pattern>
event_id1 <event ID>
regexp2 <key> <pattern>
event_id2 <event ID>
.
.
.
regexp20 <key> <pattern>
event_id20 <event ID>
</filter>
比對
match 指示詞會定義如何使用相符標記來處理從來源收集的事件。 只有標記符合模式的事件才會傳送至輸出目的地。 當多個模式列在一個 相符 標記內時,事件可以符合任何列出的模式。 type 參數會指定要用於這些事件的外掛程式類型。
此範例會處理具有符合 System Center Operations Manager.log 卷標的事件。 ** 和 System Center Operations Manager.alert (** 符合零個或多個標籤元件)。 它會指定 out_System Center Operations Manager 外掛程式,以允許 Operations Manager 管理元件收集事件。
<match System Center Operations Manager.log.** System Center Operations Manager.event>
# Output plugin to use
type out_System Center Operations Manager
log_level trace
num_threads 5
# Size of the buffer chunk. If the top chunk exceeds this limit or the time limit flush_interval, a new empty chunk is pushed to the top of the
queue and bottom chunk is written out.
buffer_chunk_limit 5m
flush_interval 15s
# Specifies the buffer plugin to use.
buffer_type file
# Specifies the file path for buffer. Fluentd must have write access to this directory.
buffer_path /var/opt/microsoft/omsagent/scom/state/out_System Center Operations Manager_common*.buffer
# If queue length exceeds the specified limit, events are rejected.
buffer_queue_limit 10
# Control the buffer behavior when the queue becomes full: exception, block, drop_oldest_chunk
buffer_queue_full_action drop_oldest_chunk
# Number of times Fluentd will attempt to write the chunk if it fails.
retry_limit 10
# If the bottom chunk fails to be written out, it will remain in the queue and Fluentd will retry after waiting retry_wait seconds
retry_wait 30s
# The retry wait time doubles each time until max_retry_wait.
max_retry_wait 9m
</match>
注意
若要在使用 Fluentd 通訊的 Linux 計算機上停用伺服器驗證,請將參數 enable_server_auth false 新增至適用於 Fluentd 的 Operations Manager 外掛程式,例如:
<match System Center Operations Manager.log.** System Center Operations Manager.event>
type out_System Center Operations Manager
max_retry_wait 9m
enable_server_auth false
</match>
將組態檔複製到代理程式
Fluentd 組態檔必須複製到 您想要監視之所有 Linux 計算機上的 /etc/opt/microsoft/omsagent/scom/conf/omsagent.d 。 您也必須在主要組態檔中新增 @include 指示詞,如上所述。
重新啟動 omsagent
您可以執行下列命令來重新啟動 omsagent:
/opt/microsoft/omsagent/bin/service_control restart
檢查 System Center Operations Manager 工作區的狀態
執行下列命令來檢查 OMSAgent 上的 System Center Operations Manager 工作區:
sh /opt/microsoft/omsagent/bin/omsadmin.sh -l
注意
在執行 OMED 服務的管理伺服器上,確定埠 8886 上的防火牆已開啟,且中繼證書頒發機構單位證書存儲只包含中繼證書頒發機構單位。
System Center Operations Manager 外部 DataSource Service 的事件記錄檔
只有在成功傳送至 System Center Operations Manager 外部 DataSource Service (OMED) 服務的事件時,才會建立 System Center OMED 服務事件記錄檔。
建立規則和監視器
Linux 管理元件不提供從 FluentD 收集事件的模組,Linux 管理元件會與 Linux 代理程式搭配使用。 它是 Linux 代理程式和閘道伺服器上的 Fluentd 模組,可提供增強記錄檔監視的功能。
您必須使用自定義規則和監視器建立自己的管理元件,以使用模組 Microsoft.Linux.OMED.EventDataSource 收集 Fluentd 的事件。 請注意,透過 System Center OMED 服務 事件記錄檔傳送之事件中的電腦名稱必須符合 UNIX/Linux 電腦檢視中的電腦名稱。 如果計算機名稱不符合,您就不會收到任何警示。
下表列出 Microsoft.Linux.OMED.EventDataSource 的參數。
參數 | 類型 | 描述 |
---|---|---|
ComputerName | String | 必要。 指定要讀取事件的 Linux 計算機名稱。 ComputerName 參數最常使用$Target表示法傳遞至模組,不過它可以指定為任何字串。 此模組會嘗試讀取指定Linux電腦所產生的事件。 |
ManagedEntityId | String | 必要。 指定受監視實體的受控實體標識碼。 ManagedEntityId 參數最常使用 $Target\Id$傳遞至模組。 |
EventNumber | 整數 | 選擇性。 表示要擷取的事件事件編號。 如果省略此選項,模組會傳回針對該計算機和受控實體所產生的所有事件 |
下一步
若要建立自定義檢視以檢視自訂記錄檔管理元件中的監視數據,請檢閱 在 Operations Manager 中使用檢視。
若要瞭解如何調查自定義記錄檔管理元件所識別的問題,請檢閱檢視 作用中的警示和詳細數據。