使用正則模式采集文本日志
Logtail正則解析插件支持通過正則表達式提取日志字段,并將日志解析為鍵值對形式。本文介紹如何通過日志服務控制臺創(chuàng)建正則模式的Logtail配置采集日志。
方案概覽
假設您的原始日志為:
127.0.0.1 - - [16/Aug/2024:14:37:52 +0800] "GET /wp-admin/admin-ajax.php?action=rest-nonce HTTP/1.1" 200 41 "http://www.example.com/wp-admin/post-new.php?post_type=page" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0"
通過正則解析插件處理后效果展示:
其中使用的正則表達式為:
(\S+)\s-\s(\S+)\s\[([^]]+)]\s"(\w+)\s(\S+)\s([^"]+)"\s(\d+)\s(\d+)\s"([^"]+)"\s"([^"]+).*
前提條件
已創(chuàng)建Logtail機器組并添加相應服務器,創(chuàng)建機器組的步驟,請參見創(chuàng)建用戶自定義標識機器組(推薦)或創(chuàng)建IP地址機器組。
安裝Logtail的主機需開放80(HTTP)端口和443(HTTPS)端口。ECS實例的端口由安全組規(guī)則控制,添加安全組規(guī)則的步驟請參見添加安全組規(guī)則。
服務器日志的內(nèi)容持續(xù)新增。Logtail只采集增量日志,如果下發(fā)Logtail配置后日志文件無更新,則Logtail不會采集該文件中的日志。更多信息,請參見讀取日志。
1. 選擇Project和Logstore
登錄日志服務控制臺。
單擊控制臺右側的快速接入數(shù)據(jù)卡片。
在接入數(shù)據(jù)頁面,查找正則 - 文本日志并單擊。
選擇目標Project和Logstore,日志會被采集到對應的Logstore。
2. 機器組配置
Logtail配置會應用到指定的機器組,從而采集服務器上的數(shù)據(jù)。無論是否已有機器組,都必須根據(jù)實際需求正確選擇使用場景和安裝環(huán)境,這將影響后續(xù)的頁面配置。
已有機器組
從源機器組列表選擇目標機器組,單擊下一步。
沒有可用機器組
單擊創(chuàng)建機器組,在創(chuàng)建機器組面板設置相關參數(shù)。機器組標識分為IP地址和用戶自定義標識,更多信息請參見創(chuàng)建用戶自定義標識機器組(推薦)或創(chuàng)建IP地址機器組。
重要創(chuàng)建機器組后立刻應用,可能因為連接未生效,導致心跳為FAIL,您可單擊重試。如果還未解決,請參見Logtail機器組無心跳進行排查。
3. Logtail配置
3.1 全局配置
配置項 | 說明 |
配置名稱 | Logtail配置名稱,在其所屬Project內(nèi)必須唯一。創(chuàng)建Logtail配置成功后,無法修改其名稱。 |
日志主題類型 | 選擇日志主題(Topic)的生成方式。更多信息,請參見日志主題。
|
高級參數(shù) | 其它可選的與配置全局相關的高級功能參數(shù),請參見創(chuàng)建Logtail流水線配置。 |
3.2 輸入配置
文件路徑
最大目錄監(jiān)控深度
配置項 | 說明 |
文件路徑 | 根據(jù)日志在主機(例如ECS)上的位置,設置日志目錄和文件名稱。
目錄名和文件名均支持完整模式和通配符模式,文件名規(guī)則請參見Wildcard matching。其中,日志路徑通配符只支持星號(*)和半角問號(?)。 日志文件查找模式為多層目錄匹配,即符合條件的指定目錄(包含所有層級的目錄)下所有符合條件的文件都會被查找到。例如:
|
最大目錄監(jiān)控深度 | 設置日志目錄被監(jiān)控的最大深度,即文件路徑中通配符 |
文件編碼 | 選擇日志文件的編碼格式。 |
首次采集大小 | 配置首次生效時,匹配文件的起始采集位置距離文件結尾的大小。首次采集大小設定值為1024 KB。
您可以通過此處修改首次采集大小,取值范圍為0~10485760,單位為KB。 |
采集黑名單 | 打開采集黑名單開關后,可進行黑名單配置,即可在采集時忽略指定的目錄或文件。支持完整匹配和通配符匹配目錄和文件名。其中,通配符只支持星號(*)和半角問號(?)。 重要
支持按照文件路徑黑名單、文件黑名單、目錄黑名單設置,詳細說明如下: 文件路徑黑名單
文件黑名單選擇文件黑名單,配置文件名為 目錄黑名單
|
允許文件多次采集 | 默認情況下,一個日志文件只能匹配一個Logtail配置。如果文件中的日志需要被采集多份,需要打開允許文件多次采集開關。 |
高級參數(shù) | 其它可選的與文件輸入插件相關的高級功能參數(shù),請參見創(chuàng)建Logtail流水線配置。 |
3.3 處理配置
日志樣例,支持多條日志;添加日志樣例可協(xié)助您配置日志處理相關參數(shù),降低配置難度,建議添加。
多行模式,如果日志為多行日志,請使用該選項。
類型,選擇自定義,本示例使用的行首正則表達式為:
(\S+)\s-.*
切分失敗處理方式,選擇保留單行。
處理模式
使用正則解析處理插件。對于多行日志,可以打開多行模式開關,然后自動生成正則表達式。
單擊正則解析可進入處理插件詳細配置頁面,需要在此頁面配置正則表達式,以及根據(jù)提取的value設置key值。
配置說明
參數(shù)名稱
說明
原始字段
解析日志前,用于存放日志內(nèi)容的原始字段,默認值為content。
正則表達式
用于匹配日志的正則表達式。
當您配置了日志樣例時,日志服務支持自動生成和手動輸入行首正則表達式。
單擊自動生成正則表達式,然后在日志樣例文本框中,劃選需提取的日志內(nèi)容,單擊生成正則,日志服務會根據(jù)您劃選的內(nèi)容,生成正則表達式。
單擊手動輸入正則表達式,輸入正則表達式。配置完成后,單擊驗證即可驗證您輸入的正則表達式是否可以解析、提取目標日志內(nèi)容。更多信息,請參見如何調(diào)試正則表達式。
當您未配置日志樣例時,需根據(jù)實際日志輸入正則表達式。
日志提取字段
為提取的日志內(nèi)容(Value),設置對應的字段名(Key)。
解析失敗時保留原始字段
選中解析失敗時保留原始字段,則解析失敗時,將保留原始字段。
解析成功時保留原始字段
選中解析成功時保留原始字段,則解析成功時,將保留原始字段。
重命名的原始字段
選中解析失敗時保留原始字段或解析成功時保留原始字段后,可重命名原始字段名,用于存放原始的日志內(nèi)容。
配置項 | 說明 |
日志樣例 | 待采集日志的樣例,請務必使用實際場景的日志。日志樣例可協(xié)助您配置日志處理相關參數(shù),降低配置難度。支持添加多條樣例,總長度不超過1500個字符。
|
多行模式 |
|
處理模式 | 處理插件組合,包括原生插件和拓展插件。有關處理插件的更多信息,請參見處理插件概述。 重要 處理插件的使用限制,請以控制臺頁面的提示為準。
|
Logtail配置生效時間最長需要3分鐘,請耐心等待。
4. 查詢分析配置
日志服務默認開啟全文索引。您也可以根據(jù)采集到的日志,手動創(chuàng)建字段索引,或者單擊自動生成索引,日志服務將自動生成字段索引。更多信息,請參見創(chuàng)建索引。
5. 查詢?nèi)罩?/b>
單擊查詢?nèi)罩?/b>,系統(tǒng)將跳轉至Logstore查詢分析頁面。
您需要等待1分鐘左右,待索引生效后,才能在原始日志頁簽中,查看已采集到的日志。查詢和分析日志的詳細步驟,請參見查詢和分析日志。
如果需要查詢?nèi)罩局械乃凶侄危ㄗh使用全文索引。如果只需查詢部分字段、建議使用字段索引,減少索引流量。如果需要對字段進行分析(SELECT語句),必須創(chuàng)建字段索引。
后續(xù)步驟
日志的索引類型、配置示例、索引計費等信息,請參見創(chuàng)建索引。
日志的查詢語法,請參見查詢語法。