分布式監控系統開發【day37】:需求討論(一)

本節內容

  1. 為什么要做監控??
  2. 常用監控系統設計討論
  3. 監控需求討論
  4. 如何實現監控服務器的水平擴展?
  5. 監控系統架構設計

一、為什么要做監控??

  1. 熟悉IT監控系統的設計原理
  2. 開發一個簡版的類Zabbix監控系統
  3. 掌握自動化開發項目的程序設計思路及架構解藕原則

二、常用監控系統設計討論

成熟的監控

  1. Zabbix
  2. Nagios/cacti
  3. ganglia
  4. openfalcon go

三、監控系統需求討論

1.可監控常用系統服務、應用、網絡設備等

網絡層

  1. 網絡質量
  2. 流量,丟包率、帶寬

系統層

  1. cpu
  2. disk
  3. ram
  4. load
  5. port

應用層

  1. mysql 連接數
  2. nginx 并發數
  3. cdn 命中率
  4. 頁面是否被篡改

業務邏輯層

  1. 每小時訂單數
  2. 當前在線用戶

2.一臺主機上可監控多個不同服務、不同服務的監控間隔可不同

服務A:

  1. cpu 30
  2. disk 90
  3. load 120

服務B:

  1. cpu 45
  2. ram 60
  3. mysql 20

3.同一個服務在不同主機上的監控間隔、報警閾值可不同

報警閥值:

  1. 重要的服務 cpu使用率超過80%就報警,要抄送給CTO
  2. 不重要重要的服務 cpu使用率超過100%報警,給運維工程師

4.可以批量的給一批主機添加、刪除、修改要監控的服務

監控模板

linuxservices

  1. cpu
  2. disk
  3. memory

5.告警級別:

  • 不同的服務 因為業務重要程度不同,如果出了問題可以設置不同的報警級別

    1. 重要的服務,cup使用率打到80%,就報警
    2. 普通的服務,cup使用百分之98%,報警
  • 可以指定特定的服務或告警級別的事件通知給特定的用戶

    1. 重要的服務,抄送給CTO
    2. 不重要的只發送給運維工程師
  • 告警的升級設定

  • 發送給底層運維工程師沒處理,就發送給運維經理
  • 再過半個小時沒處理,就發送給cto
  • 報警合并

? ? ? ? ? ? ? ? ? ?有一個報警池,有一個腳本對池的分析

6.歷史數據 的存儲和優化

  1. 實現用最少的空間占用量存儲最多的有效數據
  2. 如何做到1s中之內取出一臺主機上所有服務的5年的監控數據?

監控數據的處理

1、存下來,趨勢圖
大數據分析 ,視角越大,越失真

  

?

? 

時間越長,越失真

2、報警處理

7. 數據可視化,如何做出簡潔美觀的用戶界面?

8.如何實現單機支持5000+機器監控需求?

  1. 列式存儲
  2. redis 支持集群,數據量大加機器就可以

9.采取何種通信方式?主動、被動?

1、server 主動 監控 客戶端

  1. 好處:不用裝客戶端,使用所有的網絡設備,snmp,配置簡單
  2. 壞處:服務器壓力大,不適合大型網絡環境,不能監控復雜的指標

2、server 被動 接收 客戶端

  1. 好處:大型網絡環境、監控復雜的指標、擴展能力強
  2. 壞處:裝客戶端、網絡設備不適用、維護起來相對復雜一點

3、主流的:混合式

1、客戶端知道監控什么指標?
客戶端主動去問服務器我要監控什么

2、客戶端掃描本地所有服務,全部匯報給服務器
openfalcon把機器上所有能檢測到的都抓上[2014年自動檢測到(支持一千多項)]

四、如何實現監控服務器的水平擴展?

1、采用什么架構?

?Mysql

  1. 數據量太大,mysql超過1千萬條查詢起來就特別慢,
  2. 我在看趨勢圖時前端要查好幾分鐘,為什么zabbix的那么快?
  3. 他們是怎么做的?zabbix優秀是在2000-3000臺還可以,要是上萬臺就會太慢
  4. 不要把你的監控數據存到mysql,因為會存在很多的問題

?主動通信? Snmp,wget…

