1. 程式人生 > 其它 >提取資料中的精髓--秒雲日誌資料解析

提取資料中的精髓--秒雲日誌資料解析


  1. 什麼是資料解析

資料解析,也稱為資料泛化,目的是提取出資料中關鍵的,有意義的資訊,將非結構化或半結構化的資料轉換為結構化的資料。通俗來講,日誌資料解析的目的是取資料之精華,去資料之糟粕。

舉個例子,下面是linux的登入日誌:

May 22 17:13:01 10-9-83-151 sshd[17422]: Accepted password for secisland from 129.74.226.122 port 64485 ssh2

從這個日誌中就可以看到很多的資訊,比如:

  1. 登入時間:May 22 17:13:01;
  2. 主機名:10-9-83-151;
  3. 程序名:sshd;
  4. 程序ID:17422;
  5. 登入使用者:secisland;
  6. 源ip:129.74.226.122;
  7. 埠:64485;
  8. 協議:ssh2。

通過上面分析後,把每個欄位儲存到資料庫中,這樣日誌的資訊就很豐富了,為後續的統計分析、關聯分析、告警、機器學習等打下了堅實的基礎。那麼如何把日誌解析能力提供出來,就顯得尤為重要,目前解析的方式主要有幾種:

  1. 通過編碼實現。直接在程式碼中處理,編譯釋出,這種方式對使用者來說最麻煩,因為幾乎沒有辦法進行調整;
  2. 通過配置檔案或者指令碼實現。這種方式解決了使用者不能直接調整的問題,相對方便。但寫指令碼、寫配置檔案還是複雜,而且這種情況只能登入後臺檢視,如果檔案比較多,調整修改會相當繁瑣;下面是擷取的開源工具logstash配置檔案,複雜程度不言而喻:

  1. 通過介面配置的方式實現。在平臺頁面上直接進行配置,這種方式即靈活又簡單,對使用者來說是首選方案。

秒雲日誌分析系統即採用介面配置方式實現資料解析。前端提供web頁面,使用者通過滑鼠點選,輕鬆實現資料識別,欄位提取,欄位轉換等需求,後端內建高速解析引擎,實現資料0延時處理。

下面讓我們從前端、後端兩個視角來看一看秒雲日誌資料解析功能。

  1. 簡單靈活的前端配置頁面

秒雲資料解析只需簡單的5步即可完成:選擇樣本->選擇特徵->提取欄位->欄位轉換->儲存。

    1. 選擇樣本

可以通過複製貼上或者搜尋IP、搜尋關鍵字過濾來選擇要泛化的日誌資料樣本。

    1. 選擇特徵

特徵是用於識別一類日誌的關鍵字,匹配特徵的日誌將使用當前配置的泛化規則。我們提供滑鼠劃詞的方式選擇日誌特徵。這裡我們選擇sshd作為該條日誌的特徵。

    1. 提取欄位

同樣,通過滑鼠劃詞點選實現關鍵欄位的提取。以提取登入使用者名稱為例:

  1. 登入時間:May 22 17:13:01;
  2. 主機名:10-9-83-151;
  3. 程序名:sshd;
  4. 程序ID:17422;
  5. 事件型別:登入(這個是根據內容分析出來的);
  6. 登入使用者:secisland;
  7. 源ip:129.74.226.122;
  8. 埠:64485;
  9. 協議:ssh2。

從樣本日誌中劃詞選擇“secisland”,給欄位命名“登入使用者”

同樣的方式,從樣本日誌中選取“登入時間”、“主機名”、”程序ID”等欄位

完成後,點選下一步,此時選擇的欄位已經被提取出來,轉換為如下的結構化資料。

    1. 欄位轉換

如果提取出的欄位還不能滿足最終的需求,可對提取的欄位進行加工,這裡的欄位加工我們稱之為欄位轉換。欄位轉換支援:提取KV對、字串分割、欄位重新命名、清除首尾字元等。

    1. 儲存

最後點選儲存,泛化規則配置完成。

  1. 高效併發的後端解析引擎

秒雲日誌自研解析引擎,設計之初充分考慮效能問題,採用流式處理、批量解析並使用go語言編寫。經過測試,單臺裝置解析引擎處理能力超過100KEPS(而相同環境下logstash的效能不到7KEPS,效能相差近20倍。)。不僅如此,解析引擎支援橫向擴充套件,啟動多例項引擎即可線性提升資料處理能力。高效能、多程序併發,能夠輕鬆應對海量資料實時處理的場景。

  1. 總結

秒雲日誌分析系統提供引導式的介面配置方式,幫助使用者從繁雜的資料中提取出有用的資訊,提取的過程即靈活又簡單。後端資料處理層面,有了資料解析引擎加持,即使面對海量、高速資料流,亦可滿足實時性的苛刻要求,做到0延時處理。簡單、靈活、高效---這就是秒雲日誌資料解析。