方案討論

我們這邊做的是一個監控工具,主要監控程控交換機的一些狀態輸出信息,如告警、日誌、MML(man manchine language)等數據,對這些數據進行分析,然後迴應一些命令,迴應一般用telnet協議

2011-3-26 21:53:17 rocket
這塊的日誌數據量會很大,可能幾秒就會產生十幾個20M的日誌記錄文件

2011-3-26 21:53:47 rocket
要對日誌信息作分析,會用到正則表達式的工具

2011-3-26 21:55:29 rocket
MML的格式: [命令][對象]:[參數名1=參數值1][參數名2=參數值2]...[參數名n=參數值n]

2011-3-26 21:56:11
telnet是自己實現嗎? 

2011-3-26 21:56:12 rocket
幾個模塊需要同時工作

2011-3-26 21:56:18 rocket
嗯 沒錯

2011-3-26 21:57:13 rocket
telnet協議比較簡單,不過我這邊還沒有好的文檔,《tcp-ip協議詳解》裏應該會有

2011-3-26 21:57:49 rocket
以前有本,搬家時不小心丟了

2011-3-26 21:58:53 rocket
哦 今天還是地球關燈一小時

2011-3-26 21:58:58
分析是在服務器做,還是客戶端 

2011-3-26 21:59:17
[表情] 

2011-3-26 21:59:38
數據的分析 

2011-3-26 21:59:52 rocket
客戶端 服務器只是輸出數據,然後可以接受一些命令

2011-3-26 22:00:12 rocket
對 這塊的數據分析是個大頭

2011-3-26 22:00:50
分析放在哪裏做呢? 

2011-3-26 22:01:00 rocket
客戶端啊

2011-3-26 22:01:27 rocket
讀取日誌文件信息,告警信息,還有其他的一些

2011-3-26 22:01:55 rocket
分析可以使用正則表達式匹配

2011-3-26 22:02:33 rocket
我個人的想法是將這些正則表達式放在配置文件中,我想這個是可以肯定的

2011-3-26 22:03:13 rocket
這樣可以隨需求的變化更改

2011-3-26 22:04:14
對啊,這樣比較方便 

2011-3-26 22:04:28 rocket
如果是這樣的話關鍵就是如何組織這些正則表達式,把它放在一個比較方便的地方,一個好的模型的

2011-3-26 22:05:16 rocket
可以肯定的是這裏要用的狀態機,當然正則表達式本身就是個狀態機

2011-3-26 22:05:48
不同的格式應該有個編號吧 

2011-3-26 22:05:54 rocket
數據讀取後通過正則表達式進行分析,分類的

2011-3-26 22:06:00 rocket
嗯 應該有個版本號

2011-3-26 22:06:15 rocket
編號+版本號

2011-3-26 22:07:28 rocket
編號用於格式,版本號用於升級

2011-3-26 22:08:34 rocket
所以分析功能要作爲一個單獨的強模塊

2011-3-26 22:10:02 rocket
然後日誌、告警、MML再加個telnet幾個模塊,之間相對獨立,但又有存在交互和調用

2011-3-26 22:10:30 rocket
所以需要一個管理類

2011-3-26 22:12:02 rocket
你原先做的服務器和這個類似麼

2011-3-26 22:16:10
我們以前只寫日誌 

2011-3-26 22:16:32
沒有分析模塊 

2011-3-26 22:16:51 rocket
哦~~

2011-3-26 22:17:32 rocket
那你不說要對客戶端的請求進行分流麼

2011-3-26 22:18:22
分流是讀配置文件來的 

2011-3-26 22:18:51 rocket
哦~~ 什麼意思

2011-3-26 22:19:08 rocket
分流具體是做什麼的

2011-3-26 22:19:15
你們是不是定時更新的那種 

2011-3-26 22:19:26 rocket

2011-3-26 22:19:53 rocket
應該是 不過時間間隔應該在幾秒之內

2011-3-26 22:20:31 rocket
也就是說對性能要求會很高,要求在幾秒之內處理完一次所有的數據

2011-3-26 22:21:20 rocket
如果數據量大的話 我想這裏肯定會涉及到生產-消費模型用來緩衝數據

2011-3-26 22:23:26
監控應該是實時的吧,應該是保存完整的,但顯示應該是最新的吧 

2011-3-26 22:23:58 rocket
嗯 沒錯

2011-3-26 22:24:21 rocket
呵呵 你還是挺有經驗的

2011-3-26 22:26:09 rocket
實時響應一些異常情況,然後定時輸出狀態

