《走近雲計算》閱讀筆記16--.基於Linux的雲監控系統的數據監測的實現

數據監測的分爲3個部分:

1.數據採集:DataCollection數據採集器

(1)CPU數據採集:通過讀取/proc目錄下的stat文件內容。

  需要以cpu開頭的第一行的數據。

   fileCPU = new FileInputStream("/proc/stat");
   DataInputStream dataCPU = new DataInputStream(fileCPU);
   CPURate = dataCPU.readLine();
   String[] CPUString = CPURate.replaceAll(" "," ").split("\\s");
   String user = CPUString[2];
   String nice = CPUString[3];
   String system = CPUString[4];
   String idle = CPUString[5];
   //再用這些數據計算成CPU的使用率

(2)內存數據的採集:/proc/meminfo

需要第四行和第五行數據

  FileInputStream fileMem;
   fileMem = new FileInputStream("/proc/meminfo");  
   DataInputStream dataMem = new DataInputStream(fileMem);
   for(int i =0;i<3;i++){
     dataMem.readLine();}  
   memTotal= dataMem.readLine().replaceAll("[^0-9]","");
   memFree = dataMem.readLine().replaceAll("[^0-9]","");

(3)由於CPU利用率和內存利用率的數據是實時變化的,還可以定時地採集數據,通過訓話,設置該線程的睡眠時間。

2.數據傳輸

(1)各個節點服務器將採集的的數據傳輸給SocketClient對象

new SocketClient(CPURate+" "+memRate).send();

用send()函數將數據發送到服務器端

(2)服務器端等待節點計算機的連接,如果獲得連接,創建新的線程接收數據

new ServerThread(Socket sock)

(3)調用SaveData類的save()將數據保存到數據庫

(4)由於節點信息是定時採集和發送的,因此數據庫中的數據也是動態變化的

3.數據實時顯示

利用ExtJs技術來實現數據的實時顯示。

(1)通過設置監控系統的閾值,如果超過閾值會顯示節點的CPU使用率,監測界面上就會出現警告信息。

(2)動態刷新數據,用ExtJs提供了定時器setInterval(loaddata,'2000‘)。

        loaddata是一個函數名,2000是時間間隔,2s

function loaddata(){ form.getForm().load({url:'datacollection.jsp?noden='+nodenum'});}

4.雲監控系統設備參數採集的實現

集羣中的節點計算機數量是不固定的,如果業務量較大,需要增加節點。這時,就要在設備配置功能上進行結點的配置。

設備參數採集的方法:

(1)根據節點機的具體情況動態配置

(2)通過人工的方法,在掛載該節點之前,手工配置到系統中。

        當監控的集羣數量較少時,採用手工的配置方法,將參數錄入數據庫中。

       點擊save保存入庫,點擊Activate將設備激活。

5.雲控制系統節點控制的實現

控制遠程節點計算機的啓動,停止,節點計算機收到命令後,啓動相關命令實現管理。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章