共用方式為


使用 Log Analytics 代理程式收集 Syslog 資料來源

謹慎

本文參考 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 集合的圖表。

下列設備支援 Syslog 收集器:

  • 克恩
  • 使用者
  • 郵件
  • 精靈
  • auth
  • 系統日誌 (syslog)
  • lpr
  • news
  • uucp
  • cron (定時)
  • authpriv
  • ftp
  • local0-local7

針對任何其他設施,請在 Azure 監視器中 設定自訂記錄資料來源

設定系統日誌

適用於 Linux 的 Log Analytics 代理程式只會收集具有其設定中指定的設施和嚴重性的事件。 您可以透過 Azure 入口網站或管理 Linux 代理程式上的組態檔來設定 Syslog。

在 Azure 入口網站中設定 Syslog

[代理程式設定] 功能表 中,為 Log Analytics 工作區設定 Syslog。 此組態會傳遞至每個 Linux 代理程式上的組態檔。

您可以選取 [ 新增設施] 來新增設施。 對於每一個設施,只會收集具有所選嚴重性的訊息。 選取您要收集的特定設施的風險等級。 您無法提供任何其他條件來篩選郵件。

顯示配置 Syslog 的螢幕擷取畫面。

依預設,所有組態變更都會自動推送至所有代理程式。 如果您想要在每個 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 記錄數

後續步驟