A. 基於web技術的遠程監控的方式有哪些
希望這篇文章能對你有幫助:
Web Service使用可擴展標記語言(XML)作為基本的數據表示方式,消除了使用不同組件模型、操作系統和編程語言的系統之間所存在的差異。簡單對象訪問協議(SOAP,Simple Object Access Protocol)是用於交換XML編碼信息的輕量級協議。它的主要作用是為各類XML消息,提供一個簡單統一的傳輸機制。Web Service使用SOAP來包裝XML數據,通過HTTP(或MSMQ、SMTP、TCP/IP)作為傳輸協議,在不同平台、不同軟體、不同組織之間進行傳遞。Web Service的描述語言為WSDL。它提供了一種描述服務介面的標准方法,定義了一種描述介面的抽象語言,使服務的介面定義獨立於底層協議和編碼方式。通用描述、發現和集成(UDDI)是Web Service的信息注冊的標准規范,用來對服務提供動態的注冊功能。
可見,Web Service採用XML、SOAP、HTTP、WSDL、UDDI等標准協議。這些協議與特定的操作系統、對象模型和編程語言無關。因此,利用Web Service來建立遠程監控系統時
(1) 由於採用標準的協議,不受特定的開發者、平台、語言和數據編碼格式的限制;
(2) 開發的Web Service可以供不同的客戶調用;
(3) HTTP作為傳輸協議可以穿過防火牆,提供在Internet上的連接和訪問[8];
(4) 如果知道Web Service的地址並具有相應許可權,就可以在網路的任何地方進行調用。
3 遠程監控系統結構
為了實現工業過程的遠程監控,基於Web Service技術的遠程監控系統結構如圖4所示。
圖4 基於Web Service的遠程監控系統結構
3.1 基於Web Service的遠程監控系統結構
傳統的遠程監控系統多使用OPC技術來獲取各種現場設備的數據,包括實時采樣值、歷史數據、報警數據等等。該系統也使用OPC來與現場設備進行數據交換。圖4中的OPC伺服器由設備供應商提供。OPC技術是以Microsoft的OLE/COM 技術為基礎。因此,與其他組件技術一樣,它不是防火牆友好的,難以通過防火牆從OPC伺服器獲取所需的數據。即使在同一區域網內,位於不同計算機上的OPC客戶端要連接到OPC伺服器都需要經過復雜的DCOM和安全性設置,這增加了系統開發的難度,為此要對OPC伺服器的數據進行封裝。通過網關(命名為「過程網關」)的形式來為各個系統提供數據。過程網關作為OPC客戶端從OPC伺服器獲取各種過程數據,將這些數據按照一定規則重新組織,並封裝在Web Service內,過程網關也從已有的控制系統中獲取所需的數據,並以服務的形式暴露給各種應用。
Web已被廣泛用於監控系統中,它可以提供統一的人機界面,並且操作簡單友好。該系統結構使用Web來建立監控系統,Web監控系統通過過程網關獲取現場設備的數據,將這些數據以Web的形式提供給遠程用戶。遠程用戶通過PC、PDA、筆記本電腦或手機訪問Web頁,將各種控制數據送回Web監控系統。Web監控系統再將這些控制數據通過過程網關傳送給現場設備,這樣就完成了對現場設備的遠程監控。
當然,遠程的用戶也可以通過直接訪問過程網關來實現遠程的監控。由於Web監控系統以HTML的形式來傳送消息和過程網關提供的Web Service的防火牆友好性,因此不管使用那種方式來進行遠程監控,都不會受到防火牆的限制。
3.2 過程網關
過程網關是現場設備與監控系統的橋梁,起著重要的數據中轉作用,其結構如圖5所示。
圖5 過程網關與監控應用
(1) 數據獲取
過程網關需要獲取
來自現場的實時數據,以對工業過程進行及時的監控;
來自其他控制系統的數據,以允許監控應用與這些系統進行數據交互。
目前主要的自動化設備生產廠家,如Rockwell、Siemens等,都提供了對OPC技術支持,通過OPC來獲取現場設備的數據。OPC伺服器通過各種現場設備的驅動程序,直接從設備中取得數據,再將這些數據提供給OPC客戶端。OPC有幾種協議,分別有不同用途。例如,OPC客戶端通過OPC DA獲取設備或SCADA系統的數據;通過OPC AE獲取報警和事件信息;通過OPC HDA獲取過程式控制制中的歷史數據。
現場控制系統將各種數據存入資料庫中,過程網關通過訪問這些資料庫來獲取控制系統的數據。獲取這些數據的目的在於使遠程式控制制系統可以與已有的控制系統進行交互,方便地將這些系統集成到新的系統中,使其獲得新的生命周期。成熟的中間件技術,如ODBC、ADO等,為資料庫的訪問提供了簡單快捷的方法。
(2) 數據的Web Service封裝
通過4.2.1獲取的數據需要封裝為Web Service,以便Web監控系統和遠程用戶能夠進行調用。在進行數據封裝時,按照功能需求確定需要暴露給調用者的介面(類似於編程語言中的函數介面),然後通過開發工具來開發這些Web Service。這些工具有Microsoft的Visual Studio.NET、IBM的WebSphere、Borland的JBuilder等等。數據封裝為Web Service後可以提供WSDL,方便調用者進行調用。
(3) 安全審查
過程網關的某些Web Service可能涉及到保密的數據,因此需要考慮數據傳輸的安全性,並對客戶端的訪問進行限制。可用多種方法來提供所需的安全性
採用WS-Security標准[9];
使用SSL進行加密和簽名;
使用傳輸層安全性(Transport Layer Security,TLS)、IPSec[10]等確保數據的安全傳輸;
使用伺服器,如IIS,的身份驗證功能;
提供用戶的角色定義和許可權分配。
(4) 服務調用
開發監控應用時,通過查找操作從本地或服務注冊中心檢索服務描述,然後進行Web監控系統的開發。而開發完成後的系統可以位於網路的任意位置。Web監控系統與過程網關提供的Web Service進行綁定,通過服務的調用實現數據的交互,由於Web監控系統的數據是通過純HTTP協議傳輸的,因此是防火牆友好的。
3.3 Web監控系統
監控系統可以有多種形式。傳統的監控系統通過各種組態軟體開發,如InTouch,iFix、RSView32等等,但這種監控系統一般是針對集散控制系統或現場匯流排控制系統的,不利於進行遠程的監控。每一種應用都需要相應的運行環境,這將增加用戶的投資,如採用基於Web的監控系統,就可以提供統一的人機界面,有利於進行遠程監控。
(1) Web監控
遠程的用戶可以通過瀏覽器訪問現場的運行畫面,掌握現場數據。同時可以通過瀏覽器發送控制命令,控制現場設備的運行。Web監控程序還可以實現數據存檔、報表列印、故障報警、統計圖表及曲線的顯示等[11]。在開發Web監控程序時,首先要獲取過程網關提供的WSDL(通過在服務注冊中心查找獲取,或直接通過過程網關Web Service所在的URL獲取)。在開發過程中,Web Service的使用與一般的API函數類似。為了提高性能,應盡量使用非同步調用的方式。ASP.NET、JSP等都可以用來進行Web監控程序的開發。由於終端設備的性能差異,需要為手機、PDA等設備開發不同於PC的Web監控程序。
(2) 沖突避免
如果多個用戶同時進行監控,可能會導致沖突,因此需要限制同時操作的用戶數量。當一個用戶訪問Web監控系統時,如果此時已經達到了允許的最大訪問數,則必須進行等待。此時,允許用戶查看各種數據,但屏蔽用戶的控制操作。當有其他的用戶斷開連接後,取消對該用戶控制操作的屏蔽,可允許其進行相應的控制。
(3) 許可權管理
許可權管理為每個用戶分配不同的許可權,只允許用戶進行授權范圍內的操作。至少應將用戶分為三個級別:管理員:主要負責對Web監控系統的管理和維護,對用戶進行管理;高級操作員:可以瀏覽各種數據,並進行相應的控制操作;一般操作員:只具有瀏覽數據的權利,不能進行修改。
不同的用戶登錄系統後具有不同的操作許可權,這樣可以防止控制操作的濫用,增強系統的安全性。
(4) 日誌管理
日誌可以記錄系統的運行情況以及用戶進行的各種操作,特別要記錄系統運行中出現的故障。對於用戶操作產生的日誌需要包括用戶名、所進行的操作、時間和IP地址。這樣可以掌握用戶所進行的各種操作,也便於在出現錯誤時進行追蹤和修復。
B. 如何有效的監控web伺服器
監控單獨網站訪問量需要第三方插件,如果監控伺服器帶寬和使用率,window自身的任務管理器就可以.
C. 利用Windows自帶的性能監視器對WebService服務進行監控,通常使用哪些計數器,標准值是什麼
1. 處理器對象(Processor Object)
2. 系統對象(System Object)
3. SQL Server:緩沖區管理器對象( B u ffer Manager Object)
4. SQL Server:資料庫對象(Database Object)
5. SQL Server:常規統計對象(General Statistics Object)
6. SQL Server:閂對象(Latches Object)
7. SQL Server:鎖對象(Locks Object)
8. SQL Server:內存管理器對象(Memory Manager Object)
9. SQL Server:S Q L統計對象(SQL Statistics Object)
10. 邏輯磁碟對象(Logical Disk Object)
11. 物理磁碟對象(PhysicalDisk Object)
12. 內存
一條經驗規則是不要使你所監控的每個處理器的C P U使用率高於9 0%。峰值超過9 0%是可以接受的,但平均使用率超過9 0%則是應該避免的。
• 處理器時間百分比(%Processor Time) 處理器執行一個非空閑線程的時間百分比。用%1 0 0減去處理器空閑的總時間得出這個值。這是整個系統的C P U使用的一個好的指示器。
• 特權時間百分比(%Privileged Time) 處理器用於在特權模式下(即,執行操作系統功能和運行驅動器,如I / O )工作時間的百分比。這個時間包括C P U (或C P U )用於維護中斷和延遲過程調用( D P C )的時間。
• 用戶時間百分比(%User Time) 處理器用於在用戶模式工作的時間百分比。這種類型的工作是由應用產生的。通常,希望極大化用戶時間百分比的值,極小化特權時間百分比的值。
• 中斷時間百分比(%Interrupt Time) CPU忙於維護硬體中斷的時間百分比。系統中的許多硬體部件,如滑鼠、網路介面卡或磁碟控制器,都可以發出處理器中斷。你可以將中斷看作為Windows NT正常操作的一部分發生。
• 中斷數/秒(Interrupts/sec) 處理器每秒接收並處理的硬體中斷的數量。它不包括系統
D P C,系統D P C單獨計數。
系統對象與它的相關計數器衡量處理器上運行的線程的總計數據。雖然使用這些計數器不能觀察一個特定處理器的工作負載或一個特定線程的行為,但它們提供了有關整個系統性能有價值的內部信息。系統計數器如下所示:
• 處理器隊列長度(Processor Queue Length) 處理器隊列中的線程的數量。換句話說,它
是等待運行的線程數。即使你的系統具有多個處理器,但只有一個隊列用於處理器時間。計數器只記錄那些准備執行但仍處於等待的線程,不是那些正在運行的線程。
• 環境切換/秒(Context Switches/sec) 系統上的所有處理器從一個線程切換到另一個線程的組合比率。當一個正在運行的線程自動地放棄處理器,處理器由一個高優先順序的待命線程搶占時發生環境切換,或在用戶模式和特權(核心)模式之間切換,以使用一個執行或子系統的服務。這是線程的總和:計算機上運行在所有處理器上的所有線程的環境切換數/秒。
緩沖區管理器計數器提供了SQL Server使用的內存緩沖區的有關信息。這些計數器如下所示:
• 高速緩存命中率( B u ffer Cache Hit Ratio) 引用當前位於高速緩存中頁的需求的百分率。預先在內存中擁有頁,允許SQL Server避免請求從磁碟子系統執行一次物理I / O。因為訪問內存相對於訪問物理I / O,代價更小,一個高的緩沖區高速緩存命中率增強了系統的性能與吞吐量。如果你的系統很好地調整過,這個命中率應該是8 0%或更高。如果具有一個低的緩沖區高速緩存命中率,你應該為SQL Server分配更多的內存。如果你已將現有的所有內存都分配給了SQL Server,那麼需要增加系統中物理內存的數量。
• 高速緩存大小(頁)(Cache Size) 在SQL Server緩沖區高速緩存中的頁的數量。這個數量乘以8 K B,即可得到正在使用的以千位元組為單位的緩存數。
• 空閑緩沖區(Free Buffer) 空閑SQL Server內存緩沖區的數量。
• 讀的頁/秒(Page Reads/sec) 每秒請求的物理數據頁I / O的數量。
• 偷取的頁計數(Stolen Page Count) SQL Server用於緩沖區高速緩存的頁數,這些內存被給予系統中的另外一個進程。Windows NT回收這個內存以滿足其他系統部件的需要。
• 寫的頁/秒(Page Writes/sec) 由SQL Server執行的每秒寫的物理數據頁的數量。
資料庫對象計數器提供了有關SQL Server資料庫的信息,包括可用的空閑日誌空間量和資料庫中活動事務的數量。對於系統中的每個資料庫的每個計數器有一個實例。這些計數器包括如下:
• 日誌刷新等待/秒(Log Flush Wait/sec) 在能夠繼續執行前,必須等待日誌刷新的資料庫提交數量。
• 日誌使用的百分比(Percent Log Used) SQL Server實際使用的當前定義的日誌空間的百分比。
常規統計對象含有常規伺服器范圍活動的有關信息,它有一個計數器:
• 用戶連接數(User Connections) 系統中用戶連接的當前數量。
這個對象計數器提供了在內部SQL Server資源中有效的閂的信息。計數器如下:
• 平均閂等待時間(毫秒) ( Average Latch Wait Time) 閂請求在得到服務之前必須等待的平均時間,以毫秒為單位。
• 閂等待數/秒(Latch Waits/sec) 不能立即服務,被迫等待其他資源釋放的閂請求的數量。
鎖對象提供了由SQL Server提出的各個鎖請求的有關數據,例如鎖生命周期和死鎖。可以在系統上具有多個這些計數器的實例。計數器如下所示:
• 平均等待時間(毫秒) ( Average Wait Time) 每個鎖請求被迫等待的平均時間量,以毫秒為單位。
• 鎖到期數/秒(Lock Timeouts/sec) 在系統中過期的鎖請求的數量。
• 鎖等待數/秒(Lock Wa i t s / s e c )不能立即滿足,需要調用線程在給予鎖之前處於等待狀態的鎖請求的數量。
• 死鎖數/秒(Number of Deadlocks/sec) 導致產生死鎖的鎖請求的數量。
內存管理器對象含有有關SQL Server內存使用的信息,包括SQL Server正在使用的高速緩
存內存的數量。這個對象下的計數器如下所示:
• 內存授權掛起(Memory Grants Pending) 等待授予工作空間內存的進程的當前數量。
• S Q L高速緩存內存(KB)(SQL Cache Memory) SQL Server用於動態SQL 高速緩存的動態
內存數量。
• 目標伺服器內存( K B ) ( Ta rget Server Memory) SQL Server將會消耗的動態內存的總額。
• 總的伺服器內存( K B ) ( Total Server Memory) SQL Server當前消耗的動態內存的總額。
這個對象提供了系統上正在執行的S Q L查詢的有關信息,包括查詢編譯和重新編譯的數量的數據。它有如下計數器:
• 批請求/秒(Batch Requests/sec) 伺服器接收到的S Q L批請求的數量。
• SQL 編譯/秒(SQL Compilations/sec) SQL Server每秒執行的S Q L語句編譯的數量。
• S Q L重新編譯/秒(SQL Re-Compilations/sec) SQL Server每秒執行的S Q L語句重新編譯的數量。
邏輯磁碟對象提供了有關邏輯磁碟I / O性能的信息。邏輯磁碟計數器與Windows NT磁碟
系統管理員分配給邏輯磁碟驅動器的字母相關。這個對象含有如下計數器:
• 磁碟讀時間百分比(%Disk Read Time) 選中的邏輯磁碟忙於服務讀請求總共用去時間的
百分比。
• 磁碟寫時間百分比(%Disk Write Time) 選中的邏輯磁碟忙於服務寫請求總共用去時間
的百分比。
• 磁碟時間百分比(%Disk Time) 選中的邏輯磁碟忙於服務讀請求或寫請求總共用的時間
的百分比,是磁碟寫時間百分比與磁碟讀時間百分比的和。
• 空閑時間百分比(%Idle Time) 邏輯磁碟在采樣時間間隔中處於空閑狀態的時間百分比。
• 平均磁碟隊列長度( Avg. Disk Queue Length) 在采樣的時間間隔中,選中的邏輯磁碟讀請求和寫請求排隊的平均數量。
• 平均磁碟讀隊列長度( Avg. Disk Read Queue Length) 在采樣的時間間隔中,對選中的邏輯磁碟讀請求排隊的平均數量。
• 平均磁碟寫隊列長度( Avg. Disk Write Queue Length) 在采樣的時間間隔中,對選中的邏輯磁碟寫請求排隊的平均數量。
• 平均磁碟秒數/讀( Avg. Disk sec/Read) 從邏輯磁碟讀數據的平均時間,以秒為單位。
• 平均磁碟秒數/寫( Avg. Disk sec/Write) 向邏輯磁碟寫數據的平均時間,以秒為單位。
• 平均磁碟秒數/傳輸( ( Avg. Disk sec/Transfer) 從邏輯磁碟進行傳輸的平均時間,以秒為單位。
• 磁碟讀/秒(Disk Reads Bytes/sec) 邏輯磁碟上每秒讀位元組。
• 磁碟讀/秒(Disk Writes Bytes/sec) 邏輯磁碟上每秒寫位元組。
• 磁碟讀/秒(Disk Reads/sec) 邏輯磁碟上的讀操作比率。
• 磁碟寫/秒(Disk Writes/sec) 邏輯磁碟上的寫操作比率。
• 磁碟傳輸/秒(Disk Transfers/sec) 邏輯磁碟上的讀和寫操作的比率。
物理磁碟對象提供了有關物理磁碟I / O性能的信息。它的磁碟計數器與系統中的物理驅動器有關,並且只有當運行了D i s k P e r f服務時,它才被激活。這個對象下的計數器如下所示:
• 磁碟讀時間百分比(%Disk Read Time) 選中的物理磁碟忙於服務讀請求總共用的時間的百分比。
• 磁碟寫時間百分比(%Disk Write Time) 選中的物理磁碟忙於服務寫請求總共用的時間的百分比。
• 磁碟時間百分比(%Disk Time) 選中的物理磁碟忙於服務讀請求或寫請求總共用的時間的百分比,是磁碟寫時間百分比與磁碟讀時間百分比的和。
• 空閑時間百分比(%Idle Time) 物理磁碟在采樣時間間隔中處於空閑狀態的時間百分比。
• 平均磁碟隊列長度( Avg. Disk Queue Length) 在采樣的時間間隔中,選中的物理磁碟讀請求和寫請求排隊的平均數量。
• 平均磁碟讀隊列長度( Avg. Disk Read Queue Length) 在采樣的時間間隔中,選中的物理磁碟讀請求排隊的平均數量。
• 平均磁碟寫隊列長度( Avg. Disk Write Queue Length) 在采樣的時間間隔中,選中的物理磁碟寫請求排隊的平均數量。
• 平均磁碟秒數/讀( Avg. Disk sec/Read) 從物理磁碟讀數據的平均時間,以秒為單位。
• 平均磁碟秒數/寫( Avg. Disk sec/Write) 向物理磁碟寫數據的平均時間,以秒為單位。
• 平均磁碟秒數/傳輸( Avg. Disk sec/Transfer) 從物理磁碟進行傳輸的平均時間,以秒為單位。
• 磁碟讀/秒(Disk Reads Bytes/sec) 物理磁碟上每秒讀位元組。
• 磁碟讀/秒(Disk Writes Bytes/sec) 物理磁碟上每秒寫位元組。
• 磁碟讀/秒(Disk Reads/sec) 物理磁碟上的讀操作比率。
• 磁碟寫/秒(Disk Writes/sec) 物理磁碟上的寫操作比率。
• 磁碟傳輸/秒(Disk Transfers/sec) 物理磁碟上的讀和寫操作的比率。
內存在任何系統中都是一個非常有價值的資源。Windows NT不只允許過量使用內存,而且鼓勵你過量使用內存。Windows NT提供了一種透明機制,允許應用「相信」它們具有比系統中可用的物理內存更多的內存。當Windows NT處理應用時,它將不使用的內存頁調出(交換出)到磁碟上的頁文件中。在大多數系統中,頁調度是正常的,但過量的頁調度會削弱整個系統的性能。下面的計數器允許你監控系統的頁調度。
• 失效的頁/秒(Page Faults/sec) 每秒由處理器處理的失效頁的全部數量。當一個進程需
要的代碼或數據不在它的工作區(它的空間在物理內存中)中時,發生失效頁。這個計數
器包括硬的頁失效(那些需要磁碟訪問的)和軟的頁失效(在物理內存的其他地方發現了失
效頁)。
• 讀的頁/秒(Page Reads/sec) 讀取磁碟以解決硬的頁失效所需要的時間數(當一個進程需要的代碼或數據不在其工作區或內存中的其他地方,必須從磁碟提取這些代碼和數據時,發生硬的頁失效)。這個計數器包括為滿足在文件系統高速緩存(通常是應用請求的)以及在非高速緩存映像內存文件中的失效而進行的讀。
• 寫的頁/秒(Page Writes/sec) 將頁寫向磁碟以釋放物理內存空間的時間數。只有當頁在物理內存中被改變的時候,將頁寫入磁碟,這樣,它們更有可能含有數據,而不是代碼。
• 頁/秒(Pages/sec) 為解決硬的頁失效,所需要讀或寫磁碟的時間數。它是讀的頁/秒與寫的頁/秒的計數器的和。
D. 怎麼用java實現web伺服器的監控
如何用Java實現Web伺服器 一、HTTP協議的作用原理
WWW是以Internet作為傳輸媒介的一個應用系統,WWW網上最基本的傳輸單位是Web網頁。WWW的工作基於客戶機/伺服器計算模型,由Web 瀏覽器(客戶機)和Web伺服器(伺服器)構成,兩者之間採用超文本傳送協議(HTTP)進行通信。HTTP協議是基於TCP/IP協議之上的協議,是Web瀏覽器和Web伺服器之間的應用層協議,是通用的、無狀態的、面向對象的協議。HTTP協議的作用原理包括四個步驟:
(1) 連接:Web瀏覽器與Web伺服器建立連接,打開一個稱為socket(套接字)的虛擬文件,此文件的建立標志著連接建立成功。
(2) 請求:Web瀏覽器通過socket向Web伺服器提交請求。HTTP的請求一般是GET或POST命令(POST用於FORM參數的傳遞)。GET命令的格式為:
GET 路徑/文件名 HTTP/1.0
文件名指出所訪問的文件,HTTP/1.0指出Web瀏覽器使用的HTTP版本。
(3) 應答:Web瀏覽器提交請求後,通過HTTP協議傳送給Web伺服器。Web伺服器接到後,進行事務處理,處理結果又通過HTTP傳回給Web瀏覽器,從而在Web瀏覽器上顯示出所請求的頁面。詳細方法可向itjob老師了解
E. 如何讓zabbix監控web埠服務
基本知識准備:
1、SNMP(簡單網路管理協議)
2、一些腳本知識,可以編寫任意一種腳本。
3、知道Nagios怎麼用。
好啦,現在開始:
1、編寫一個可以輸出本機Nginx並發連接數的腳本,輸出結果為連接數。我這里腳本比較簡單,只是看看已經鏈接80埠的。當然也可以自己編寫更精確的腳本。
[root@webserver2 scripts]# cat showhttp.sh
#!/bin/bash
echo `netstat -nat | grep -i "80" | wc -l`
2、配置snmp,如何安裝我就不說的,自己去弄唄。
yum install net-snmp* 我是這么安裝的。
看下我的snmp配置文件:
[root@webserver2 ~]# grep -v '^#' /etc/snmp/snmpd.conf | grep -v '^$'
com2sec notConfigUser default public
group notConfigGroup v1 notConfigUser
group notConfigGroup v2c notConfigUser
view systemview included .1.3.6.1.2.1.1
view systemview included .1.3.6.1.2.1.25.1.1
view systemview included .1.3.6.1.4.1.2021
access notConfigGroup "" any noauth exact systemview none none
syslocation Unknown (edit /etc/snmp/snmpd.conf)
syscontact Root <root@localhost> (configure /etc/snmp/snmp.local.conf)
pass .1.3.6.1.4.1.4413.4.1 /usr/bin/ucd5820stat
exec .1.3.6.1.4.1.2021.51 showhttp /bin/bash /root/scripts/showhttp.sh
然後重載下snmp的配置文件。
/etc/init.d/snmpd reload
使用snmpwalk測試下,能不能通過snmp來獲取數據。
[root@webserver2 ~]# snmpwalk -v 1 -c public 192.168.137.102 .1.3.6.1.4.1.2021.51
UCD-SNMP-MIB::ucdavis.51.1.1 = INTEGER: 1
UCD-SNMP-MIB::ucdavis.51.2.1 = STRING: "showhttp"
UCD-SNMP-MIB::ucdavis.51.3.1 = STRING: "/bin/bash /root/scripts/showhttp.sh"
UCD-SNMP-MIB::ucdavis.51.100.1 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.51.101.1 = STRING: "7"
UCD-SNMP-MIB::ucdavis.51.102.1 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.51.103.1 = ""
[root@webserver2 ~]# snmpwalk -v 1 -c public 192.168.137.102 showhttp
showhttp: Unknown Object Identifier (Sub-id not found: (top) -> showhttp)
[root@webserver2 ~]# snmpwalk -v 1 -c public 192.168.137.102 .1.3.6.1.4.1.2021.51.101.1
UCD-SNMP-MIB::ucdavis.51.101.1 = STRING: "5"
至此位置,snmp就配置好了。至於原理,google、一大堆。限於自己的表述能力和打字速度就不在此復述了。
下面我登錄nagios的監控機,來監控這台機器的http連接數量。
2、首先安裝nagios,這里跳過。
3、先寫個如下腳本,獲取被監控的設備的snmp值。
[root@webserver2 libexec]# cat show_http
#!/bin/bash
OID='.1.3.6.1.4.1.2021.51.101.1'
IPADDRESS=$2
COMMUNITY=$1
if [[ -z $IPADDRESS ]] || [[ -z $COMMUNITY ]]; then
echo "Mabe ... ...Usage: show_http <COMMUNITY> <IPADDRESS>"
exit 4
fi
counts=`snmpwalk -v 1 -c $COMMUNITY $IPADDRESS $OID 2>/dev/null | awk -F'"' '{print $2}'`
if [ -z $counts ]; then
echo "Mabe snmpd is down OR ipaddress error OR community fault."
exit 4
fi
if [ $counts -ge 200 ]; then
echo "Cirtical - connection - $counts"
exit 2
elif [ $counts -ge 100 ]; then
echo "Warning - connection - $counts"
exit 1
else
echo "OK - connection - $counts"
exit 0
fi
3、最nagios進行一些配置:
define command{
command_name check-host-alive
command_line $USER1$/show_http nagios $HOSTADDRESS$ #添加一條命令,參數是團體名和主機地址,團體名,我直接用了nagios。為了可擴展性的考慮,大家也可以使用resources文件來定義。這里不再復述。
}
F. 關於區域網內java web服務操作監控的問題
問題簡化起來就是A->B->C的關系,即B(可以上外網的機器)作為代理層來轉發區域網內的外網請求。
在B上封裝下網路地圖API,然後向區域網內發布,這樣A之類的內網機器就可以通過B訪問百class B {
public static whatever getMap() {
return BadiuApi.getMap();
}
}
G. 如何監控webservice服務介面
我說下我的想法,好不好實現還需樓主自己決策。
由webservice專門提供一個test的介面,不做任何事情,只是用來判斷服務是否在。
使用定時任務(推薦quartz框架),定時查看webservice的test服務是否可以正常應答,間隔可以短一些。同一個webservice不同的介面請求-響應時間肯定不同,這些介面的測試就是在用戶調用的時候前後卡下時間,然後根據調用次數和總共耗時做平均值。當然這些數據的標准由你來定,當數據出現異常時,建議產生告警日誌。
H. 如何用java實現web伺服器的監控
Hyperic HQ集成了強大的監測和管理功能,它有開源版本,您可以直接使用它用來對web伺服器進行監控。
如果您想自己寫代碼實現,Hyperic HQ提供了一個伺服器各種性能指標採集的API,這個API包本身提供了各種平台(linux/MAC/window等)的兼容。
I. web伺服器的監控指標是什麼
自己看圖!