本文介紹使用SLS對MSFE日志進行收集、監控和報警。
背景信息
MSFE是多活流量統一入口,采用多臺ECS集群化部署,一臺ECS部署一個Tengine進程。您可以使用日志服務(SLS),對每臺ECS上的Tengine日志進行統一收集和存放,能夠有效追蹤因Tengine日志滾動覆蓋導致的問題。同時便于對日志搜索查詢,以及基于日志進行問題排查和數據分析。同時,您還可以通過SLS配置Error日志報警規則,以便在Tengine自身或后端服務器出現問題能夠及時發現并處理,從而規避風險。
接入層日志
Tengine進程會打印tengine-access_log和tengine-error_log日志。日志采用滾動覆蓋的方式,滾動覆蓋保留的文件數為7,全部日志文件最大會占用21 G磁盤空間。
- 日志路徑:/home/admin/tengine/logs
- 日志文件名:tengine-access_log和tengine-error_log
步驟一:接入前準備
- 登錄日志服務控制臺。
- 創建項目(Project)。
- 創建日志庫(Logstore)。創建Project完成后,系統會提示您創建一個Logstore。
在創建Logstore面板中,按照如下說明配置參數,其他參數均可保持默認配置。這里創建的Project名稱為msha-hz-demo,創建的Logstore名稱為access。
參數 描述 Logstore名稱 Logstore的名稱,在其所屬Project內必須唯一。創建Logstore成功后,無法更改其名稱。 Shard數目 日志服務使用Shard讀寫數據。 一個Shard提供的寫入能力為5 MB/s、500次/s,讀取能力為10 MB/s、100次/s。如果一個Shard就能滿足您的業務需求,您可配置Shard數目為1。
自動分裂Shard 開啟自動分裂功能后,如果您寫入的數據量超過已有Shard服務能力,日志服務會自動根據數據量增加Shard數量。 如果您確保配置的Shard數量已滿足業務需求,可關閉自動分裂Shard開關。
步驟二:配置access_log日志收集
- 單擊日志庫access左側的圖標,展開該日志庫。然后單擊數據接入左側的圖標并展開。
- 將鼠標放置logtail配置區域,然后單擊logtail配置右側的圖標,添加數據接入。說明 通過Logtail配置頁面安裝Logtail日志收集插件以及配置要收集的日志路徑等,Logtail日志插件信息請參見Logtail日志插件數據采集。
- 在彈出的快速數據接入面板,單擊Nginx-文本日志。
- 在Nginx頁面單擊ECS機器頁簽,在實例選取方式區域選擇手動選擇實例或者指定實例資源組,然后選擇需要進行日志收集的ECS實例,單擊左下角的立即執行,然后單擊右下角的確定安裝完畢。
- 在第②步中輸入機器組名稱,然后單擊下一步,進入第③步機器組配置頁面,在我的機器組區域,選擇源機器組,然后單擊下一步。
- 在第④步Logtail配置頁簽,設置相關參數,完成配置。
配置日志access_log,其中日志格式配置如下:
log_format proxyformat "$status|$upstream_status|$remote_addr|$upstream_addr|$request_time_usec|$upstream_response_time|$time_local|$request_method|$scheme://$log_host:$server_port$request_uri|$body_bytes_sent|$http_referer|$http_user_agent|$http_x_forwarded_for|$http_accept_language|$connection_requests|$eagleeye_traceid|$cell|$ups|$ufe_code|$local_cell|$cell_key|$cell_router_id|$router_rule|$local|$https_host_mode|$https_redirect_mode";
日志樣例為:
200|200|127.0.xx.xx|115.29.xx.xx:80|16905|0.017|09/Jul/2021:19:49:29 +0800|GET|http://47.99.xx.xx:80/get?code=200|32|-|curl/7.29.0|-|- |1|c0a80964162583136942xxxxxe6637|center|47_99_xx_xx@get_center_default|A1|1|||5bec72a6-8e0c-4ad1-9846-87xxxxxbd034_unitcell_type|default|0|0_http
- 返回日志庫頁面,單擊圖標,查看access_log日志數據。
access_log日志數據詳情,請參見查詢和分析日志數據。
步驟三:配置error_log日志收集
配置error_log日志收集的步驟與配置access_log日志收集的步驟類似,因此請參見步驟二:配置access_log日志收集完成error_log日志的配置與收集。配置error_log日志過程中需注意以下幾點:
- 建議選擇與access_log日志不同的Logstore對error_log日志進行logtail配置,以便進行獨立的error_log報警配置。
- 由于error_log日志規則不是結構化的,因此在第④步Logtail配置頁簽設置相關參數時,其中模式參數選擇極簡模式即可,配置完成后,返回日志庫頁面,單擊圖標,查看error_log日志數據。error_log日志數據詳情,請參見查詢和分析日志數據。
步驟四:配置error_log日志報警
若出現error_log日志,說明Tengine自身或后端服務器存在報錯。建議您配置error_log報警規則,以便快速發現和處理報錯問題。