基于業務日志的運維分析
更新時間 2024-09-02 15:33:18
最近更新時間: 2024-09-02 15:33:18
分享文章
基于業務日志的運維分析
背景
Nginx日志是運維網站的重要信息,用于記錄服務器活動和請求信息,Nginx服務器通常將Nginx日志輸出到本地的文件中。傳統模式下,運維人員查詢日志時,需要登錄服務器,通過操作系統的文件查看工具進行日志查詢,由于日志分布在各個服務器上,且存在命令行操作易出錯、服務器權限等限制因素,存在日志查詢效率低下的問題。本實踐將以Nginx日志為例,介紹日志采集、查詢、分析與告警的過程。
優勢
使用云日志服務,對比傳統的日志模式,可以獲得以下優勢:
- 數據集中存儲,無需登錄多臺服務器查詢,在微服務架構下尤為重要
- 快速檢索日志,告別繁瑣的命令行操作,提升故障處理效率
- 實時檢測異常日志,設置告警,提升故障響應時效
實踐步驟
步驟一:創建日志項目與日志單元
開通云日志服務后,登錄日志服務控制臺,創建日志項目與日志單元。詳細操作步驟請查看創建日志項目與日志單元。
- 創建日志項目:日志項目是用于管理日志服務的資源單元,通常可將某個獨立項目/業務的日志對應至一個日志項目中。
- 創建日志單元:日志單元是進行日志數據的采集、存儲、檢索和分析的基本單元,日志數據以日志單元的方式進行管理,通常可將一個應用/服務下的日志采集至一個日志單元中。此處可為Nginx日志單獨創建一個日志單元。
步驟二:配置日志采集規則
- 登錄。
- 左側點擊【日志接入】菜單,進入日志接入頁面。
- 點擊【新增采集規則】,選擇云主機-文本日志。
- 選擇日志單元。
- 點擊“所屬日志項目”后的目標框,在下拉列表中選擇具體的日志項目,若沒有所需的日志項目,點擊“所屬日志項目”目標框后的“新建”,在彈出的創建日志項目頁面創建新的日志項目。
- 點擊“所屬日志單元”后的目標框,在下拉列表中選擇具體的日志單元,若沒有所需的日志單元,點擊“所屬日志單元”目標框后的“新建”,在彈出的創建日志單元頁面創建新的日志單元。
- 選擇主機組。
- 點擊【新建主機組】
- 輸入主機組名稱。
- 在已開通云主機列表中,選擇您需要采集日志的目標云主機。選中的云主機將打包作為主機組。
- 點擊下一步。
- 安裝采集器。
- Step1:創建終端節點。安裝采集器前,您需要在云主機所在的VPC中創建終端節點,以建立與日志服務的連接通道。
您需要在當前頁面檢查云主機所在的VPC是否已創建終端節點。若終端節點狀態為“未創建”,請點擊頁面中的【創建終端節點】按鈕,并根據頁面指引進行開通。
若終端節點狀態為“已創建”,您可跳過該步驟。 - Step2:安裝采集器。
- 首先獲取您的AK和SK。如何獲取AK/SK?
- 復制頁面中的命令,并使用獲取的AK、SK手動替換 {input_your_ak} 和 {input_your_sk}。填寫值時不需要添加 {}。
- 以root用戶登錄待安裝采集器的云主機,執行上述命令。當顯示“Installed lmtagent successfully”時表示安裝成功。注意:目前僅支持X86架構的Linux天翼云云主機。
- Step3:檢查采集器狀態中。
點擊【檢測】按鈕,稍等片刻后查看采集器狀態,確保所有目標云主機的采集器狀態均為已連通。若多次重試后仍無法連通,請查看常見問題中的“云主機采集器無法連通”進行問題排查。 - 點擊下一步。
- Step1:創建終端節點。安裝采集器前,您需要在云主機所在的VPC中創建終端節點,以建立與日志服務的連接通道。
- 配置采集規則,請按如下說明配置參數。參數配置完成后,點擊下一步。
- 采集規則名稱:輸入采集規則的名稱,在所屬的日志項目內不允許重復。
- 采集路徑:根據日志在服務器上的位置,設置日志目錄和文件名稱。 如本案例的日志路徑為/var/log/nginx/access.log。
- 設置采集黑名單:默認關閉
- 采集策略:選擇“全量”。
- 切割模式:針對原始日志執行分詞的模式,本案例選擇“單行全文”,其它切割模式請查看日志結構化解析。
- 最大目錄深度:保持默認為“5”。
- 索引配置。(可選項)
本案例中,索引配置保持默認即可,您可直接點擊【下一步】。更多詳情請查看索引配置。 - 點擊下一步后,接入成功,可以點擊【返回接入配置列表】查看日志接入,也可單擊【查詢日志】查看該日志單元下的采集日志。
步驟三:對Nginx日志進行查詢
運維人員需要查詢Nginx日志時,可登錄云日志服務控制臺進行查詢操作。在步驟1創建的Nginx日志單元中,點擊日志檢索,進入檢索頁面,輸入對應的查詢語句,并設置查詢時間范圍,即可在頁面下方瀏覽查詢結果。以下為Nginx日志常用查詢案例:
- 查詢狀態碼為400的請求,輸入status:400進行查詢:
- 查詢狀態碼為非200的請求,輸入NOT status:200進行查詢
- 查詢請求時間大于0.5秒的請求,輸入request_time>0.5進行查詢:
- 查詢請求方式為GET且響應狀態為400的請求,輸入request_method:GET and status = 400進行查詢。
步驟四:對Nginx日志進行統計分析
云日志服務支持對Nginx日志進行多維度分析,并以可視化圖表展示結果。
-
使用餅圖統計各請求狀態占比,輸入分析語句:select "status",count(*) as "num" from log group by "status" order by "num":
-
統計前3訪問來源,輸入分析語句:select count(1) as pv , http_referer group by http_referer order by pv desc limit 3