Logtail會根據您的采集配置定期請求指定的URL,將請求返回的Body內容作為數據源上傳到日志服務。本文介紹如何通過日志服務控制臺創建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內容以及響應時間作為數據源上傳到日志服務。
功能
支持配置多個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
,使用正則表達式提取返回body中的狀態信息,操作步驟如下所示。
登錄日志服務控制臺。
在接入數據區域,選擇自定義數據插件。
選擇目標Project和Logstore,單擊下一步。
創建機器組。
如果您已有可用的機器組,請單擊使用現有機器組。
如果您還沒有可用的機器組,請執行以下操作(以ECS為例)。
在ECS機器頁簽中,通過手動選擇實例方式選擇目標ECS實例,單擊創建。
具體操作,請參見安裝Logtail(ECS實例)。
重要如果您的服務器是與日志服務屬于不同賬號的ECS、其他云廠商的服務器和自建IDC時,您需要手動安裝Logtail。具體操作,請參見安裝Logtail(Linux系統)或安裝Logtail(Windows系統)。手動安裝Logtail后,您必須在該服務器上手動配置用戶標識。具體操作,請參見配置用戶標識。
確認參數配置無誤后,單擊確定。
安裝完成后,單擊確認安裝完畢。
在創建機器組頁面,輸入名稱,單擊下一步。
日志服務支持創建IP地址機器組和用戶自定義標識機器組,詳細參數說明請參見創建IP地址機器組和創建用戶自定義標識機器組。
確認目標機器組已在應用機器組區域,單擊下一步。
重要創建機器組后立刻應用,可能因為連接未生效,導致心跳為FAIL,您可單擊自動重試。如果還未解決,請參見Logtail機器組無心跳進行排查。
在數據源設置頁簽中,設置配置名稱和插件配置,然后單擊下一步。
inputs為數據源配置,必選項。
重要一個inputs中只允許配置一個類型的數據源。
processors為處理配置,用于解析數據??蛇x項,您可以配置一種或多種處理方式。
如果當前的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內容進行正則表達式檢查,檢查結果被存放在名為_response_match_的key中,如果匹配,value為yes;如果不匹配,value為no。
預覽數據及創建索引,然后單擊下一步。
日志服務默認開啟全文索引。您也可以根據采集到的日志,手動創建字段索引,或者單擊自動生成索引,日志服務將自動生成字段索引。更多信息,請參見創建索引。
重要如果您要查詢和分析日志,那么全文索引和字段索引必須至少啟用一種。同時啟用時,以字段索引為準。
問題排查
使用Logtail采集日志后,如果預覽頁面或查詢頁面無數據,您可以參見Logtail采集日志失敗的排查思路進行排查。
執行結果
采集完成后,您可以在日志服務控制臺查看數據,除通過正則表達式解析過的數據外,還包括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字段。如果不存在 |