亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        局域網(wǎng)狀態(tài)自動監(jiān)測及告警系統(tǒng)設(shè)計與實現(xiàn)

        2020-04-24 14:50:40王宜明
        電腦知識與技術(shù) 2020年5期
        關(guān)鍵詞:電話號碼管理員端口

        摘要:人工監(jiān)測網(wǎng)絡(luò)運行狀態(tài)費時費力效率低下。為及時發(fā)現(xiàn)網(wǎng)絡(luò)故障,減輕值班人員工作強度,提高自動化監(jiān)測能力,基于java語言,利用InetSocketAddress類的相關(guān)方法,配合數(shù)據(jù)庫,實現(xiàn)了對網(wǎng)絡(luò)中的重要信息節(jié)點如交換機、服務(wù)器等硬件設(shè)備,以及重要的業(yè)務(wù)平臺和服務(wù)運行狀態(tài)的自動監(jiān)測,并在監(jiān)測到故障時能自動發(fā)送告警短信通知相關(guān)人員。

        關(guān)鍵詞:java;網(wǎng)絡(luò)狀態(tài):自動監(jiān)測;自動告警

        中圖分類號:TP311.1 文獻標識碼:A

        文章編號:1009-3044(2020)05-0035-03

        開放科學(資源服務(wù))標識碼(OSID):

        1 概述

        隨著氣象業(yè)務(wù)現(xiàn)代化的深入發(fā)展,氣象信息化集成度越來越高,對實效性的要求也更加嚴格。氣象數(shù)據(jù)和報文傳輸?shù)葮I(yè)務(wù)對網(wǎng)絡(luò)的穩(wěn)定性也相應(yīng)的提出了更高的要求,這意味著信息網(wǎng)絡(luò)運維人員必須要能及時發(fā)現(xiàn)問題并能在第一時間處理問題。故障發(fā)現(xiàn)的越及時,處理故障的余地越大。在以往單純依靠人工巡檢來監(jiān)測網(wǎng)絡(luò)運行狀態(tài)費時費力且效率低下,還使得業(yè)務(wù)值班人員壓力非常之大,疲于應(yīng)付。目前的網(wǎng)管軟件在應(yīng)用上其功能點主要側(cè)重于網(wǎng)絡(luò)維護功能方面,如網(wǎng)絡(luò)拓撲圖顯示、線路流量統(tǒng)計、ip地址統(tǒng)計等。而在網(wǎng)絡(luò)通斷狀態(tài)的檢測,F(xiàn)TP、ns、Tomcat等網(wǎng)絡(luò)服務(wù)運行監(jiān)測、告警短信號碼定制等方面不能靈活的按照網(wǎng)絡(luò)管理者的意愿進行靈活定制?;谏鲜鲈?,開發(fā)一套自動的、可定制化的監(jiān)測和告警系統(tǒng)(以下簡稱監(jiān)測系統(tǒng)),用以實現(xiàn)對重要的信息網(wǎng)絡(luò)節(jié)點、服務(wù)器以及重要的業(yè)務(wù)平臺服務(wù)運行狀態(tài)監(jiān)測勢在必行。

        目前主流的短信發(fā)送技術(shù)主要有兩種:使用自購設(shè)備“短信貓(GMS Modem)”實現(xiàn)短信發(fā)送;利用通信運營商(如中國聯(lián)通)提供的webservice接口實現(xiàn)短信發(fā)送。監(jiān)測系統(tǒng)采用的短信告警技術(shù)也正是這兩種方式?!岸绦咆垺钡膬?yōu)點在于短信發(fā)送端位于網(wǎng)絡(luò)內(nèi)部,短信發(fā)送操作在內(nèi)網(wǎng)完成,減少傳輸間網(wǎng)絡(luò)損耗。webservice方式的優(yōu)點在于發(fā)送快速,編輯好模板之后,可快速實現(xiàn)大量的短信發(fā)送。兩種方式互為備份,一種方式發(fā)送失敗后可以轉(zhuǎn)至另一種方式繼續(xù)發(fā)送短信,確保告警短信正常及時送達至管理員手機上。監(jiān)測系統(tǒng)開發(fā)完成后,可以實現(xiàn)對重要信息節(jié)點和服務(wù)器以及重要業(yè)務(wù)平臺、服務(wù)的狀態(tài)監(jiān)測和告警,不僅能提高信息運維部門的反應(yīng)速度,也能極大地減輕值班員的勞動強度。

        2 系統(tǒng)設(shè)計

        2.1 功能設(shè)計

        監(jiān)測系統(tǒng)運行流程圖如圖1所示。

        監(jiān)測系統(tǒng)運行的具體步驟是:首先初始化配置數(shù)據(jù),例如,將要被監(jiān)測的設(shè)備ip地址及端口號、與設(shè)備相關(guān)聯(lián)的管理員電話號碼等數(shù)據(jù)。配置數(shù)據(jù)初始化出現(xiàn)異常時,例如從數(shù)據(jù)庫讀 取配置數(shù)據(jù)失敗,則將錯誤信息通過短信發(fā)送給管理員進行處理,并將檢查結(jié)果寫入日志備查。配置數(shù)據(jù)初始化成功后,根據(jù)配置數(shù)據(jù)選擇待監(jiān)測ip的檢查方法。如設(shè)備配置數(shù)據(jù)中端口號為0,則表示只對該設(shè)備的網(wǎng)絡(luò)可達性進行監(jiān)測。若端口號不為0,表示需要監(jiān)測該端口號上的服務(wù)是否正常運行。最后如果判斷ip或者端口不可達,則將觸發(fā)告警,由短信告警模塊發(fā)送告警信息給相關(guān)管理員處理。無論本次監(jiān)測有無問題,最后的監(jiān)測結(jié)果都將寫人數(shù)據(jù)庫作為運行日志備查。

        2.2 元數(shù)據(jù)設(shè)計

        監(jiān)測系統(tǒng)數(shù)據(jù)初始化的工作是讀取待監(jiān)測的ip列表,端口列表以及與ip相關(guān)聯(lián)的管理員的電話號碼。這些相關(guān)數(shù)據(jù)被稱作監(jiān)測系統(tǒng)的元數(shù)據(jù),其在數(shù)據(jù)庫中持久化保存,方便監(jiān)測系統(tǒng)獲取,以及修改配置數(shù)據(jù),對監(jiān)測對象進行調(diào)整。 元數(shù)據(jù)主要分為兩類,分別以表的形式存放于數(shù)據(jù)庫中,表分別是“被監(jiān)測設(shè)備配置表”以及“管理員電話號碼配置表”。其中“被監(jiān)測設(shè)備配置表”中存儲的是被監(jiān)測的網(wǎng)絡(luò)設(shè)備的狀態(tài)配置信息。詳情見表1“被監(jiān)測設(shè)備配置表”。

        其中,IpAddress表示被監(jiān)測設(shè)備的ip地址,OpenPort表示該設(shè)備開放出可被監(jiān)測的端口,0”表示無端口開放,需要用ping的方式來確定該ip地址是否可達,從而判定此ip是否存活。其他數(shù)字表示此ip上開放有相應(yīng)的服務(wù),需要監(jiān)測該端口是否在正常,以判斷該設(shè)備及服務(wù)是否正常。IsValid表示該設(shè)備否要被監(jiān)控,存入值“0”或者“l(fā)”。0代表此ip不需要再監(jiān)測。Administrator表示該設(shè)備被檢出問題后要通知的部門所屬。若該設(shè)備有多個部門管轄,可配置多個部門,用“,”隔開即可。

        “管理員信息配置表”內(nèi)存儲的是待監(jiān)測設(shè)備的管理員配置,詳情見表2管理員信息配置表。

        其中,“AlarmCategory”列中存儲的信息表示配置表中本條記錄歸屬的業(yè)務(wù)種類。例如“network”表示監(jiān)測系統(tǒng)的元數(shù)據(jù)配置信息?!癆dministrator”列用于標識接收短信告警的相關(guān)部門,與表1中“Administator”列相對應(yīng)。“PhoneNo”列顧名思義,就是用來接收告警短信的號碼??紤]到一個部門可能要多個管理員需要接收告警短信,例如“青島”,需要有兩個網(wǎng)絡(luò)管理員同時接收告警短信,則可以在此列配置多個電話號碼,用英文逗號“·”隔開即可。

        2.3 數(shù)據(jù)庫表設(shè)計

        數(shù)據(jù)庫用來存儲監(jiān)測系統(tǒng)運行所需要的配置數(shù)據(jù)和監(jiān)測系統(tǒng)運行日志。元數(shù)據(jù)確定完畢后,在數(shù)據(jù)庫中創(chuàng)建兩個數(shù)據(jù)表來存儲元數(shù)據(jù)。以“被監(jiān)測設(shè)備配置表”為例,建表語句如下:

        create table ipconfig(

        id VARCHAR(32) primary key not null comment‘主鍵,in-sertdatetime DATE default current_timestamp comment‘記錄插入時間,

        ipAddress VARCHAR(15) not null comment‘被監(jiān)測IP地址,

        openPort INTEGER not null default o comment‘端口號,默認0,

        isValid CHAR(1) default 'O, comment‘是否有效,默認無效,1代表有效,

        editBy VARCHAR(IO) default 'admin, comment‘操作人員,

        admin VARCHAR(150) not null comment‘故障時通知所屬單位)

        表創(chuàng)建完畢并初始化數(shù)據(jù)后,監(jiān)測系統(tǒng)即可從表中讀取配置數(shù)據(jù)進行處理。若需要對監(jiān)測ip地址、端口等數(shù)據(jù)進行變更,只需對元數(shù)據(jù)配置表進行增刪改操作即可,監(jiān)測系統(tǒng)在每一次運行時均可根據(jù)讀取新的配置數(shù)據(jù)進行監(jiān)測。

        2.4 代碼實現(xiàn)

        2.4.1 監(jiān)測功能代碼實現(xiàn)

        Java是一門面向?qū)ο蟮恼Z言。類是屬性和操作屬性的方法的集合,屬性和操作屬性的方法一起描述對象的狀態(tài)和行為。在監(jiān)測系統(tǒng)中,待監(jiān)測的設(shè)備、服務(wù)即可看作一個類,用IpData-Conf來表示。該類具有ip地址、開放端口號、是否有效、管理員等屬性,同時也具有各個屬性的getter方法,如表3所示:

        在完成數(shù)據(jù)庫表創(chuàng)建并填人初始化數(shù)據(jù)后,系統(tǒng)即可開始對進行監(jiān)測。系統(tǒng)運行流程如圖1所示,其偽代碼如下所示:

        List ipDataConfs= loadProperties0;

        if (ipDataConfs.size0==0){

        alertModule0;

        return;1

        ipDataConfs.forEach(ipDataConfo{

        if(ipDataConf.getOpenPort0==0){

        boolean checkResult= checkNetWorkBylp0;

        if (!checkResult){

        alertModule0;

        】else{

        boolean checkResult= checkNetorkByPort0;

        if(! checkResult){ alertModule0;】

        ¨)

        loadProperties0函數(shù)完成監(jiān)測系統(tǒng)初始化的功能,其初始化的是ipDataConf類,并將該類存儲在一個List結(jié)構(gòu)中,若初始化配置數(shù)據(jù)后返回的List大小為0,表示初始化配置數(shù)據(jù)失敗,將直接觸發(fā)告警模塊并退出本次監(jiān)測操作。 若初始化配置數(shù)據(jù)成功,則開始用循環(huán)遍歷該對象,輪流取出IpDataConf類,通過getOpenPort0方法獲取該ip對應(yīng)配置的端口,若獲取到的端口值為0,表示該ip僅僅用checkNetwork-Bylp0監(jiān)測網(wǎng)絡(luò)可達性即可。若不為0,表示該ip上開放有服務(wù)需要監(jiān)測,則使用checkNetworkByPort0方法來進行監(jiān)測。

        在進行網(wǎng)絡(luò)可達性監(jiān)測時,checkNetWorkBylp0函數(shù)用In-etSocketAddress類以及該類的isReachable0方法,InetSocketAd-dress類是SocketAddress(抽象)類的子類,其實現(xiàn)了ip套接字地址(ip地址+端口號)。具體代碼如下:

        InetSocketAddress socketAddress=

        new InetSocketAddress(ipDataConf.getlp0,0);

        return (socketAddress.getAddress0 1= null)

        && socketAddress.getAddressO.isReachable0;

        監(jiān)測系統(tǒng)先根據(jù)ip地址來創(chuàng)建InetSocketAddress對象socketAddress,然后對socketAddress. getAddress0進行非空判斷,并使用isReachable0方法判斷其網(wǎng)絡(luò)可達性。

        在進行端口監(jiān)測時,checkNetworkService0方法采用的是socket對象的isConnect0方法:

        Socket socket= net Socket0;

        InetAddress inetAddress= new

        InetAddress(ipD ataConf.getIpO.ipD ataConf.getOpenPort O);

        socket.isConnect(remoteAddress,connectTimeOut);

        return socket.isConnected0;

        創(chuàng)建socket對象,再根據(jù)ip和端口創(chuàng)建一個InetSocketAd-dress對象,并使用socket的connect0方法去連接,如果連接失敗則觸發(fā)短信告警模塊,告警該ip上運行的服務(wù)(即開放的端口)失效,需要立即通知管理員檢查。

        2.4.2 自動短信告警模塊設(shè)計

        考慮到存在這種情況:當檢測到設(shè)備或者服務(wù)發(fā)生故障時,如某地部署的路由器出現(xiàn)問題,需要同時發(fā)送告警短信給該設(shè)備所屬地網(wǎng)絡(luò)管理員,以及上級網(wǎng)絡(luò)管理部門的網(wǎng)管員。而還存在一種情況是兩地的網(wǎng)管員都不止一個人需要接收告警短信。因此,就需要在表1待監(jiān)測ip及端口配置表中設(shè)置字段來存儲故障時需要通知的單位或者網(wǎng)管員代碼。然后在表2電話號碼配置表中設(shè)置字段來配置相應(yīng)管理員代碼的告警短信接收電話號碼,電話號碼可以不止一個,中間用英文逗號隔開即可。告警短信發(fā)送模塊可以識別并按照設(shè)定號碼分別發(fā)送告警短信。模塊的最終目的是要創(chuàng)建HashMap結(jié)構(gòu)的鏈表,其中存儲的都是要發(fā)給對應(yīng)Ke y 的所有告警信息。storePhoneMsg存儲的是接收告警短信的電話號碼及對應(yīng)的告警內(nèi)容列表。相關(guān)代碼如下:

        HashMap0;

        for (String mobile:mobileList){

        if (storePhoneMsg.get(mobile)==null)(

        List f'irstCreated= new ArrayList<>0;

        firstCreated.add(msg);

        storePhoneMsg.put(mobile, firstCreated);

        ) else{

        List alreadyExist= storePhoneMsg.get(mobile);

        alreadyExist.add(msg);

        storePhoneMsg.put(phoneNo, alreadyExist);")

        此段代碼的邏輯是:循環(huán)遍歷告警短信要通知的電話號碼列表,并檢查storePhoneMsg中是否已經(jīng)包含該電話號碼。若不包含,表示該電話號碼是第一次添加到storePhoneMsg中,創(chuàng)建List并添加到storePhoneMsg中;若包含,則表示該電話號碼已經(jīng)有告警短信信息存儲在storePhoneMsg中,那就需要取出該電話號碼對應(yīng)的List并將新的告警短信添加進去,最后將該List放回storePhoneMsg中。如此循環(huán)添加完畢后,在用嵌套循環(huán)遍歷出所有告警短信并發(fā)送出去。代碼如下:

        storePhoneMsg.forEach《mobile,msgList)→{

        for(String alertMsg: msgList){

        sendAlertMsg(mobile,alertMsg);

        }})。

        3 結(jié)論

        本文利用基于Java的InetSocketAddress類中的相關(guān)方法,結(jié)合數(shù)據(jù)庫存儲,實現(xiàn)了可自主定義的網(wǎng)絡(luò)狀態(tài)監(jiān)測和故障自動發(fā)現(xiàn)告警系統(tǒng),得出以下主要結(jié)論:

        (1) Java語言有豐富的類庫和方法,可較好地實現(xiàn)基于網(wǎng)絡(luò)的系統(tǒng)編程。

        (2)自定義的網(wǎng)絡(luò)監(jiān)測系統(tǒng)可以較好地實現(xiàn)本地定制,可靈活的根據(jù)實際情況對監(jiān)測對象和告警對象進行調(diào)整。

        (3)監(jiān)測系統(tǒng)總體運行平穩(wěn)良好,有故障能及時發(fā)現(xiàn)并告警,較好地實現(xiàn)了系統(tǒng)設(shè)計的初衷。但偶爾會出現(xiàn)極少數(shù)的錯誤告警,可能是因為網(wǎng)絡(luò)波動引起,需要根據(jù)實際情況再進行檢查,調(diào)整監(jiān)測參數(shù)。

        (4)考慮在不侵入原有業(yè)務(wù)代碼的情況下,引入Redis,提高監(jiān)測系統(tǒng)初始化數(shù)據(jù)的速度,盡量減少與數(shù)據(jù)庫的數(shù)據(jù)交互,提高系統(tǒng)運行效率。

        參考文獻:

        [1]田春婷.基于Java Socket文字聊天系統(tǒng)的GUl實現(xiàn)【J].蘭州石化職業(yè)技術(shù)學院學報,2019,19(2):11-15.

        [2]陸鑫,王艷蓉,孫超,史豪杰,一種高性能多模式的內(nèi)存數(shù)據(jù)庫系統(tǒng)[J].計算機應(yīng)用與軟件,2019,36(1):94-98.

        [3]余廣宏.實時數(shù)據(jù)庫技術(shù)的發(fā)展及應(yīng)用效果[J].電子技術(shù)與軟件工程,2016(20):185.

        [4]鄭逸凡.Java多線程機制及其在socket編程中的應(yīng)用[J].赤峰學院學報:自然科學版,2018,34(9):62-63.

        [5]歐陽宏基,李紅,宋笑雪.一種基于ES2SH框架的Java EE應(yīng)用架構(gòu)[J].實驗室研究與探索,2018,37(10):157-162,167.

        [6]喬嵐,基于MyBatis和Spring的JavaEE數(shù)據(jù)持久層的研究與應(yīng)用[J].信息與電腦,2017(8).

        [7]何軍,陳倩怡.Vue+Springboot+Mybatis開發(fā)消費管理系統(tǒng)[J].電腦編程技巧與維護,2019,404(2):89-90,104.

        [8]王倩;鄧媛劫.基于Java Socket的網(wǎng)絡(luò)聊天系統(tǒng)的設(shè)計[J].電腦與信息技術(shù),2018,6(1):51-53.

        [9]郭琳.分析Java語言與Java技術(shù)的應(yīng)用[Jl,電腦迷,2018,112(11):123.

        【通聯(lián)編輯:梁書】

        收稿日期:2019-11-09

        基金項目:青島市氣象局青年科研專項

        作者簡介:王宜明(1981-),男,山東青島人,工程師,碩士,主要研究方向為數(shù)據(jù)挖掘校驗以及服務(wù)運維。

        猜你喜歡
        電話號碼管理員端口
        我是小小午餐管理員
        歡歡家的電話號碼
        一種端口故障的解決方案
        科學家(2021年24期)2021-04-25 13:25:34
        我是圖書管理員
        少先隊活動(2020年8期)2020-12-18 02:32:07
        我是圖書管理員
        少先隊活動(2020年7期)2020-12-18 01:48:39
        可疑的管理員
        端口阻塞與優(yōu)先級
        不能忘記的電話號碼
        猜電話號碼
        初識電腦端口
        電腦迷(2015年6期)2015-05-30 08:52:42
        成 人免费va视频| 男女打扑克视频在线看| 日本av一区二区三区视频| 狠狠躁夜夜躁人人爽天天古典| 妇女性内射冈站hdwwwooo| 精品无码人妻久久久一区二区三区 | 亚洲免费福利视频网站| 亚洲国产精品无码一线岛国| 精品日本韩国一区二区三区| 高清高速无码一区二区| 国产av一区二区三区狼人香蕉 | 大香伊蕉国产av| 无码在线观看123| 亚洲一二三四五中文字幕| 日本国产成人国产在线播放| 日本巨大的奶头在线观看| 成人午夜免费福利| 中文字幕亚洲高清视频| 亚洲国产精品无码中文字| 亚洲日韩欧美国产高清αv| 成年人视频在线播放视频| 人妻熟女翘屁股中文字幕| 亚洲无亚洲人成网站77777| 国产小视频网址| 一区二区三区手机看片日本韩国| 久久久久高潮综合影院| 欧美熟妇色ⅹxxx欧美妇| 亚洲无码图| 91亚洲国产成人精品一区.| 久久精品国产亚洲av高清热| 国产自产精品露脸刺激91在线| 女女同性av一区二区三区| 国产69精品久久久久9999apgf| 欧美巨大xxxx做受中文字幕| 太大太粗太爽免费视频| 老熟女老女人国产老太| 欧美交换配乱吟粗大25p| 精精国产xxx在线视频app | 久久精品国产免费观看三人同眠| 欧美老妇与zozoz0交| 亚洲无亚洲人成网站77777|