天天看點

輕松搞定實時分析及監控大屏

通過最佳實踐幫助您實作上述案例效果

資料格式如下:

主要字段說明如下:

字段名稱

字段說明

$remote_addr

發送請求的用戶端ip位址

$remote_user

用戶端登入名

$time_local

伺服器本地時間

$request

請求,包括http請求類型+請求url+http協定版本号

$status

服務端傳回狀态碼

$body_bytes_sent

傳回給用戶端的位元組數(不含header)

$http_referer

該請求的來源url

$http_user_agent

發送請求的用戶端資訊,如使用的浏覽器等

真實源資料如下:

2.1 資料采集概述

首先需要将該網站産生的日志實時采集上來才有下一步的加工分析可能。本文采用常見的開源工具:logstash,logstash是一種分布式日志收集架構,非常簡潔強大适合用來做日志資料分析。最終目的是将log資料采集至datahub。

2.2 logstash安裝與配置

配置前須知:

阿裡雲流計算為了友善使用者将更多資料采集進入datahub,提供了針對logstash的datahub output插件。

logstash安裝要求jre 7版本及以上,否則部分工具無法使用。

操作步驟:

步驟2: 通過如下指令解壓即可使用:

步驟4: 配置logstash任務.conf,示例如下:

步驟5: 啟動任務示例如下:

步驟6: 任務啟動成功,如下示意圖:

輕松搞定實時分析及監控大屏

【備注】啟動logstash任務可以在datahub topic目标源建立之後。

2.3 小結

阿裡雲流計算為了友善使用者将更多資料采集進入datahub,提供了針對logstash的datahub output插件。使用logstash,您可以輕松享受到logstash開源社群多達30+種資料源支援(file,syslog,redis,log4j,apache log或nginx log),同時logstash還支援filter對傳輸字段自定義加工等功能。

3.1 資料存儲概述

通過logstash實時采集上來的日志資料存儲在datahub中,通過阿裡雲數加·流計算處理的流資料将存儲在雲資料庫rds中。在使用資料存儲情況先,需要首先來在阿裡雲流計算中注冊其存儲資訊,即可與這些資料源進行互通。

3.2 datahub配置

目前datahub都是定向開通,需要使用者郵件申請。

建立project和topic

項目(project)是datahub資料的基本組織單元,下面可以包含多個topic。

輕松搞定實時分析及監控大屏

步驟2:點選新建立的project操作欄中的檢視,進入project建立topic。

輕松搞定實時分析及監控大屏

步驟3:按照彈出框來填寫相關配置項,具體如下圖所示:

輕松搞定實時分析及監控大屏

配置項完成後,點選建立即可完成datahub具體project下topic的建立。

同樣方式建立coolshell_log_detail、coolshell_log_fact兩個topic(具體topic結構詳見章節3.2 datahub配置)。

如下圖所示:

輕松搞定實時分析及監控大屏

3.3 rds資料表建立

目前阿裡雲數加·streamcompute隻支援rds for mysql資料源。

輕松搞定實時分析及監控大屏

3.4 小結

根據資料結構設計中涉及到的datahub topic以及rds表結構進行建表,為後續案例順利展開提供準入條件。

接下來我們就需要對流資料進行加工和處理,目前阿裡雲數加·流計算支援stream sql文法預檢查、sql線上調試、代碼版本管理等ide開發環境。

4.1 角色授權(僅限首次開通)

此步驟僅适用于首次開通阿裡雲數加·流計算服務,需要給一個名稱為aliyunstreamcomputedefaultrole的系統預設角色給流計算的服務賬号,當且僅當該角色被正确授予後,流計算才能正常地調用相關服務。

步驟1: 首次登入 streamcompute将會有彈出框,點選前往授權。如下圖所示:

輕松搞定實時分析及監控大屏

步驟2: 點選同意授權即可完成将預設角色aliyunstreamcomputedefaultrole授予給流計算 服務賬号。此時即完成了授權的全部内容,如下圖所示:

