天天看點

《日志管理與分析權威指南》一1.2.2 日志資料是如何傳輸和收集的

本節書摘來華章計算機《日志管理與分析權威指南》一書中的第1章 ,第1.2.2節,(美) anton a. chuvakin kevin j. schmidt christopher phillips 著 姚 軍 簡于涵 劉 晖 等譯更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

日志資料的傳輸和收集在概念上非常簡單。計算機或者其他裝置都實作了日志記錄子系統,能夠在确定有必要的時候生成日志消息,具體的确定方式取決于裝置。例如,你可以選擇對裝置進行配置,裝置也可能本身進行了寫死,生成一系列預設消息。另一方面,你必須有一個用來接收和收集日志消息的地方。這個地方一般被稱為日志主機(loghost)。日志主機是一個計算機系統,一般來說可能是unix系統或者windows伺服器系統,它是集中收集日志消息的地方。使用集中日志收集器的優點如下:

可以集中存儲從多個地點得到的日志消息。

可以在上面備份你的日志。

可以在上面進行日志資料的分析。

這固然是好事,但是,最初的日志消息是如何傳輸的呢?最常見的方法是通過syslog協定。syslog協定是日志消息交換的一種标準。它常見于unix系統中,也存在于windows和其他非基于unix的平台上。syslog基本上都實作了用戶端和伺服器端元件,兩者之間通過使用者資料報協定(udp)通信,但是為了可靠傳輸,很多開源和商業syslog實作同樣也支援傳輸控制協定(tcp)。用戶端部分是生成和發送日志消息的真實裝置或者計算機系統。伺服器端通常會在一個日志收集伺服器上。它的主要工作就是采集基于syslog的日志消息并将其存儲在一個本地磁盤上,在那裡可以分析日志,備份以及存儲以供長期使用。

syslog并不是傳輸和收集日志資料的唯一機制。例如,微軟為windows開發了自己的日志記錄系統,稱做window事件日志(windows event log)。使用者登入登出、應用程式消息等都以專有的格式存儲。有開源和商業的應用程式用來将windows事件日志轉換成syslog的格式,以發送給syslog伺服器。我們将會在第3和第15章對windows事件日志進行更詳細的讨論。

簡單網絡管理協定(snmp)是一種用來管理網絡裝置的基于标準的協定。此協定基于兩個概念:陷阱和輪詢。陷阱就是當某些事情發生的時候,裝置或者計算機系統發出的日志消息的一種形式。陷阱發送到管理站——這類似于日志主機。管理站用來管理基于snmp的系統。輪詢是管理站使用snmp來查詢裝置預設變量(例如接口統計資料、接口的進出位元組數等等)的手段。snmp和syslog主要的差別是snmp應該是根據資料格式來組織的,但在實踐中并不總能找到。如果您想要了解關于snmp的更多内容,請參閱《essential snmp》(mauro & schmidt,2005)。

資料庫已經變成了應用程式存儲日志消息的簡便途徑。應用程式可以将它的日志消息寫進資料庫模式,而不是生成一條syslog消息。在某些情況下,syslog伺服器本身也可以直接寫入關系型資料庫,特别是在結構化存儲、分析和報告日志消息的情況下有着極大的優勢。

最後,也有一些專有的日志記錄格式。第三方裝置和應用程式實作了用于生成和檢索日志消息的專有機制。在這個領域,供應商可能以c或者java類庫的形式給你提供應用程式設計接口(api),或者由你自行實作協定。可将windows事件日志看作一種專有格式,但時常人們将其看作非官方日志記錄标準,類似syslog,因為它相當流行。

我們在本節中讨論了以下一些較為常見的協定:

syslog:基于udp的用戶端/伺服器協定。這是最常見和普遍的日志記錄機制。

snmp:snmp最初是為了管理網絡中的裝置而創造的。然而多年來許多非網絡系統已采用snmp作為發出日志消息和其他狀态類型資料的方式。

windows事件日志:微軟的專有日志記錄格式。

資料庫:以結構化的方式來存儲和檢索日志消息。

常用的專有協定:

lea:日志提取api(log extraction api,lea)是checkpoint用于從它的防火牆和安全産品線收集日志的api。

sdee:安全裝置事件交換(security device event exchange,sdee)是思科用于從它的ips(入侵預防系統)裝置産品線收集日志消息的基于可擴充标記語言(xml)的協定。

e-streamer:e-streamer是sourcefire公司為其ips開發的專有協定。

注意支援的日志記錄方法

有些裝置支援多種日志記錄方法。例如,ips裝置可能支援将日志記錄到syslog伺服器或是資料庫系統。問題在于記錄到syslog的日志消息隻是由ips生成的警報摘要資訊,它丢失了重要的資訊,你可能需要去資料庫擷取完整的資料集。例如,資料包捕獲(pcap)。pcap包含觸發ips生成警報或者日志消息的網絡連接配接部分。這可能是用于資訊分析、報告的一個重要的項目。