極簡模式不對日志內容進行解析,每條日志都被作為一個整體被采集到日志服務中,極大簡化了日志采集流程。本文介紹如何通過日志服務控制臺創建極簡模式的Logtail配置采集日志。

前提條件

  • 已創建Project和Logstore。更多信息,請參見創建Project創建Logstore
  • 用于安裝Logtail的服務器具備訪問遠端服務器80端口和443端口的能力。
  • 目標服務器持續產生日志。
    重要 Logtail只采集增量日志。如果下發Logtail配置后,日志文件無更新,則Logtail不會采集該文件中的日志。更多信息,請參見讀取文件

背景信息

在極簡模式下,Logtail會將日志內容存放在content字段中,不會對日志中的字段進行提取。每條日志時間為采集時Logtail所在主機的系統時間。例如:
  • 原始日志
    127.0.0.1 - - [05/Jan/2023:11:40:39 +0800] "GET /index.html HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"
  • 被采集到日志服務后的日志極簡模式
極簡模式支持采集以下類型的文本日志。
  • 單行文本日志

    一行日志內容為一條日志,即在日志文件中,以換行符分隔兩條日志。該模式下,您只需指定文件目錄和文件名稱即可,Logtail會按照每行一條日志進行采集。

  • 多行文本日志

    一條日志有多行內容。該模式下,您除了指定文件目錄和文件名稱外,還需配置日志樣例和行首正則表達式,Logtail通過行首正則表達式去匹配一條日志的行首,即確認一條日志的開頭,將未匹配部分作為該條日志的一部分,直到下一個行首出現。

操作步驟