輕松搞定實時分析及監控大屏

4.2. 注冊datahub資料存儲

資料源在使用前必須經過流計算裡面的注冊過程,注冊相當于在流計算平台中登記相關資料源資訊,友善後續的資料源使用。

步驟1:登入 streamcompute,點選開發,并在左側切換至資料存儲。

輕松搞定實時分析及監控大屏

步驟2: 選擇datahub資料源右鍵 注冊資料源或 點選+,如下圖所示:

輕松搞定實時分析及監控大屏

步驟3: 輸入注冊的資料源資訊,單擊 注冊,如下圖所示:

輕松搞定實時分析及監控大屏

步驟4: 注冊成功的資料源資訊,可以通過點選datahub資料源逐層展開,然後右鍵方式 檢視資料詳情,如下圖所示:

輕松搞定實時分析及監控大屏

備注:細心使用者會發現在topic資料預覽中顯示暫無資料,這是因為本文是模拟一個場景,并沒有真實流資料進入是以logstash并不會進行采集。接下來我們将通過shell指令模拟資料流動。

注冊資訊說明:

project為datahub中具體對應的project為demo

4.3 注冊rds資料存儲

目前rds僅支援mysql引擎的資料庫,其他的資料庫引擎暫時不支援。

步驟1: 登入streamcompute,點選開發,并在左側切換至資料存儲。

輕松搞定實時分析及監控大屏

步驟2:選擇rds資料源并右鍵點選注冊資料源。

輕松搞定實時分析及監控大屏

步驟3:輸入注冊的資料源資訊,點選注冊。

步驟4:逐層展開rds資料源,可檢視到已被注冊在流計算的相關rds資料表。

輕松搞定實時分析及監控大屏

地域:選擇rds地域,建議在購買rds資源的時候選擇華東2或盡可能靠近華東地域。

instance:填寫rds執行個體id。

databasename:填寫需要連接配接的資料庫名稱。

username/password:資料庫登入名稱/密碼。

4.4 建立stream sql任務

處理邏輯1

建立stream sql任務來對流資料進行分析和處理。先來處理coolshell_log_tracker到coolshell_log_detail的處理邏輯。

輕松搞定實時分析及監控大屏

步驟1:登入 streamcompute,點選開發,并建立檔案夾(檔案夾深度最大值為5)。

步驟2:輸入需要建立的檔案夾名稱并選擇存儲位置,點選建立。

輕松搞定實時分析及監控大屏

步驟3:選擇建立的檔案夾右鍵選擇建立任務。

輕松搞定實時分析及監控大屏

步驟4:輸入要建立的任務名稱,任務類型預設為stream sql,點選建立。

輕松搞定實時分析及監控大屏

步驟5: 建立流式源表,輕按兩下需要引用的源表coolshell_log_tracker,并點選表詳情頁中作為輸入表引用。

輕松搞定實時分析及監控大屏
輕松搞定實時分析及監控大屏

步驟6:建立流式結果表,輕按兩下需要引用的datahub topic:coolshell_log_detai,并點選表詳情頁中作為結果表引用。

步驟7:編寫stream sql處理邏輯。

編寫完成的stream sql任務如下圖所示。

輕松搞定實時分析及監控大屏

調試stream sql任務

資料開發為使用者提供了一套模拟的運作環境,在該環境中運作stream sql可以實作和生産完全隔離和支援構造測試資料。

步驟1: 編寫好stream sql任務後,點選 調試 對該任務進行調試。

輕松搞定實時分析及監控大屏

步驟2: 構造調試資料,首先下載下傳調試模闆至本地進行構造調試資料(隻支援csv)。

步驟3: 本地構造好資料後,選擇調試資料進行調試stream sql任務,點選 調試。

輕松搞定實時分析及監控大屏

步驟4: 檢視調試結果,如下圖:

