Logtail會根據您的採集配置定期請求指定的URL,將請求返回的Body內容作為資料來源上傳到Log Service。本文介紹如何通過Log Service控制台建立Logtail採集配置採集HTTP資料。
前提條件
已在伺服器上安裝Logtail。更多資訊,請參見安裝Logtail(Linux系統)或安裝Logtail(Windows系統)。
目前支援Linux Logtail 0.16.0及以上版本,Windows Logtail 1.0.0.8及以上版本。
原理
Logtail根據您在採集配置中設定的HTTP請求的URL、Method、Header、Body等資訊,定期對指定URL發起請求,將請求返回的狀態代碼、body內容以及回應時間作為資料來源上傳到Log Service。
功能
支援配置多個URL。
支援配置HTTP方法。
支援配置HTTP請求的間隔。
支援自訂要求標頭。
支援HTTPS。
支援檢測body是否匹配固定模式。
應用情境
監控應用狀態(以HTTP方式提供監控介面),例如:
Nginx
Docker(HTTP方式)
Elastic Search
Haproxy
其他以HTTP方式提供監控介面的服務
檢測服務可用性。
定期請求服務,通過狀態代碼以及請求延遲做服務的可用性監控。
定期拉取資料,例如微博評論、粉絲數等。
使用限制
URL必須以
http
或https
開頭。不支援自訂認證。
不支援互動式通訊方式。
操作步驟
例如每隔1000ms請求一次nginx status模組,URL為http://127.0.0.1/ngx_status
,使用Regex提取返回body中的狀態資訊,操作步驟如下所示。
在接入資料地區,選擇自訂資料外掛程式。
選擇目標Project和Logstore,單擊下一步。
建立機器組。
如果您已有可用的機器組,請單擊使用現有機器組。
如果您還沒有可用的機器組,請執行以下操作(以ECS為例)。
在ECS機器頁簽中,通過手動選擇執行個體方式選擇目標ECS執行個體,單擊建立。
具體操作,請參見安裝Logtail(ECS執行個體)。
重要如果您的伺服器是與Log Service屬於不同帳號的ECS、其他雲廠商的伺服器和自建IDC時,您需要手動安裝Logtail。具體操作,請參見安裝Logtail(Linux系統)或安裝Logtail(Windows系統)。手動安裝Logtail後,您必須在該伺服器上手動設定使用者標識。具體操作,請參見配置使用者標識。
確認參數配置無誤後,單擊確定。
安裝完成後,單擊確認安裝完畢。
在建立機器組頁面,輸入名稱,單擊下一步。
Log Service支援建立IP地址機器組和使用者自訂標識機器組,詳細參數說明請參見建立IP地址機器組和建立使用者自訂標識機器組。
確認目標機器組已在應用機器組地區,單擊下一步。
重要建立機器組後立刻應用,可能因為串連未生效,導致心跳為FAIL,您可單擊自動重試。如果還未解決,請參見Logtail機器組無心跳進行排查。
在資料來源設定頁簽中,設定配置名稱和外掛程式配置,然後單擊下一步。
inputs為資料來源配置,必選項。
重要一個inputs中只允許配置一個類型的資料來源。
processors為處理配置,用於解析資料。可選項,您可以配置一種或多種處理方式。
如果當前的inputs配置無法滿足日誌解析需求,您可以在外掛程式配置中添加processors配置,即添加Logtail外掛程式處理資料。例如提取欄位、提取日誌時間、脫敏資料、過濾日誌等。更多資訊,請參見使用Logtail外掛程式處理資料。
{ "inputs": [ { "type": "metric_http", "detail": { "IntervalMs": 1000, "Addresses": [ "http://127.0.0.1/ngx_status" ], "Headers": {"key":"value"}, "IncludeBody": true } } ], "processors" : [ { "type": "processor_regex", "detail" : { "SourceKey": "content", "Regex": "Active connections: (\\d+)\\s+server accepts handled requests\\s+(\\d+)\\s+(\\d+)\\s+(\\d+)\\s+Reading: (\\d+) Writing: (\\d+) Waiting: (\\d+).*", "Keys": [ "connection", "accepts", "handled", "requests", "reading", "writing", "waiting" ], "FullMatch": true, "NoKeyError": true, "NoMatchError": true, "KeepSource": false } } ] }
參數
類型
是否必選
參數說明
type
string
是
資料來源類型,固定為metric_http。
Addresses
string 數組
是
URL列表。
重要必須以
http
或https
開頭。IntervalMs
int
是
每次請求的間隔,單位:ms。
Method
string
否
請求的方法名。必須大寫,預設為
GET
。Body
string
否
HTTP Body欄位內容,預設為空白。
Headers
key:string, value:string map
否
HTTP Header的內容,預設為空白。例如
{"key":"value"}
,請根據實際值替換。PerAddressSleepMs
int
否
Addresses列表中,每個URL請求的間隔時間,單位:ms,預設值:100 ms。
ResponseTimeoutMs
int
否
請求逾時的時間,單位:ms,預設值:5000 ms。
IncludeBody
boolean
否
是否採集請求的Body,預設值:false。如果為true,則將請求Body內容存放在名為content的key中。
FollowRedirects
boolean
否
是否自動處理重新導向,預設值:false。
InsecureSkipVerify
boolean
否
是否跳過HTTPS安全檢查,預設值:false。
ResponseStringMatch
string
否
對返回的Body內容進行Regex檢查,檢查結果被存放在名為_response_match_的key中,如果匹配,value為yes;如果不匹配,value為no。
預覽資料及建立索引,然後單擊下一步。
Log Service預設開啟全文索引。您也可以根據採集到的日誌,手動建立欄位索引,或者單擊自動產生索引,Log Service將自動產生欄位索引。更多資訊,請參見建立索引。
重要如果您要查詢和分析日誌,那麼全文索引和欄位索引必須至少啟用一種。同時啟用時,以欄位索引為準。
相關文檔
Log Service為Linux系統提供Logtail自動診斷工具,可以根據工具提示快速定位並解決問題。請參見如何使用Logtail自動診斷工具。
使用Logtail採集日誌後,如果預覽頁面為空白或查詢頁面無資料,請按照Logtail採集日誌失敗的排查思路進行排查。
在使用Logtail採集日誌時,可能遇到正則解析失敗、檔案路徑不正確、流量超過Shard服務能力等錯誤。查看Logtail採集錯誤的步驟,請參見如何查看Logtail採集錯誤資訊。採集資料常見的錯誤類型請參見Log Service採集資料常見的錯誤類型。
預設情況下,一個記錄檔只能匹配一個Logtail配置。如果同一份日誌需要被採集多份,請參見如何?檔案中的日誌被採集多份。
將企業內網伺服器日誌採集到Log Service,請參見採集企業內網伺服器日誌。
不同伺服器上的日誌的儲存路徑或檔案名稱相同,需要區分不同伺服器,請參見機器組Topic屬性。區分不同使用者或執行個體產生的日誌資料,請參見檔案路徑正則。
執行結果
採集完成後,您可以在Log Service控制台查看資料,除通過Regex解析過的資料外,還包括HTTP請求附加的method、address、time、code、result資訊。
"Index" : "7"
"connection" : "1"
"accepts" : "6079"
"handled" : "6079"
"requests" : "11596"
"reading" : "0"
"writing" : "1"
"waiting" : "0"
"_method_" : "GET"
"_address_" : "http://127.0.0.1/ngx_status"
"_response_time_ms_" : "1.320"
"_http_response_code_" : "200"
"_result_" : "success"
每次請求,預設上傳以下欄位。
欄位 | 說明 |
_address_ | 請求地址。 |
_method_ | 要求方法。 |
_response_time_ms_ | 響應延遲時間,單位:ms。 |
_http_response_code_ | 狀態代碼。 |
_result_ | 請求的結果,取值為success、invalid_body、match_regex_invalid、mismatch、timeout。 |
_response_match_ | 返回的body內容是否匹配ResponseStringMatch欄位。如果不存在 |