當前經過微信公衆號開展氣象服務是一種很是重要的方式。微信除了做爲全民社交APP以外,還有訂閱號、服務號、小程序等多種媒體傳播方式,公衆氣象服務已經愈來愈多的藉助微信平臺進行二次開發並對外提供服務。今天給你們分享一個針對微信公衆號後臺數據監控的氣象業務系統,該系統功能是實時對微信端展現的氣象數據、產品以及服務器進行監控和報警,經過爲運維管理員及時發送報警短信的方式,快速定位數據缺失種類並採起及時有效措施,從而解決微信前端數據不正常或者更新不及時問題。前端
一、 設計目標json
對氣象北京的微信公衆號相關數據流程進行監控,肯定從數據分發、接收、處理、接口調用等各個環節的數據狀態和程序狀態,提供關於數據狀態和程序狀態的顯示,對異常狀態進行報警。從而快速發現、定位和解決流程中的問題。小程序
二、 設計原則瀏覽器
標準化:本系統採用的技術架構均遵循網絡協議和傳輸標準的要求,相關開源及原創技術均符合國際技術組織條款規範。服務器
可擴展性:因爲數據的種類會不斷髮展,使用人數將也將擴大,只要橫向擴展增長服務器臺數,不用添加其它附加設備,以保證用戶的原投資被利用。微信
可用性和可靠性:選用NGIX做爲負載均衡器,採用了Tomcat做爲Web應用容器,操做系統採用CenOS7.5,從而減小了其它因素形成的故障。網絡
易用性:該系統使用界面良好,用戶無需安裝客戶端軟件,只需經過瀏覽器就可進行實時操做,同時系統架構設計優良,能夠很方便進行系統升級。架構
實時性:該系統支持負載均衡技術,及時響應多人實時併發操做。併發
高效性:採用消息中間件等技術,實時監控能快速顯示。負載均衡
正確性:數據的處理狀態等能正確的採集、顯示。
氣象北京微信後臺數據的監控系統分爲兩部分功能:第一是各個系統日誌的採集和存取;第二是各類異常狀況的判斷,以及對監控結果的展現和通知。如圖所示:
(1)經過採集程序獲取日誌文件的更新內容,將日誌存儲在influxdb中。
(2)客戶端經過Web應用服務器,查詢來自於influexdb中的日誌信息,判斷出問題的時間。
在微信服務器後臺部署日誌採集程序,按照RESTful方式採集數據接口日誌,採用FTP方式傳輸的文件直接採集FTP的日誌文件。經過日誌搜索以及返回值類型判斷數據總量並定位數據狀態,再經過前端顯示和報警短信發送完成監控操做。RESTful方式示例:
請求地址:
操做 |
Request |
協議 |
HTTP |
方式 |
RESTtFul |
URL全路徑(將數據存入ElastSearch) |
http://10.0.0.1:8888/restApi/saveEs |
請求參數:
請求方式 |
必選 |
數據類型 |
長度 |
備註 |
json |
Y |
JSONObject |
∞ |
Body請求 |
返回數據:
序號 |
返回值 |
中文名 |
備註 |
1 |
status |
請求狀態碼 |
0請求成功,1 請求失敗 |
2 |
Msg |
信息 |
success 請求成功,lose 請求失敗 |
搜索日誌操做
請求地址:
操做 |
Request |
協議 |
HTTP |
方式 |
Post |
URL全路徑(查詢該時間段內的全部日誌) |
http://10.0.0.1:8888/es/queryEsFileNameTrue?startTime=YYYY-MM-ddHH:mm&endTime=YYYY-MM-dd HH:mm |
URL全路徑(查詢該時間段內該系統的全部日誌) |
http://10.0.0.1:8888/es/queryEsFileNameTrue?startTime=YYYY-MM-ddHH:mm&endTime=YYYY-MM-dd HH:mm&types=XXXXXX |
URL全路徑(查詢該時間段內該系統內該資料類型下的全部日誌) |
http://10.0.0.1:8888/es/queryEsFileNameTrue?startTime=YYYY-MM-ddHH:mm&endTime=YYYY-MM-dd HH:mm&types=XXXXXX&dataType=XXXXXX |
請求參數:
序號 |
參數名 |
中文名稱 |
必選 |
數據類型 |
長度 |
備註 |
1 |
startTime |
第一個參數 |
Y |
String |
15 |
YYYY-MM-dd HH:mm |
2 |
endTime |
第二個參數 |
Y |
String |
15 |
YYYY-MM-dd HH:mm |
3 |
types |
第三個參數 |
N |
String |
系統標識 |
|
4 |
dataType |
第四個參數 |
N |
String |
資料編碼 |
返回數據:
序號 |
返回值 |
中文名 |
備註 |
1 |
status |
請求狀態碼 |
0請求成功,1 請求失敗 |
2 |
Msg |
信息 |
success 請求成功,lose 請求失敗 |
3 |
Data |
數據 |
Json |
請求示例(查詢該時間段內的類型總數):
http://10.0.0.1:8888/es/queryEsFileNameTrue?startTime=2017-12-0500:00&endTime=2018-12-05 23:59
請求示例(查詢該時間段內該系統的類型總數):
Http://10.0.0.1:8888/es/queryEsFileNameTrue?types=CCCC.SYSTEM.DATA.DATAFLOW&startTime=2017-12-0500:00&endTime=2018-12-05 23:59請求示例(查詢該時間段內該系統內該資料類型下的類型總數):
Http://10.224.96.133:8888/es/queryEsFileNameTrue?types=CCCC.SYSTEM.DATA.DATAFLOW&dataType=E.0015.0001.S002&startTime=2017-12-05 00:00&endTime=2018-12-05 23:59
目前該系統已上線一年的時間,運行平穩,報警及時,當數據缺失或者沒有及時更新時會發送報警短信,運維保障人員接收到短信後第一時間進行處理,從而保證氣象服務質量,同時也讓微信端的監控實現自動化,節省了人力成本。
若是您以爲這篇文章有用或者對你有所啓發,歡迎轉發。此外,爲了和讀者朋友深刻交流,我組建了「編外氣象人」讀者交流羣,有興趣能夠掃碼做者微信,加入讀者交流羣一塊兒暢聊氣象。先到先得,羣滿爲止!
本文分享自微信公衆號 - 編外氣象人(OutWeatherMan)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。