本文介紹如何使用Logtail采集主機文本日志。
背景信息
本文介紹Logtail采集配置的詳細配置步驟,對于常見類型的日志采集,請參見最佳實踐:
前提條件
已創建Logtail機器組并添加相應服務器,創建機器組的步驟,請參見創建用戶自定義標識機器組(推薦)或創建IP地址機器組。
安裝Logtail的主機需要在出口方向開放80(HTTP)端口和443(HTTPS)端口。ECS實例的端口由安全組規則控制,添加安全組規則的步驟請參見添加安全組規則。
服務器日志的內容持續新增。Logtail只采集增量日志,如果下發Logtail配置后日志文件無更新,則Logtail不會采集該文件中的日志。更多信息,請參見讀取日志。
操作步驟
登錄日志服務控制臺。
在接入數據區域中,根據需要選擇包含文本日志后綴的入口。本文以采集主機中的多行文本日志為例。
在選擇日志空間頁面,按照選擇目標Project和Logstore,單擊下一步。
在機器組配置頁面,配置機器組。
根據實際需求,選擇使用場景和安裝環境。
重要無論是否已有機器組,都必須根據實際需求正確選擇使用場景和安裝環境,這將影響后續的頁面配置。
確認目標機器組已在應用機器組區域,單擊下一步。
已有機器組
從源機器組列表選擇目標機器組。
沒有可用機器組
單擊創建機器組,在創建機器組面板設置相關參數。機器組標識分為IP地址和用戶自定義標識,更多信息請參見創建用戶自定義標識機器組(推薦)或創建IP地址機器組。
重要創建機器組后立刻應用,可能因為連接未生效,導致心跳為FAIL,您可單擊重試。如果還未解決,請參見Logtail機器組無心跳進行排查。
創建Logtail配置,單擊下一步,創建Logtail配置。Logtail配置生效時間最長需要3分鐘,請耐心等待。
配置項
說明
配置名稱
Logtail配置名稱,在其所屬Project內必須唯一。創建Logtail配置成功后,無法修改其名稱。
日志主題類型
選擇日志主題(Topic)的生成方式。更多信息,請參見日志主題。
機器組Topic:設置為機器組的Topic屬性,用于明確區分不同機器組產生的日志。
文件路徑提取:設置為文件路徑正則,則需要設置自定義正則,用正則表達式從路徑里提取一部分內容作為Topic。用于區分不同源產生的日志。
自定義:自定義日志主題。
高級參數
其它可選的與配置全局相關的高級功能參數,請參見創建Logtail流水線配置。
配置項
說明
文件路徑
根據日志在主機(例如ECS)上的位置,設置日志目錄和文件名稱。
如果目標主機是Linux系統,則日志路徑必須以正斜線(/)開頭,例如
/apsara/nuwa/**/app.Log
。如果目標主機是Windows系統,則日志路徑必須以盤符開頭,例如
C:\Program Files\Intel\**\*.Log
。
目錄名和文件名均支持完整模式和通配符模式,文件名規則請參見Wildcard matching。其中,日志路徑通配符只支持星號(*)和半角問號(?)。
日志文件查找模式為多層目錄匹配,即符合條件的指定目錄(包含所有層級的目錄)下所有符合條件的文件都會被查找到。例如:
/apsara/nuwa/**/*.log
表示/apsara/nuwa
目錄(包含該目錄的遞歸子目錄)中后綴名為.log的文件。/var/logs/app_*/**/*.log
表示/var/logs
目錄下所有符合app_*
格式的目錄(包含該目錄的遞歸子目錄)中后綴名為.log
的文件。/var/log/nginx/**/access*
表示/var/log/nginx
目錄(包含該目錄的遞歸子目錄)中以access
開頭的文件。
最大目錄監控深度
設置日志目錄被監控的最大深度,即文件路徑中通配符
**
匹配的最大目錄深度。0代表只監控本層目錄。文件編碼
選擇日志文件的編碼格式。
首次采集大小
配置首次生效時,匹配文件的起始采集位置距離文件結尾的大小。首次采集大小設定值為1024 KB。
首次采集時,如果文件小于1024 KB,則從文件內容起始位置開始采集。
首次采集時,如果文件大于1024 KB,則從距離文件末尾1024 KB的位置開始采集。
您可以通過此處修改首次采集大小,取值范圍為0~10485760,單位為KB。
采集黑名單
打開采集黑名單開關后,可進行黑名單配置,即可在采集時忽略指定的目錄或文件。支持完整匹配和通配符匹配目錄和文件名。其中,通配符只支持星號(*)和半角問號(?)。
重要如果您在配置文件路徑時使用了通配符,但又需要過濾掉其中部分路徑,則需在采集黑名單中填寫對應的完整路徑來保證黑名單配置生效。
例如您配置文件路徑為
/home/admin/app*/log/*.log
,但要過濾/home/admin/app1*
目錄下的所有子目錄,則需選擇目錄黑名單,配置目錄為/home/admin/app1*/**
。如果配置為/home/admin/app1*
,黑名單不會生效。匹配黑名單過程存在計算開銷,建議黑名單條目數控制在10條內。
目錄路徑不能以正斜線(/)結尾,例如將設置路徑為
/home/admin/dir1/
,目錄黑名單不會生效。
支持按照文件路徑黑名單、文件黑名單、目錄黑名單設置,詳細說明如下:
文件路徑黑名單
選擇文件路徑黑名單,配置路徑為
/home/admin/private*.log
,則表示在采集時忽略/home/admin/
目錄下所有以private開頭,以.log結尾的文件。選擇文件路徑黑名單,配置路徑為
/home/admin/private*/*_inner.log
,則表示在采集時忽略/home/admin/
目錄下以private開頭的目錄內,以_inner.log結尾的文件。例如/home/admin/private/app_inner.log
文件被忽略,/home/admin/private/app.log
文件被采集。
文件黑名單
選擇文件黑名單,配置文件名為
app_inner.log
,則表示采集時忽略所有名為app_inner.log
的文件。目錄黑名單
選擇目錄黑名單,配置目錄為
/home/admin/dir1
,則表示在采集時忽略/home/admin/dir1
目錄下的所有文件。選擇目錄黑名單,配置目錄為
/home/admin/dir*
,則表示在采集時忽略/home/admin/
目錄下所有以dir開頭的子目錄下的文件。選擇目錄黑名單,配置目錄為
/home/admin/*/dir
,則表示在采集時忽略/home/admin/
目錄下二級目錄名為dir的子目錄下的所有文件。例如/home/admin/a/dir
目錄下的文件被忽略,/home/admin/a/b/dir
目錄下的文件被采集。
允許文件多次采集
默認情況下,一個日志文件只能匹配一個Logtail配置。如果文件中的日志需要被采集多份,需要打開允許文件多次采集開關。
高級參數
其它可選的與文件輸入插件相關的高級功能參數,請參見創建Logtail流水線配置。
配置項
說明
日志樣例
待采集日志的樣例,請務必使用實際場景的日志。日志樣例可協助您配置日志處理相關參數,降低配置難度。支持添加多條樣例,總長度不超過1500個字符。
[2023-10-01T10:30:01,000] [INFO] java.lang.Exception: exception happened at TestPrintStackTrace.f(TestPrintStackTrace.java:3) at TestPrintStackTrace.g(TestPrintStackTrace.java:7) at TestPrintStackTrace.main(TestPrintStackTrace.java:16)
多行模式
多行日志的類型:多行日志是指每條日志分布在連續的多行中,需要從日志內容中區分出每一條日志。
自定義:通過行首正則表達式區分每一條日志。
多行JSON:每個JSON對象被展開為多行,例如:
{ "name": "John Doe", "age": 30, "address": { "city": "New York", "country": "USA" } }
切分失敗處理方式:
Exception in thread "main" java.lang.NullPointerException at com.example.MyClass.methodA(MyClass.java:12) at com.example.MyClass.methodB(MyClass.java:34) at com.example.MyClass.main(MyClass.java:?0)
對于以上日志內容,如果日志服務切分失敗:
丟棄:直接丟棄這段日志。
保留單行:將每行日志文本單獨保留為一條日志,保留為一共四條日志。
處理模式
處理插件組合,包括原生插件和拓展插件。有關處理插件的更多信息,請參見處理插件概述。
重要處理插件的使用限制,請以控制臺頁面的提示為準。
2.0版本的Logtail:
原生處理插件可任意組合。
原生處理插件和擴展處理插件可同時使用,但擴展處理插件只能出現在所有的原生處理插件之后。
低于2.0版本的Logtail:
不支持同時添加原生插件和擴展插件。
原生插件僅可用于采集文本日志。使用原生插件時,須符合如下要求:
第一個處理插件必須為正則解析插件、分隔符模式解析插件、JSON解析插件、Nginx模式解析插件、Apache模式解析插件或IIS模式解析插件。
從第二個處理插件到最后一個處理插件,最多包括1個時間解析處理插件,1個過濾處理插件和多個脫敏處理插件。
對于解析失敗時保留原始字段和解析成功時保留原始字段參數,只有以下組合有效,其余組合無效。
只上傳解析成功的日志:
解析成功時上傳解析后的日志,解析失敗時上傳原始日志:
解析成功時不僅上傳解析后的日志,并且追加原始日志字段,解析失敗時上傳原始日志。
例如,原始日志
"content": "{"request_method":"GET", "request_time":"200"}"
解析成功,追加原始字段是在解析后日志的基礎上再增加一個字段,字段名為重命名的原始字段(如果不填則默認為原始字段名),字段值為原始日志{"request_method":"GET", "request_time":"200"}
。
創建索引和預覽數據,然后單擊下一步。日志服務默認開啟全文索引。您也可以根據采集到的日志,手動創建字段索引,或者單擊自動生成索引,日志服務將自動生成字段索引。更多信息,請參見創建索引。
重要如果需要查詢日志中的所有字段,建議使用全文索引。如果只需查詢部分字段、建議使用字段索引,減少索引流量。如果需要對字段進行分析(SELECT語句),必須創建字段索引。
單擊查詢日志,系統將跳轉至Logstore查詢分析頁面。
您需要等待1分鐘左右,待索引生效后,才能在原始日志頁簽中,查看已采集到的日志。查詢和分析日志的詳細步驟,請參見查詢和分析日志。
相關文檔
使用Logtail采集日志后,如果預覽頁面為空或查詢頁面無數據,請按照Logtail采集日志失敗的排查思路進行排查。在使用Logtail采集日志時,可能遇到正則解析失敗、文件路徑不正確、流量超過Shard服務能力等錯誤。查看Logtail采集錯誤的步驟,請參見如何查看Logtail采集錯誤信息。采集數據常見的錯誤類型請參見日志服務采集數據常見的錯誤類型。
默認情況下,一個日志文件只能匹配一個Logtail配置。如果同一份日志需要被采集多份,請參見如何實現文件中的日志被采集多份。
將企業內網服務器日志采集到日志服務,請參見采集企業內網服務器日志。