本文說明如何使用 Syslog via AMA 和 Common Event Format (CEF) via AMA 連接器,篩選並匯入來自 Linux 機器、網路裝置及安全性設備的 syslog 與 CEF 訊息。 開始前,請確保你已依 前置條件設定所需的權限、代理程式和日誌轉發器設定。 欲進一步了解這些資料連接器,請參閱 適用於 Microsoft Sentinel 的 Syslog 與 Common Event Format (CEF) AMA 連接器。
注意事項
Container Insights 支援自動收集您 AKS 叢集中 Linux 節點的 syslog 事件。 如要深入了解,請參閱利用容器深入解析收集 Syslog。
必要條件
開始前,請先檢視以下 Microsoft Sentinel、日誌轉發器及機器安全前置條件,確保資源已配置並分配適當權限,依照 Microsoft Sentinel 前置條件、日誌轉發器前置條件及機器安全前置條件部分所描述。
Microsoft Sentinel prerequisites
安裝適當的 Microsoft Sentinel 解決方案,並確保你有權限完成本文中的步驟。
請從 Microsoft Sentinel 的內容中心安裝相應的解決方案。 如需詳細資訊,請參閱探索並管理 Microsoft Sentinel 現成內容。
識別 Microsoft Sentinel 解決方案所需的資料連接器:透過 AMA 使用 Syslog或 透過 AMA 使用 Common Event Format (CEF),以及是否需要安裝 Syslog 或 Common Event Format 解決方案。 為達成此先決條件,
在 內容中樞 中,選取已安裝解決方案上的 管理,然後檢閱列出的資料連接器。
如果解決方案未安裝 Syslog via AMA 或 Common Event Format (CEF) via AMA ,請透過以下文章找到您的設備或裝置,判斷是否需要安裝 Syslog 或 Common Event Format 解決方案:
- 透過 AMA 資料連接器進行 CEF - 設定特定設備或裝置以進行 Microsoft Sentinel 資料擷取
- 透過 AMA 資料連接器使用 Syslog - 設定特定設備或裝置,將資料擷取至 Microsoft Sentinel
接著安裝內容集線器的 Syslog 或 Common Event Format 解決方案,以取得相關的 AMA 資料連接器。
擁有已獲指派下列 Azure 角色型存取控制 (Azure RBAC) 角色的 Azure 帳戶:
內建角色 Scope 原因 - 虛擬機貢獻者
- Azure 連網機器
資源管理員- 虛擬機器(VM)
- 虛擬機器擴展集
- 已啟用 Azure Arc 的伺服器
部署代理程式 包含此動作的任何角色
Microsoft.Resources/deployments/*- 訂閱
- 資源群組
- 現有資料收集規則
如何部署 Azure Resource Manager 範本 監控參與者 - 訂閱
- 資源群組
- 現有資料收集規則
建立或編輯資料收集規則
日誌轉發器的前提條件
如果你是從日誌轉發器收集訊息,以下先決條件適用:
你必須有一台指定的 Linux 虛擬機作為日誌轉發器來收集日誌。
如果您的記錄轉送器不是 Azure 虛擬機器,則其上必須已安裝 Azure Arc Connected Machine 代理程式。
Linux 日誌轉發虛擬機必須安裝 Python 2.7 或 3。 請使用
python --version「或」python3 --version指令檢查。 如果你用的是 Python 3,請確保它在機器上是預設指令,或者用 'python3' 指令執行腳本,而不是 'python'。日誌轉送器必須已啟用
syslog-ng或rsyslog常駐程式其中之一。關於日誌轉發器的空間需求,請參閱 Azure 監視器 代理效能基準測試。 你也可以參考實現 Microsoft Sentinel 可擴展資料擷取的設計。
您的日誌來源、安全裝置和設備必須設定為將其日誌訊息傳送至日誌轉送器的 syslog 常駐程式,而非傳送至其本機 syslog 常駐程式。
注意事項
當將 AMA 部署到虛擬機器擴展集 (VMSS) 時,強烈建議使用支援循環配置方法的負載平衡器,以確保負載能分散到所有已部署的執行個體。
機械安全前置條件
根據你組織的安全政策來設定機器的安全。 例如,將網路配置為與企業網路安全政策對齊,並調整守護程序中的埠口與協定以符合需求。 為了提升你的機器安全設定,請在 Azure 中保護你的虛擬機,或檢視這些網路安全的最佳實務。
如果您的裝置因為例如日誌轉送器位於雲端等原因而透過 TLS 傳送 syslog 和 CEF 記錄,您就需要將 syslog 常駐程式 (rsyslog 或 syslog-ng) 設定為透過 TLS 通訊。 如需詳細資訊,請參閱:
設定資料連接器
透過AMA或通用事件格式 (CEF) 透過AMA資料連接器建立Syslog的過程包含以下步驟:
- 安裝 Azure 監控代理程式,並透過以下任一方法建立 DCR) (資料收集規則:
- 如果你是用日誌轉發器從其他機器收集日誌,請在日誌轉發器 上執行「安裝」腳本 ,設定 syslog 守護程序監聽來自其他機器的訊息,並開啟必要的本地埠口。
請選擇相應的分頁以取得指示。
使用 Azure 或 Defender 入口網站建立資料收集規則(DCR),並在日誌轉發器上安裝 Azure 監視器 代理程式。
建立 DCR (資料收集規則)
若要開始,請在 Microsoft Sentinel 中開啟 透過 AMA 的 Syslog 或 透過 AMA 的 Common Event Format (CEF) 資料連接器,然後建立資料收集規則 (DCR)。
在 Azure 入口網站中的 Microsoft Sentinel,於 設定 下方,選取 資料連接器。
在 Defender 入口網站中的 Microsoft Sentinel,選取 Microsoft Sentinel>設定>資料連接器。關於 syslog,請在搜尋框輸入 Syslog。 從結果中選取透過 AMA 連接器內嵌的 Syslog。
關於 CEF,請在搜尋框輸入 CEF。 從結果中選取,選取透過 AMA 連接器內嵌常見事件格式 (CEF)。在細節面板中選擇 開啟連接器頁面 。
在 設定 區,選擇 +Create 資料收集規則。
在 基本 標籤中:
- 輸入一個 DCR 名稱。
- 選擇您的訂閱。
- 選擇你想放置 DCR 的資源群組。
選取 下一步:資源 >。
定義虛擬機資源
在 資源 標籤中,選擇你想安裝 AMA 的機器。 在此程序中,選擇您的日誌轉送主機。 如果你的日誌轉發器不在列表中,可能沒有安裝 Azure Connected Machine 代理程式。
使用可用的篩選器或搜尋框來找到你的日誌轉發虛擬機。 展開清單中的訂用帳戶以檢視其資源群組,再展開資源群組即可查看其中的 VM。
選擇你想安裝 AMA 的日誌轉發虛擬機。 當你將滑鼠移到虛擬機名稱旁邊時,會顯示這個勾選框。
檢視您的變更,並選取 下一步:收集 >。
選取設施和嚴重性
請注意,若同時使用相同設施處理系統日誌與 CEF 訊息,可能會導致資料擷取重複。 如需詳細資訊,請參閱避免資料擷取重複。
在 「收集」 分頁中,為每個設施類別選取最低記錄層級。 當您選取記錄層級時,Microsoft Sentinel 會收集所選層級以及嚴重性較高之其他層級的記錄。 例如,如果您選擇 LOG_ERR,Microsoft Sentinel 會收集 LOG_ERR、LOG_CRIT、LOG_ALERT 和 LOG_EMERG 層級的記錄。
檢視你的選擇,選擇 下一步:評論+創建。
審查並制定規則
完成所有分頁後,檢視你輸入的內容並建立資料收集規則。
在 「檢視與建立 」標籤中,選擇 「建立」。
連接器會在你建立 DCR 時選擇的機器上安裝 Azure 監視器 代理程式。
請查看 Azure 入口網站或 Microsoft Defender 入口網站的通知,確認 DCR 何時建立並安裝代理程式。
在連接器頁面按一下 「重新整理」,即可在清單中看到 DCR。
執行「安裝」腳本
如果你使用日誌轉送器,請將 syslog 守護程式設定為監聽來自其他機器的訊息,並開啟必要的本機連接埠。
請在連接器頁面中,複製顯示於執行下列命令以安裝並套用 CEF 收集器底下的命令列。
或者從這裡複製:
sudo wget -O Forwarder_AMA_installer.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Forwarder_AMA_installer.py&&sudo python Forwarder_AMA_installer.py登入安裝 AMA 的日誌轉發機。
把你從連接器頁面複製的安裝指令貼上來啟動安裝腳本。
腳本會設定rsyslogorsyslog-ngdaemon 使用所需協定,並重新啟動 daemon。 腳本開啟埠 514,以監聽 UDP 與 TCP 協定的訊息。 若要變更此設定,請根據機器上執行的守護程序類型,參閱對應的 syslog 守護程序設定檔:- Rsyslog:
/etc/rsyslog.conf - Syslog-ng:
/etc/syslog-ng/syslog-ng.conf
如果你使用的是 Python 3,且它在該電腦上不是預設指令,請在貼上的指令中將
python3替換為python。 詳見 日誌轉發器的前置條件。- Rsyslog:
檢查服務狀態。
請檢查你的日誌轉發器上的 AMA 服務狀態:
sudo systemctl status azuremonitoragent.service請檢查 rsyslog 服務狀態:
sudo systemctl status rsyslog.service對於 syslog-ng 環境,請勾選:
sudo systemctl status syslog-ng.service
設定安全裝置或設備
關於如何設定您的安全裝置或設備,請參閱以下文章之一:
- 透過 AMA 資料連接器進行 CEF - 設定特定設備與裝置以進行 Microsoft Sentinel 資料擷取
- 透過 AMA 資料連接器連線的 Syslog - 設定特定設備和裝置,以將資料匯入 Microsoft Sentinel
如需更多關於您的家電或裝置的資訊,請聯繫解決方案供應商。
測試接頭
請確認您的 Linux 機器或安全裝置與設備的日誌訊息是否已匯入 Microsoft Sentinel。
為了驗證 syslog 守護程序正在監聽所需的 UDP 埠,且 AMA 已準備好接收 Linux 轉發器的日誌,請執行以下指令以顯示活躍監聽者及其相關埠口:
netstat -lnptv你應該會看到
rsyslog或syslog-ng常駐程式正在 514 連接埠上接聽。要擷取來自記錄器或連接裝置的訊息,請在背景執行以下指令:
sudo tcpdump -i any port 514 or 28330 -A -vv &完成驗證後,停止
tcpdump。 輸入fg,然後選擇 Ctrl+C。
發送測試訊息
要發送示範訊息,請完成以下步驟之一:
使用
ncnetcat 工具。 在此範例中,該工具會在關閉換行選項的情況下,讀取透過echo命令傳送的資料。 該工具接著將資料寫入本地主機的 UDP 埠514,且不會逾時。 要執行 netcat 工具,你可能需要安裝另一個套件。echo -n "<164>CEF:0|Mock-test|MOCK|common=event-format-test|end|TRAFFIC|1|rt=$common=event-formatted-receive_time" | nc -u -w0 localhost 514使用指令
logger。 此範例會將訊息以 CEF RFC 格式,寫入local 4設施,並設定為嚴重性層級Warning,傳送至連接埠514,目標為本機主機。-t和--rfc3164旗標用於符合預期的 RFC 格式。logger -p local4.warn -P 514 -n 127.0.0.1 --rfc3164 -t CEF "0|Mock-test|MOCK|common=event-format-test|end|TRAFFIC|rt=$common=event-formatted-receive_time"使用下列指令測試 Cisco ASA 的資料擷取功能:
echo -n "<164>%ASA-7-106010: Deny inbound TCP src inet:1.1.1.1 dst inet:2.2.2.2" | nc -u -w0 localhost 514執行這些指令後,訊息會抵達 514 埠並轉發至 28330 埠。
發送測試訊息後,查詢你的 Log Analytics 工作空間。 日誌可能要等上20分鐘才會出現在你的工作區。
關於 CEF 日誌:
CommonSecurityLog
| where TimeGenerated > ago(1d)
| where DeviceProduct == "MOCK"
針對 Cisco ASA 日誌:
CommonSecurityLog
| where TimeGenerated > ago(1d)
| where DeviceVendor == "Cisco"
| where DeviceProduct == "ASA"
額外故障排除
如果你在 514 埠上看不到流量,或是你的測試訊息未被接收,請參考透過 AMA 連接器排查 Microsoft Sentinel 的 Syslog 和 CEF 問題。