server 主動 監控 客戶端

  1. 好處:不用裝客戶端,使用所有的網絡設備,snmp,配置簡單
  2. 壞處:服務器壓力大,不適合大型網絡環境,不能監控復雜的指標

?被動通信?Agent ---how to communicate with the monitor server

server 被動 接收 客戶端

  1. 好處:大型網絡環境、監控復雜的指標、擴展能力強
  2. 壞處:裝客戶端、網絡設備不適用、維護起來相對復雜一點

總結:主流的的還是混合模式好

?Socket server –>? Sockect client

不可以,很多坑

?能否用現成的c/s架構? Rabbit mq, redis 訂閱發布, http ?

2、采用HTTP好處

1.接口設計簡單

2.容易水平擴展做分布式

3.Socket穩定成熟,省去較多的通信維護精力

3、Http特性:

1.短連接

2.無狀態

3.安全認證

4.被動通信

五、監控系統架構設計

?

轉載于:https://www.cnblogs.com/luoahong/p/7223580.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/250866.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/250866.shtml
英文地址,請注明出處:http://en.pswp.cn/news/250866.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

iOS:練習題中如何用技術去實現一個連線題

一、介紹 本人做的app涉及的是教育行業,所以關于練習題的開發肯定是家常便飯。例如,選擇題、填空題、連線題、判斷題等,每一種題型都需要技術去實現,沒啥多大難度,這里呢,就給出實現連線題的核心代碼吧。過…

18 Context與組合的應用場景與使用問題

contextType 指定context類型為創建的上下文,此時不需要用Consumer組件包裹,使用this.context即可訪問會向上找最近的上下文并取值最適合的場景:雜亂無章的組件都需要同一些數據;若單純為了不層層傳遞屬性,使用contex…

http --- 共享加密(對稱加密)的幾個概念

使用互聯網進行數據傳輸時,可能會產生以下四個問題: 1. 竊聽: A向B發送的消息,有可能在傳輸過程中被X竊聽到 2. 假冒: A收到來自B的消息有可能是X冒充的 3. 篡改: A確實收到來自B的消息,但是該消息有可能被X篡改了 4. 事后否認:B確實收到了來自A的消息,但是A是惡意用戶,當A像B…

213. House Robber II 首尾相同的偷竊問題

[抄題]: You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed. All houses at this place are arranged in a circle. That means the first house is the neighbor of…

原型鏈