2011-3-26 22:26:41
這裏應該分兩塊,最新的數據拿來顯示,如果來不及就丟掉一些 

2011-3-26 22:27:15 rocket
哦 你說的現實丟掉 還是分析丟掉

2011-3-26 22:27:20
另一塊是保存完整的數據 

2011-3-26 22:27:33 rocket

2011-3-26 22:28:09
你最終要保留的是什麼 

2011-3-26 22:28:54 rocket
我想保留的應該是一些異常情況吧 正常情況只需要做個統計

2011-3-26 22:29:06 rocket
哦 對了裏面還需要有個統計模塊

2011-3-26 22:31:06 rocket
他這邊要保留一些輸出的異常,對告警進行分析,過濾其中一些不重要的告警

2011-3-26 22:32:46
那這樣的話,就不能因爲處理不過來就丟掉了 

2011-3-26 22:34:33
每條告警都要顯示,而且是有序的 

2011-3-26 22:35:09 rocket
我想處理的應該是一起異常,正常的情況就可以丟掉了,只需要做個統計

2011-3-26 22:35:36 rocket
嗯 這裏應該有個分個級別

2011-3-26 22:35:48 rocket
重要,不重要,其他

2011-3-26 22:36:51
告警的級別肯定要的 

2011-3-26 22:37:58 rocket
這個用戶可以自己設置,先識別一些可以識別的,跟據已有的規則分爲重要和非重要,然後將未能識別的放到其他中,待用戶自己識別

2011-3-26 22:38:44 rocket
有點類似於wireshark這樣的碼流工具

2011-3-26 22:40:02 rocket
顯示的話就顯示重要的

2011-3-26 22:40:24
如果數據量很大的話,產生了堆積,怎麼處理呢 

2011-3-26 22:40:53 rocket
生產-消費者模型可以處理麼

2011-3-26 22:41:03
那就不是實時的狀態了 

2011-3-26 22:41:21
不知道 

2011-3-26 22:41:34 rocket
但是異常不會佔大多數吧

2011-3-26 22:41:57 rocket
你說的數據量大,是指待分析的?

2011-3-26 22:42:50
對呀,來不及分析了,產生了堆積 

2011-3-26 22:43:20 rocket
要是這樣的話,就要用分佈式處理了,將分流交給一個PC,分析交給另一個PC

2011-3-26 22:44:00 rocket
再往下分 一個模塊處理給一個PC

2011-3-26 22:44:14 rocket
不過我覺得現在的PC性能應該夠

2011-3-26 22:45:36 rocket
我覺得關鍵是對異常的處理,首先有個大的區分,然後再對重要的部分做詳細分析

2011-3-26 22:46:27 rocket
分析前的數據如果來不及處理,應該不是一臺PC能處理過來的

2011-3-26 22:48:21 rocket
或者就要考慮分佈式的處理,多線程還是什麼? 像你們服務器如果連接的客戶端太多 不知道是怎麼處理的

2011-3-26 22:49:20
對,其實一般情況下,流程很清晰的,一個數據服務器,提供數據,一個客戶端,不斷的取數據,然後分析統計 

2011-3-26 22:50:10
我們沒有考慮這個問題 

2011-3-26 22:51:27
那些數據都是文件形式的吧 

2011-3-26 22:51:30 rocket
以前,我們這麼處理過。用幾臺機子完成功能,一臺機子專門用於接收和過濾,另一臺用來進行分析,顯示,控制

2011-3-26 22:51:37 rocket
嗯 日誌是的

2011-3-26 22:51:51 rocket
還有的是讀數據庫

2011-3-26 22:52:13 rocket
還一部分應該是通過socket

2011-3-26 22:53:27
數據庫是誰來讀呢 

2011-3-26 22:53:46 rocket
客戶端吧

2011-3-26 22:54:17 rocket
SQL2000

2011-3-26 22:55:06
是什麼內容,應該不是實時的吧 

2011-3-26 22:56:58 rocket
應該不是

2011-3-26 22:57:19 rocket
這塊的數據應該不是很大 大的是日誌文件

2011-3-26 22:57:57 rocket
還有種可能就是文件在被寫入的時候客戶端就可以被通知到

2011-3-26 22:59:37
其實我覺得,日誌分析可以分兩個方式,一種是客戶端分析,還有一種是服務器分析 

2011-3-26 23:01:01
服務器分析有幾個好處,可以減少網絡壓力 

2011-3-26 23:02:14
客戶端拿到的是最新的分析數據 

2011-3-26 23:03:02
不需要每個客戶端各自做分析了 

 

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