謹慎
本文參考 CentOS,這是處於終止服務 (EOL) 狀態的 Linux 發行版。 請據此考慮您的使用方式和規劃。 如需詳細資訊,請參閱 CentOS 生命週期結束指引。
Syslog 是 Linux 通用的事件記錄通訊協定。 應用程式傳送的訊息可能儲存在本機電腦上或傳遞至 Syslog 收集器。 安裝適用於 Linux 的 Log Analytics 代理程式時,它會設定本機 Syslog 精靈,以將訊息轉送至代理程式。 然後,代理程式會將訊息傳送至 Azure 監視器,其中會建立對應的記錄。
這很重要
舊版 Log Analytics 代理程式已於 2024 年 8 月 31 日取代。 Microsoft 將不再提供 Log Analytics 代理程式的任何支援。 如果您使用 Log Analytics 代理程式將資料內嵌至 Azure 監視器,請 立即移轉至 Azure 監視器代理程式。
備註
Azure 監視器支援收集由 rsyslog 或 syslog-ng 所傳送的訊息,其中 rsyslog 是預設精靈。 Red Hat Enterprise Linux 第 5 版、CentOS 和 Oracle Linux 第 5 版上預設的 Syslog 常駐程式(sysklog)不支援 Syslog 事件收集。 若要從這些發行版的此版本收集 Syslog 資料,應該安裝並配置 rsyslog 常駐程式 以取代 sysklog。
下列設備支援 Syslog 收集器:
- 克恩
- 使用者
- 郵件
- 精靈
- auth
- 系統日誌 (syslog)
- lpr
- news
- uucp
- cron (定時)
- authpriv
- ftp
- local0-local7
針對任何其他設施,請在 Azure 監視器中 設定自訂記錄資料來源 。
設定系統日誌
適用於 Linux 的 Log Analytics 代理程式只會收集具有其設定中指定的設施和嚴重性的事件。 您可以透過 Azure 入口網站或管理 Linux 代理程式上的組態檔來設定 Syslog。
在 Azure 入口網站中設定 Syslog
在 [代理程式設定] 功能表 中,為 Log Analytics 工作區設定 Syslog。 此組態會傳遞至每個 Linux 代理程式上的組態檔。
您可以選取 [ 新增設施] 來新增設施。 對於每一個設施,只會收集具有所選嚴重性的訊息。 選取您要收集的特定設施的風險等級。 您無法提供任何其他條件來篩選郵件。
依預設,所有組態變更都會自動推送至所有代理程式。 如果您想要在每個 Linux 代理程式上手動設定 Syslog,請清除將 以下設定套用至我的電腦 核取方塊。
在 Linux 代理程式上設定 Syslog
在 Linux 用戶端上安裝 Log Analytics 代理程式時,它會安裝預設的 Syslog 組態檔,以定義所收集訊息的設施和嚴重性。 您可以修改此檔案以變更組態。 組態檔會根據用戶端已安裝的 Syslog 精靈而有所不同。
備註
若您編輯 Syslog 設定,則必須重新啟動 Syslog 精靈,變更才會生效。
rsyslog
rsyslog 的配置檔位於 /etc/rsyslog.d/95-omsagent.conf。 其預設內容如下列範例所示。 此示例收集從本地代理傳送的系統日誌消息,適用於具有警告或更高級別的所有設施。
kern.warning @127.0.0.1:25224
user.warning @127.0.0.1:25224
daemon.warning @127.0.0.1:25224
auth.warning @127.0.0.1:25224
syslog.warning @127.0.0.1:25224
uucp.warning @127.0.0.1:25224
authpriv.warning @127.0.0.1:25224
ftp.warning @127.0.0.1:25224
cron.warning @127.0.0.1:25224
local0.warning @127.0.0.1:25224
local1.warning @127.0.0.1:25224
local2.warning @127.0.0.1:25224
local3.warning @127.0.0.1:25224
local4.warning @127.0.0.1:25224
local5.warning @127.0.0.1:25224
local6.warning @127.0.0.1:25224
local7.warning @127.0.0.1:25224
您可以透過移除配置檔的區段來移除設施。 您可以修改特定設施的條目,以限制收集針對該設施的嚴重性。 例如,若要將使用者功能限制為錯誤或更高嚴重性的訊息,您可以將設定檔中的該行修改為以下範例:
user.error @127.0.0.1:25224
syslog-ng
syslog-ng的配置檔案位於 /etc/syslog-ng/syslog-ng.conf。 其預設內容顯示在此範例中。 這個範例收集從本機代理程式傳送的 Syslog 訊息,適用所有設施與所有嚴重性。
#
# Warnings (except iptables) in one file:
#
destination warn { file("/var/log/warn" fsync(yes)); };
log { source(src); filter(f_warn); destination(warn); };
#OMS_Destination
destination d_oms { udp("127.0.0.1" port(25224)); };
#OMS_facility = auth
filter f_auth_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(auth); };
log { source(src); filter(f_auth_oms); destination(d_oms); };
#OMS_facility = authpriv
filter f_authpriv_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(authpriv); };
log { source(src); filter(f_authpriv_oms); destination(d_oms); };
#OMS_facility = cron
filter f_cron_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(cron); };
log { source(src); filter(f_cron_oms); destination(d_oms); };
#OMS_facility = daemon
filter f_daemon_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(daemon); };
log { source(src); filter(f_daemon_oms); destination(d_oms); };
#OMS_facility = kern
filter f_kern_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(kern); };
log { source(src); filter(f_kern_oms); destination(d_oms); };
#OMS_facility = local0
filter f_local0_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(local0); };
log { source(src); filter(f_local0_oms); destination(d_oms); };
#OMS_facility = local1
filter f_local1_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(local1); };
log { source(src); filter(f_local1_oms); destination(d_oms); };
#OMS_facility = mail
filter f_mail_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(mail); };
log { source(src); filter(f_mail_oms); destination(d_oms); };
#OMS_facility = syslog
filter f_syslog_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(syslog); };
log { source(src); filter(f_syslog_oms); destination(d_oms); };
#OMS_facility = user
filter f_user_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(user); };
log { source(src); filter(f_user_oms); destination(d_oms); };
您可以透過移除配置檔案中的某個區段來移除某個功能。 您可以透過從特定設施的配置清單中移除它們,來限制收集的嚴重程度。 例如,若要將使用者機能限制為僅警示重要訊息,您可以修改配置檔的該區段,如下列範例所示:
#OMS_facility = user
filter f_user_oms { level(alert,crit) and facility(user); };
log { source(src); filter(f_user_oms); destination(d_oms); };
從其他 Syslog 連接埠收集資料
Log Analytics 代理程式會在本機用戶端上接聽埠 25224 的 Syslog 訊息。 安裝代理程式時,會套用預設的 Syslog 組態,並在下列位置找到:
-
Rsyslog:
/etc/rsyslog.d/95-omsagent.conf -
系統日誌-ng:
/etc/syslog-ng/syslog-ng.conf
您可以建立兩個組態檔來變更埠號:FluentD 組態檔和 rsyslog-or-syslog-ng 檔案,視您安裝的 Syslog 常駐程式而定。
FluentD 配置檔案應該是位於
/etc/opt/microsoft/omsagent/conf/omsagent.d的新檔案,並將port內的值替換為您自訂的端口號碼。<source> type syslog port %SYSLOG_PORT% bind 127.0.0.1 protocol_type udp tag oms.syslog </source> <filter oms.syslog.**> type filter_syslog對於 rsyslog,您應該在
/etc/rsyslog.d/中建立一個新組態檔,並將該值%SYSLOG_PORT%替換為您的自訂連接埠號碼。備註
如果您在組態檔
95-omsagent.conf中修改此值,則在代理程式套用預設組態時,將會覆寫該值。# OMS Syslog collection for workspace %WORKSPACE_ID% kern.warning @127.0.0.1:%SYSLOG_PORT% user.warning @127.0.0.1:%SYSLOG_PORT% daemon.warning @127.0.0.1:%SYSLOG_PORT% auth.warning @127.0.0.1:%SYSLOG_PORT%應通過複製下面顯示的示例配置並將自定義修改的設定新增到位於
syslog-ng.conf中的配置檔案末/etc/syslog-ng/尾來修改syslog-ng配置。 請 勿 使用預設標籤%WORKSPACE_ID%_oms或%WORKSPACE_ID_OMS。 定義自訂標籤,以協助區分您的變更。備註
如果您修改組態檔中的預設值,則當代理程式套用預設組態時,它們將被覆寫。
filter f_custom_filter { level(warning) and facility(auth; }; destination d_custom_dest { udp("127.0.0.1" port(%SYSLOG_PORT%)); }; log { source(s_src); filter(f_custom_filter); destination(d_custom_dest); };
完成變更之後,請重新啟動 Syslog 和 Log Analytics 代理程式服務,以確保設定變更生效。
Syslog 記錄屬性
Syslog 記錄的類型為 Syslog ,並具有下表所示的內容。
| 房產 | Description |
|---|---|
| Computer | 事件是從哪台電腦收集的。 |
| 設施 | 定義產生訊息的系統部分。 |
| HostIP | 傳送訊息之系統的 IP 位址。 |
| 主機名稱 | 傳送訊息的系統名稱。 |
| 嚴重程度 | 事件的嚴重性層級。 |
| SyslogMessage | 訊息的文字。 |
| 流程識別碼 (ProcessID) | 產生訊息的處理序識別碼。 |
| EventTime | 產生事件的日期和時間。 |
使用 Syslog 記錄查詢
下表提供擷取 Syslog 記錄的不同記錄查詢範例。
| Query | Description |
|---|---|
| Syslog | 所有系統紀錄 |
| 系統日誌 |其中 SeverityLevel == “錯誤” | 所有具有錯誤嚴重性的 Syslog 記錄 |
| Syslog | 總結出 AggregatedValue = count() 依據 Computer | 依電腦分類的 Syslog 記錄數 |
| 系統日誌 |依設施彙總 AggregatedValue = count() | 按設施分類的 Syslog 記錄數 |
後續步驟
- 瞭解 記錄查詢 ,以分析從資料來源和解決方案收集的資料。
- 使用 自訂欄位 將 Syslog 記錄中的資料剖解析為個別欄位。
- 設定 Linux 代理程式 以收集其他類型的資料。