輕松搞定實時分析及監控大屏

驗證結果正确無誤後,可右鍵點選調試結果将其下載下傳到本地(csv檔案)用于下一處理邏輯的調試資料。

處理邏輯2

接下來處理coolshell_log_detail到coolshell_log_fact的處理邏輯。如下示意圖:

輕松搞定實時分析及監控大屏

步驟1: 同樣在上述檔案目錄下建立stream sql任務,點選建立。

輕松搞定實時分析及監控大屏

步驟2: 建立流式源表,輕按兩下需要引用的源表coolshell_log_detail,并點選表詳情頁中作為輸入表引用。

輕松搞定實時分析及監控大屏

步驟3: 建立流式結果表,輕按兩下需要引用的datahub topic:coolshell_log_fact,并點選表詳情頁中作為結果表引用。

步驟4: 編寫流式資料處理邏輯,sql如下:

步驟5:同上的處理邏輯,選擇上一環節中的調試資料,進行本次邏輯的調試。

輕松搞定實時分析及監控大屏

如調試結果所示,确認是否為自己業務所需要的正确結果。

處理邏輯3和處理邏輯4

同樣安裝上述步驟下來配置adm_refer_info到adm_user_measures的處理邏輯。主要sql如下:(統一引用輸入資料源為coolshell_log_fact,輸出結果資料源為rds表:adm_refer_info和adm_user_measures)

輕松搞定實時分析及監控大屏

---adm_refer_info中的處理邏輯---

--adm_user_measures中的處理邏輯---

附錄:adm_region_measures和flyingline_coordinates處理邏輯

4.5. 上線stream sql任務

當您完成開發、調試,經過驗證stream sql正确無誤之後,可将該任務上線到生産系統中。

步驟1: 點選上線 即可将上述兩個stream sql任務依次一鍵釋出至生産系統。

輕松搞定實時分析及監控大屏

步驟2: 選擇coolshell_log_detail任務,點選上線。

輕松搞定實時分析及監控大屏

步驟3: 選擇coolshell_log_fact任務,點選上線。

輕松搞定實時分析及監控大屏

步驟4: 經過上述步驟已将任務上線至生産環境,但該任務處于未啟動狀态,需要進入運維中依次啟動上述任務。

輕松搞定實時分析及監控大屏

步驟5:點選啟動按鈕,在啟動coolshell_log_detail任務時彈出框中選擇 指定讀取資料時間 一定要小于實時采集任務的啟動時間。點選按以上配置啟動。

輕松搞定實時分析及監控大屏

任務處于啟動中的狀态。具體如下圖所示:

輕松搞定實時分析及監控大屏

當任務正常啟動後期狀态如下圖所示:

輕松搞定實時分析及監控大屏

也可點選操作欄中的檢視,進行任務監控儀表盤。

輕松搞定實時分析及監控大屏
輕松搞定實時分析及監控大屏

步驟6:以同樣的方式啟動coolshell_log_fact任務,啟動時間選擇到上述任務正常啟動時間前即可。最終配置的工作流如下圖:

輕松搞定實時分析及監控大屏

從圖中可以看出資料表與流式任務之間的處理邏輯和上下遊關系。

步驟7: 以同樣的方式将adm_user_measures和adm_refer_info兩個流式任務上線。

4.6 确認結果輸出

當所有流式任務跑起來後,需要确認datahub topic/rds結果表中的資料輸出情況。

步驟1: 首先确認datahub結果情況,可通過點選進入某topic然後進行資料抽樣。

輕松搞定實時分析及監控大屏
輕松搞定實時分析及監控大屏

步驟2: 其次确認rds表資料寫入情況,登入dms for rds,如下圖:

輕松搞定實時分析及監控大屏

4.7 小結