<!DOCTYPE html><html><head lang"en"> <meta charset"UTF-8"> <title></title></head><body><script> /* 原型中的默認屬性 原型鏈&#xff1a;當調用構造函數&#xff08;Fn()&a…

http --- 公開密鑰加密(非對稱加密)的幾個概念

公開密鑰加密: 公鑰加密,私鑰解密 公開密鑰加密的處理流程: 1. A準備通過互聯網向B發送數據 2. B生成公鑰P和私鑰S 3. B將P發送給A 4. A使用P進行加密,并將密文通過互聯網發送給B 5. B使用S進行解密得到數據公鑰加密的更具體的栗子: 1.B首先準備好公鑰P和私鑰S 2.B將公鑰發布…

19、20 Context API

安裝React Dev Tool Context對象.displayName 使用別名 不使用別名 React.createContext 創建指定的Context對象組件會找離自己最近的Provider&#xff0c;獲取其value變量名都叫value的情況&#xff0c;就近取AContext變量名有所區分&#xff0c;兩個value都可以獲取可以…

01-spring配置詳解

1 bean元素 <!--將User對象交給spring容器進行管理 --><!-- Bean元素:使用該元素描述需要spring容器管理的對象class屬性:被管理對象的完整類名.name屬性:給被管理的對象起個名字.獲得對象時根據該名稱獲得對象. 可以重復.可以使用特殊字符.id屬性: 與name屬性一模一…

第八模塊:算法設計模式、企業應用 第2章 企業應用工具學習

第八模塊&#xff1a;算法&設計模式、企業應用 第2章 企業應用工具學習轉載于:https://www.cnblogs.com/tqtl911/p/9131614.html

http --- 混合加密的具體過程

混合加密: 共享加密存在一個“共享密鑰”無法安全告知服務端的問題.公開加密存在,加密、解密速度慢的問題.混合加密則同時使用了2種加密技術,具體過程如下: 1. B提前生成公鑰P和私鑰S,并將P發布到網上 2. A想(通過互聯網)像B發送數據 3. A從互聯網上獲取B的公鑰P,并使用P對共享…

Vite+Vue3頁面空白、圖標不顯示問題解決

頁面空白問題 由于項目部署在子文件夾下&#xff0c;因此需要配置vite.config.js const config {base: ./, }el-icon圖標不顯示、打包時mkdir無權限 在控制臺Network看字體圖標的請求&#xff0c;發現地址多了_assets&#xff0c;本以為需要重新配置publicDir&#xff0c;后…

在HTML打開已安裝的App,未安裝跳轉到對應的下載鏈接

借鑒 HTML中判斷手機是否安裝某APP&#xff0c;跳轉或下載該應用 function lookApp () {var ua navigator.userAgentvar isAndroid /(Android);?[\s/]([\d.])?/.test(ua)var isIpad /(iPad).*OS\s([\d_])/.test(ua)var isIpod /(iPod)(.*OS\s([\d_]))?/.test(ua)var is…

javascript --- 自定義數組的反序函數

想寫一個自定義的_reverse函數,其作用是將傳入的數組進行部分反序. 效果如下: 輸入[1,2,3,4,5,6,7,8,9] 第一個將2~4個位置的數字反序 第二個將2~6個位置的數字反序. // js function _reverse(arr, s, e) {arr arr.join().slice(0,s) arr.join().slice(s,e).split().revers…

21 Fragment和短語法應用

React.Fragment jsx語法&#xff0c;相當于document.createDocumentFragment()創建文檔碎片容器&#xff0c;優化渲染解決了沒有根節點的問題<></>這種短語法也會聲明React.Fragment但短語法不支持keyReact.Fragment只支持key屬性&#xff0c;其余屬性如事件等不支…

201521123004《軟件工程》個人閱讀作業1

task1Task2: 201521123004 林藝如 博客&#xff1a;https://www.cnblogs.com/dabaolyr/ 碼云&#xff1a;https://gitee.com/dabao_lyr Task3&#xff1a;完成博客-閱讀與思考 閱讀參考材料&#xff0c;并回答下面幾個問題&#xff1a; &#xff08;1&#xff09;回想一下你初入…

在sql當中為了讓數據做緩存做with as的操作

今天看別人的代碼&#xff0c;突然發現之前理解的sql的with as的用法有新的理解。 之前理解的with as只是想著做單表的union all 操作時才使用&#xff0c;今天發現在可以使用逗號做分割&#xff0c;做緩存不同的表數據。 下面的例子如下&#xff1a; WITH t1 AS (SELECT file_…

javascript --- 從數組中,找出比給定元素大一丁點的元素

目標如下: 從數組[1,3,2,4,5,6,7]中找到比第1個位置大一丁點的元素 function _findIndex(arr, j){let k -1;let key arr[j];for(let i j; i< arr.length; i) {if(arr[i] > key) {if( k ! -1){if(arr[i] < arr[k]) {k i;}} else {k i;}}}return k } let arr [1,…

22 React高階組件

搭建服務端 yarn add express yarn add nodemon 在server目錄下 npm init -y // 增加dev腳本"scripts": {"dev": "nodemon ./index.js"},引入 git HOC High Order Component 高階組件&#xff0c;是組件的抽象HOC不是React提供的API&#xf…

PAT (Advanced Level) 1140~1143:1140模擬 1141模擬 1142暴力 1143 BST+LCA

1140 Look-and-say Sequence&#xff08;20 分&#xff09; 題意&#xff1a;觀察序列D, D1, D111, D113, D11231, D112213111, ...&#xff0c;顯然后一個串是對前一個串每一小段連續相同的字母及其個數的描述。例如&#xff0c;D112213111是對D11231的描述&#xff0c;原因是…

AngularJS:表達式

ylbtech-AngularJS&#xff1a;表達式1.返回頂部 1、AngularJS 表達式 AngularJS 使用 表達式 把數據綁定到 HTML。 AngularJS 表達式 AngularJS 表達式寫在雙大括號內&#xff1a;{{ expression }}。 AngularJS 表達式把數據綁定到 HTML&#xff0c;這與 ng-bind 指令有異曲同…