操作場景
應用程序通常首先直接將運行日志輸出到本地的文件中。當運維人員需要查詢日志時,登錄服務器,通過操作系統的文件查看工具,比如more,vim,grep等查詢需要關注的日志內容。這種場景下,由于日志分布在各個服務器上,命令行操作易出錯、服務器權限等限制因素造成日志查找效率低下。
利用云日志服務,可以獲得以下優勢:
- 數據集中存儲,無需登錄多臺服務器查詢,這在微服務架構下尤為重要;
- 快速檢索日志,告別繁瑣的命令行操作,提升故障處理效率;
- 實時檢測異常日志,設置告警,提升故障響應時效。
前置條件
- 開通云日志服務;
- 應用服務部署在天翼云的云主機上。
接入步驟
-
登錄。
-
左側點擊【日志接入】菜單,進入日志接入頁面。選擇云主機-文本日志。
-
選擇日志單元。
- 點擊“所屬日志項目”后的目標框,在下拉列表中選擇具體的日志項目,若沒有所需的日志項目,點擊“所屬日志項目”目標框后的“新建”,在彈出的創建日志項目頁面創建新的日志項目。
- 點擊“所屬日志單元”后的目標框,在下拉列表中選擇具體的日志單元,若沒有所需的日志單元,點擊“所屬日志單元”目標框后的“新建”,在彈出的創建日志單元頁面創建新的日志單元。
-
選擇主機組。在主機組列表中選擇一個或多個需要采集日志的主機組。
若沒有所需的主機組,單擊列表上方“新建主機組”,輸入主機組名稱,在已開通云主機列表中,選擇您需要采集日志的目標云主機,點擊下一步,選中的云主機將打包作為主機組。 -
安裝采集器。
-
Step1:創建終端節點。安裝采集器前,您需要在云主機所在的VPC中創建終端節點,以建立與日志服務的連接通道。
您需要在當前頁面檢查云主機所在的VPC是否已創建終端節點。若終端節點狀態為“未創建”,請點擊頁面中的【創建終端節點】按鈕,并根據頁面指引進行開通。
若終端節點狀態為“已創建”,您可跳過該步驟。 -
Step2:安裝采集器。
- 首先獲取您的AK和SK。如何獲取AK/SK?
- 復制頁面中的命令,并使用獲取的AK、SK手動替換命令中的 {input_your_ak} 和 {input_your_sk}。填寫值時不需要添加 {}。
- 以root用戶登錄待安裝采集器的云主機,執行上述命令。當顯示“Installed lmtagent successfully”時表示安裝成功。
-
Step3:檢查采集器狀態。
點擊【檢測】按鈕,稍等片刻后查看采集器狀態,確保所有目標云主機的采集器狀態均為已連通。若多次重試后仍無法連通,請查看常見問題中的“云主機采集器無法連通”進行問題排查。 -
點擊下一步。
-
-
配置采集規則。
對日志采集設置具體的采集規則。具體請參考采集配置。 -
索引配置。(可選項)
具體查看索引配置。 -
點擊下一步后,接入成功后,可以點擊【返回接入配置列表】查看日志接入,也可單擊【查詢日志】查看該日志單元下的日志數據。
采集配置
您需要在日志接入流程中配置采集規則,采集器將按照該規則采集目標云主機的日志。
采集配置的具體配置參數說明如下:
-
采集規則名稱:自定義采集規則名稱,字符長度64以內,僅支持字母、數字、下劃線(_)和連字符(-),且必須以字母和數字開頭、結尾。
-
采集路徑配置:填寫您需要采集的日志路徑與日志文件名,采集器將監聽這些目錄(包含子層目錄)下所有匹配文件名規則的日志文件,并采集日志數據至云日志服務中。您可通過以下多種方式配置采集路徑:
-
采集單一目錄下的單一日志文件。示例:
/var/logs/a.log此例中,采集器將會監聽/var/log/目錄下以a.log命名的日志文件。
-
支持通配符模式進行目錄與文件名的模糊匹配,通配符(* )表示匹配多個任意字符,通配符(?) 表示匹配單個任意字符。示例如下:
采集路徑 示例說明 /var/logs/*/a.log 此例中,表示/var/logs/目錄下,任何一個目錄中存在a.log,都能進行日志匹配。 /var/logs/service-*/a.log 此例中,表示/var/logs/目錄下,任何一個以service-開頭的目錄中存在a.log,都能進行日志匹配。 /var/logs/service/a*.log 此例中,表示/var/logs/service目錄下,任何一個以a開頭的log類型日志文件,都能進行日志匹配。 /var/logs/*.log 此例中,表示/var/logs/目錄下,后綴名為.log的日志文件,都能進行日志匹配。 -
支持使用遞歸路徑,/**/表示當前目錄以及所有子目錄。示例:
/var/log/**/a.log此例中,采集器將會監聽/var/log/前綴路徑下子目錄中以a.log命名的日志文件,默認往里遞歸5個目錄層級,如:
/var/logs/1/a.log /var/logs/1/2/a.log /var/logs/1/2/3/a.log /var/logs/1/2/3/4/a.log /var/logs/1/2/3/4/5/a.log說明以上示例中的/1/2/3/4/5/,表示/var/logs目錄中,往里遞歸的5個目錄層級,在這5個目錄層級中只要存在a.log,都能進行日志匹配。若您需要遞歸更多的目錄層級,可修改當前頁面中的【最大目錄深度】字段。
采集路徑中只能出現一次**,不能出現兩個及以上。錯誤示例如:/var/logs/**/test/**/a.log。
采集路徑中第一個層級不允許為**,以避免誤采集系統文件,錯誤示例如:/**/logtest/a.log。
-
-
采集策略
- 全量:采集新文件時,從文件的末尾開始讀;
- 增量:采集新文件時,從文件的開頭開始讀。(從增量改為全量,也僅從最后采集位置開始采集,若要全量采集日志,請新建采集規則。全量最大采集10GB)
-
采集黑名單:
支持對日志進行過濾采集,即通過設置黑名單,在采集時過濾指定的文件。
打開采集黑名單設置后,您需要輸入完整的文件絕對路徑與文件名稱,代表該文件將會被采集器忽略。
支持添加多個采集黑名單。 -
最大目錄深度:默認為5層,該配置控制日志采集的最大目錄深度,采集器不會采集所在目錄層級超過指定最大目錄深度的日志文件。當您的目標采集路徑包含模糊匹配時,建議配置合適的最大目錄深度,避免采集器性能浪費。
-
切割模式
支持選擇切割模式以實現日志的結構化解析,目前采集器提供多種結構化解析方式,詳情如下:
| 解析方式 | 說明 |
|---|---|
| 單行全文 | 單行全文是指一條日志僅包含一行的內容,在采集的時候,將使用換行符來作為一條日志的結束符,即在日志文件中,以換行符分隔兩條日志。日志數據本身不再進行日志結構化處理,也不會提取日志字段。每條日志都會存在一個默認的字段__message__,采集器會將日志內容存放在__message__中。詳情請參考單行全文模式。 |
| 多行全文 | 多行全文日志是指一條完整的日志數據可能跨占多行,您需要指定首行正則以進行匹配,當某行日志匹配上預先設置的正則表達式,就認為是一條日志的開頭,而下一個行首出現則作為該條日志的結束標識符。日志內容同樣也會存放在__message__字段中。詳情請參考多行全文模式。 |
| 單行正則 | 單行正則模式用于處理結構化的日志,針對包含一行內容的日志,您需要指定一個正則表達式,采集器按照正則表達式將一條完整日志提取為多個 key-value 鍵值。詳情請參考單行正則模式。 |
| 多行正則 | 多行正則模式用于處理結構化的日志,針對包含多行內容的日志,您需要指定一個行首正則表達式用于匹配日志的開頭,并指定一個正則表達式用于提取多個值,采集器按照該正則表達式將一條完整日志提取為多個 key-value 鍵值。詳情請參考多行正則模式。 |
| 單行分隔符 | 單行分隔符模式支持通過配置的分隔符將一條日志分割成多個 key-value 鍵值,從而實現結構化處理,該模式僅適用于單行日志,每條完整的日志以換行符為結束標識符。詳情請參考單行分隔符模式。 |
| JSON | 支持解析Object類型的JSON日志,提取JSON日志內容作為Key-Value對,即Object首層的鍵作為Key,Object首層的值作為Value。詳情請參考JSON模式。 |