本章主要針對采集上來的日志資料進行流式任務處理和分析,并根據資料結果鍊路圖中邏輯關系進行了一定程度的資料處理,最終将需要在大屏上展示的資料寫入雲資料rds中。在阿裡雲數加·流計算中提供與生産完全隔離的調試環境,當任務調試無誤後在進行釋出至生産系統中。

相較于傳統圖表與資料儀表盤(如通過離線日志分析的結果展現案例),如今的資料可視化更生動并可即時呈現隐藏在瞬息萬變且龐雜資料背後的業務洞察。

輕松搞定實時分析及監控大屏

5.1 建立rds資料源

經過資料實時采集、流式資料的處理,将結果資料寫入rds,為了較好的展現并洞察業務資料,我們需要在datav中建立資料源來源。

輕松搞定實時分析及監控大屏

步驟2:點選 datav資料可視化,進入datav開發頁面。

輕松搞定實時分析及監控大屏

步驟3:在頁面中找到資料源欄,點選+進行配置資料源。

輕松搞定實時分析及監控大屏

步驟4: 選擇類型為雲資料庫rds版,并配置要連接配接的資料庫資訊,點選測試,測試成功後點選确定儲存配置資訊即可。

輕松搞定實時分析及監控大屏

5.2 建立datav大屏

經過資料實時采集、流式資料的處理,将結果資料寫入rds,為了較好的展現并洞察coolshell網站的業務資料,我們需要在datav中建立資料源來源。

步驟1: 在項目欄中點選 建立 +,進行建立大屏項目。

步驟2: 進入模闆頁,可以選擇具體子產品進行,也可以選擇空白頁面進行建立。本案例選擇第一個模闆進行建構coolshell網站營運資料分析的大屏。

輕松搞定實時分析及監控大屏

步驟3:點選圖表左上角删除按鈕進行删除不需要的圖表,并調整布局如下圖所示:

輕松搞定實時分析及監控大屏

步驟4:需要修改模闆中的元素。首先點選【中國公路物流指數】,在右側中修改其顯示内容為【coolshell.cn營運指數】,同樣修改其他顯示字樣如下圖所示:

輕松搞定實時分析及監控大屏

步驟5:配置日流量量資料。點選日流量并在右側切換至面闆資料tab。

輕松搞定實時分析及監控大屏

步驟6:選擇資料源類型為上一章節配置的資料源。

輕松搞定實時分析及監控大屏

步驟7:編輯日浏覽量翻牌器的sql如下:

輕松搞定實時分析及監控大屏

步驟8:編輯日請求來源翻牌器的sql如下,并勾選自動更新。

輕松搞定實時分析及監控大屏

步驟9:删除裝置pv/uv趨勢的現有柱狀圖替換為雙軸折線圖,并配置資料如下(勾選底部 自動更新)。

輕松搞定實時分析及監控大屏

步驟10: 删除請求來源占比的現有餅圖替換為【名額-輪播清單】配置資料如下(勾選底部自動更新)。

輕松搞定實時分析及監控大屏

步驟11: 其中地圖暫不進行設定(備注:有興趣朋友可以根據logstash的geoip位址查詢歸類研究下pv或者使用者的地域分布)。

步驟12:點選有上角預覽 進行檢視配置後的效果。

輕松搞定實時分析及監控大屏

預覽效果如下所示:

輕松搞定實時分析及監控大屏

5.3 小結

如果您已經熟悉使用整套解決方案,可以根據個性化定制如下大屏并對接rds資料。

輕松搞定實時分析及監控大屏

常見問題

q:在使用logstash向datahub實時推送資料時發現報time out。

q:修改stream sql後也進行了上線,但是并沒有生效。

a :一般情況下,點選上線後需要在【運維】中進行暫停任務->停止任務->啟動任務,新代碼才能才生效。

q:配置了資料可視化datav大屏後,在預覽情況下發現資料不自動重新整理。

a :需要在大屏配置中勾選資料底部的自動更新,并根據需求填寫隔多少秒自動重新整理一次資料。