重要 默認情況下,一個日志文件只能匹配一個Logtail配置。如果文件中的日志需要被采集多份,請參見如何實現文件中的日志被采集多份
  1. 登錄日志服務控制臺
  2. 接入數據區域,選擇多行-文本日志
    此處以采集多行文本日志為例,如果您要采集單行文本日志,請選擇單行-文本日志
  3. 選擇目標Project和Logstore,單擊下一步
  4. 創建機器組。
    • 如果您已有可用的機器組,請單擊使用現有機器組
    • 如果您還沒有可用的機器組,請執行以下操作(以ECS為例)。
      1. ECS機器頁簽中,通過手動選擇實例方式選擇目標ECS實例,單擊創建

        具體操作,請參見安裝Logtail(ECS實例)

        重要 如果您的服務器是與日志服務屬于不同賬號的ECS、其他云廠商的服務器和自建IDC時,您需要手動安裝Logtail。更多信息,請參見安裝Logtail(Linux系統)安裝Logtail(Windows系統)

        手動安裝Logtail后,您必須在該服務器上手動配置用戶標識。具體操作,請參見配置用戶標識

      2. 安裝完成后,單擊確認安裝完畢
      3. 創建機器組頁面,輸入名稱,單擊下一步

        日志服務支持創建IP地址機器組和用戶自定義標識機器組,詳細參數說明請參見創建IP地址機器組創建用戶自定義標識機器組

  5. 選中目標機器組,將該機器組從源機器組移動到應用機器組,單擊下一步
    重要 創建機器組后立刻應用,可能因為連接未生效,導致心跳為FAIL,您可單擊自動重試。如果還未解決,請參見Logtail機器組無心跳進行排查。
  6. 創建Logtail配置,單擊下一步
    極簡模式
    參數描述
    配置名稱Logtail配置名稱,在其所屬Project內必須唯一。創建Logtail配置成功后,無法修改其名稱。

    您也可以單擊導入其他配置,導入已創建的Logtail配置。

    日志路徑根據日志在服務器上的位置,設置日志目錄和文件名稱。
    • 如果是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開頭的文件。
    說明 日志路徑通配符只支持星號(*)和半角問號(?)。
    • 星號(*)表示匹配多個任意字符。
    • 半角問號(?)表示匹配單個任意字符。
    設置采集黑名單打開設置采集黑名單開關后,可進行黑名單配置,即可在采集時忽略指定的目錄或文件。支持完整匹配和通配符模式匹配目錄和文件名。例如:
    • 選擇按目錄路徑,配置路徑為/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目錄下的內容被采集。

    • 選擇按文件路徑,配置路徑為/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文件被采集。

    說明
    • 目錄通配符只支持星號(*)和半角問號(?)。
      • 星號(*)表示匹配多個任意字符。
      • 半角問號(?)表示匹配單個任意字符。
    • 如果您在配置日志路徑時使用了通配符,但又需要過濾掉其中部分路徑時,需在黑名單中填寫對應的完整路徑來保證過濾生效。

      例如您配置日志路徑/home/admin/app*/log/*.log,但要過濾/home/admin/app1*目錄下的所有子目錄,則需配置黑名單,即選擇按目錄路徑,配置路徑為/home/admin/app1*/** 。如果配置為/home/admin/app1*,則黑名單不會生效。

    • 匹配黑名單過程存在計算開銷,建議黑名單條目數在10條內。
    • 目錄路徑不能以正斜線(/)結尾,例如將設置路徑為/home/admin/dir1/,目錄黑名單不會生效。
    是否為Docker文件如果是Docker容器中的文件,您可打開是否為Docker文件開關,配置內部路徑與容器Tag。Logtail會自動監測容器的創建和銷毀,并根據Tag進行容器過濾,采集指定容器的日志。具體操作,請參見通過DaemonSet-控制臺方式采集容器文本日志
    模式采集模式,默認為極簡模式-多行,可修改為其它模式。
    日志樣例請務必使用實際場景的日志,便于日志服務自動提取行首正則表達式。例如:
    [2020-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)

    如果您是使用極簡模式采集單行文本日志,無需配置此參數。

    行首正則表達式Logtail通過行首正則表達式去匹配一條日志的行首,未匹配部分為該條日志的一部分。日志服務支持自動生成和手動輸入行首正則表達式。
    • 自動生成行首正則表達式

      填寫日志樣例后,單擊自動生成,生成行首正則表達式。

    • 手動輸入行首正則表達式

      填寫日志樣例后,單擊手動輸入正則表達式,手動配置。配置完成后,單擊驗證即可驗證您輸入的正則表達式是否正確。更多信息,請參見如何調試正則表達式

    如果您是使用極簡模式采集單行文本日志,無需配置此參數。

    丟棄解析失敗日志是否丟棄解析失敗的日志,具體說明如下:
    • 打開丟棄解析失敗日志開關,解析失敗的日志不上傳到日志服務。
    • 關閉丟棄解析失敗日志開關,日志解析失敗時,原始日志將作為__raw_log__字段的值上傳到日志服務。
    最大監控目錄深度設置日志目錄被監控的最大深度。最大深度范圍:0~1000,0代表只監控本層目錄。
    請根據您的需求選擇高級配置。如果沒有特殊需求,建議保持默認配置。
    參數描述
    啟用插件處理當您的業務日志太復雜或不固定,固定解析模式(Nginx模式、完整正則模式、JSON模式等)無法滿足日志解析需求時,您可以打開啟用插件處理開關,添加Logtail插件解析日志。
    日志服務會根據您選擇的采集模式生成默認的插件配置,您可以在默認配置后面添加其他插件配置,即您可以添加多個processors配置。更多信息,請參見概述
    重要 打開啟用插件處理開關后,上傳原始日志、時區屬性、丟棄解析失敗日志、過濾器配置、接受部分字段(分隔符模式)等功能不可用。
    上傳原始日志打開上傳原始日志開關后,原始日志將作為__raw__字段的值與解析過的日志一起上傳到日志服務。
    Topic生成方式設置Topic生成方式。更多信息,請參見日志主題
    • 空-不生成Topic:默認選項,表示設置Topic為空字符串,在查詢日志時不需要輸入Topic即可查詢。
    • 機器組Topic屬性:設置為機器組Topic屬性,用于明確區分不同服務器產生的日志數據。
    • 文件路徑正則:設置為文件路徑正則,則需要設置自定義正則,用正則表達式從路徑里提取一部分內容作為Topic。用于區分不同用戶或實例產生的日志數據。
    日志文件編碼設置日志文件編碼格式,取值為utf8、gbk。
    時區屬性采集日志時,日志時間的時區屬性。
    • 機器時區:默認為Logtail所在主機或容器的時區。
    • 自定義時區:手動選擇時區。
    超時屬性如果一個日志文件在指定時間內沒有任何更新,則認為監控已超時。
    • 永不超時:持續監控所有日志文件,永不超時。
    • 30分鐘超時:如果日志文件在30分鐘內沒有更新,則認為監控超時,Logtail不再監控該文件。

      選擇30分鐘超時時,還需設置最大超時目錄深度,范圍為1~3。

    過濾器配置只采集符合過濾條件的日志,過濾條件包括keyRegex字段,分別為目標字段的名稱和用于過濾的正則表達式。各個過濾條件之間為與關系。
    重要
    • 極簡模式下,只生成content字段。如果您要設置過濾條件,只能將Key設置為content
    • 此處的正則表達式僅支持全文匹配,不支持關鍵詞部分匹配。

    相關示例如下:

    • 過濾出符合條件的日志。
      • 設置KeylevelRegexWARNING|ERROR,表示只采集level字段值為WARNING或ERROR的日志。
      • 設置KeycontentRegex.*05\/Jan\/2023.*,表示只采集content字段值包含05/Jan/2023的日志。
    • 過濾掉不符合條件的日志。
      • 設置KeylevelRegex^(?!.*(INFO|DEBUG)).*,表示不采集level字段值中包含INFO或DEBUG的日志。
      • 設置KeylevelRegex^(?!(INFO|DEBUG)$).*,表示不采集level字段值為INFO或DEBUG的日志。
      • 設置KeyurlRegex.*^(?!.*(healthcheck)).*,表示不采集url字段值中包含healthcheck的日志。

    如何配置正則表達式,請參見正則表達式入門教程

    首次采集大小通過首次采集大小,可以確認首次采集的新文件的內容位置。首次采集大小默認為1024 KB。
    • 首次采集時,如果文件小于1024 KB,則從文件內容起始位置開始采集。
    • 首次采集時,如果文件大于1024 KB,則從距離文件末尾1024 KB的位置開始采集。

    您可以通過此處修改首次采集大小,取值范圍為0~10485760,單位為KB。

    擴展配置Logtail的擴展配置。更多信息,請參見advanced參數說明

    例如您要通過當前Logtail配置去采集其他Logtail配置已匹配的文件,并指定聚合發送周期,可添加如下配置。

    {
      "force_multiconfig": true,
      "batch_send_interval": 3
    }
    單擊下一步表示創建Logtail配置,日志服務開始采集日志。
    說明
  7. 預覽數據及創建索引,然后單擊下一步
    日志服務默認開啟全文索引。您也可以根據采集到的日志,手動創建字段索引,或者單擊自動生成索引,日志服務將自動生成字段索引。更多信息,請參見創建索引
    重要 如果您要查詢和分析日志,那么全文索引和字段索引必須至少啟用一種。同時啟用時,以字段索引為準。
  8. 單擊查詢日志,系統將跳轉至Logstore查詢分析頁面。
    您需要等待1分鐘左右,待索引生效后,才能在原始日志頁簽中,查看已采集到的日志。更多信息,請參見查詢和分析日志

問題排查

使用Logtail采集日志后,如果預覽頁面或查詢頁面無數據,您可以參見Logtail采集日志失敗的排查思路進行排查。