<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    afunms

    My Software,My Dream—Forge a more perfect NMS product.

    #

    在揭陽(yáng)的三天三夜

    04-07
    1. 測(cè)試了現(xiàn)有的代碼,僅找到很少的幾條鏈路,而且結(jié)果還不正確。
    2. 最奇怪的是,bridge.mib里的fdb表都沒有數(shù)據(jù),我的發(fā)現(xiàn)算法是基于fdb來(lái)作的,
       fdb表沒數(shù)據(jù),肯定找不到鏈路。
    3. 突然想起北京同事說(shuō)的NDP,于是想用華為的NDP試試,加載huawei-hgmp.mib,
       結(jié)果發(fā)現(xiàn)H3C的設(shè)備里根本沒有數(shù)據(jù),太失望了。


    04-08
    1. 想起三年前在安徽恒源的痛苦經(jīng)歷,但最終是用STP得到正確的結(jié)果。于是,我又試了
       基于STP的發(fā)現(xiàn),還是沒結(jié)果。為什么?因?yàn)镾TP里的數(shù)據(jù)不滿足算法的要求。
    2. 看來(lái)這次真的遇到挑戰(zhàn)了。路由表里全是OSPF,我又想起曾經(jīng)看過(guò)一篇文章,寫的是基本
       OSPF的拓?fù)浒l(fā)現(xiàn)。在網(wǎng)上搜索了半天,只有萬(wàn)方的論文里有相關(guān)文章,無(wú)奈之下,只好用
       手機(jī)短信花了3塊錢下了一篇論文。按論文里的算法,改了程序,經(jīng)測(cè)試后,雖然有點(diǎn)進(jìn)步,
       但仍有多臺(tái)設(shè)備處于孤立狀態(tài),找不到鏈路,太郁悶了。
    3. 用SolarWinds下載了所有h3c上的mib,回賓館研究。發(fā)現(xiàn)SolarWinds在win7下的一個(gè)bug,
       導(dǎo)出功能完全不能用,我只好把結(jié)果存成txt。


    04-09
    1. 從下載的mib數(shù)據(jù)中驚奇地發(fā)現(xiàn),h3c使用了Q-bridge而不是bridge,這就難怪bridge里的fdb
       表沒有數(shù)據(jù)。這又讓我心中燃起了希望。但Q-bridge里的address這一字段沒數(shù)據(jù),所以要用
       walk(而不是table)才能取到數(shù)據(jù)。
    2. 專門寫了一個(gè)取Q-bridge fdb表數(shù)據(jù)的類。核心交換h3c7510中的fdb表項(xiàng)巨大,大約有800條
       之多,snmp4j沒取完就超時(shí)了,用SolarWinds也會(huì)出現(xiàn)超時(shí)的現(xiàn)象。
    3. 再次測(cè)試了發(fā)現(xiàn)程序,由于有了fdb表的數(shù)據(jù),多找出好多鏈路,但仍不完整。
    4. 收集了所有設(shè)備的mib數(shù)據(jù),回廣州慢慢研究。


    在揭陽(yáng)的三天三夜
    ,緊張而痛苦。我真的遇到一個(gè)大難題......

    posted @ 2010-04-10 11:05 afunms 閱讀(599) | 評(píng)論 (1)編輯 收藏

    MySQL存儲(chǔ)過(guò)程和任務(wù)

    stored procedure
    創(chuàng)建
    create procedure sp_name()
    begin
    ………
    end

    調(diào)用
    call sp_name()
    注意:存儲(chǔ)過(guò)程名稱后面必須加括號(hào),哪怕該存儲(chǔ)過(guò)程沒有參數(shù)傳遞

    刪除
    drop procedure sp_name

    其他
    1.show procedure status
    顯示數(shù)據(jù)庫(kù)中所有存儲(chǔ)的存儲(chǔ)過(guò)程基本信息,包括所屬數(shù)據(jù)庫(kù),存儲(chǔ)過(guò)程名稱,創(chuàng)建時(shí)間等
    2.show create procedure sp_name
    顯示某一個(gè)存儲(chǔ)過(guò)程的詳細(xì)信息

    例子:
    CREATE PROCEDURE `bag_app_flow`()
    insert into bag_app_flow
    select pid,avg(in_speed),avg(out_speed),max(log_time) log_time
    from bag_app_flow_raw
    where hour(now()) - hour(log_time) = 1
    group by pid,date_format(log_time,'%Y-%m-%d %H');

    --------------
    event
    使用下列的任意一句開啟計(jì)劃任務(wù):
               SET GLOBAL event_scheduler = ON;
               SET @@global.event_scheduler = ON;
               SET GLOBAL event_scheduler = 1;
               SET @@global.event_scheduler = 1;
    Event Scheduler創(chuàng)建的基本語(yǔ)法是:
              CREATE EVENT      
              [IF NOT EXISTS]    
              event_name        
              ON SCHEDULE schedule  
              [ON COMPLETION [NOT] PRESERVE]
              [ENABLE | DISABLE]      
              [COMMENT 'comment']     
              DO sql_statement 

    如果要調(diào)用procedure
        call sp_name() ,如
    create event flow_job
    on schedule every 1 hour
    starts '2009-12-26 18:06:00'
    do
    call bag_ip_flow();

    如果有多個(gè)procedures,則要加begin...end,如
    create event flow_job
    on schedule every 1 hour
    starts '2009-12-26 18:06:00'
    do
    begin
    call  bag_app_flow();
    call bag_ip_flow();
    call bag_ip_group_flow();
    end

    posted @ 2009-12-26 18:59 afunms 閱讀(245) | 評(píng)論 (0)編輯 收藏

    snmp trap處理

    在研究了思科的Trap以及朗訊的Trap后,總結(jié)出處理trap的思路:

    posted @ 2009-12-16 12:12 afunms 閱讀(242) | 評(píng)論 (0)編輯 收藏

    JPCAP——JAVA中的數(shù)據(jù)鏈路層控制

         摘要: JPCAP——JAVA中的數(shù)據(jù)鏈路層控制   一.JPCAP簡(jiǎn)介 眾所周知,JAVA語(yǔ)言雖然在TCP/UDP傳輸方面給予了良好的定義,但對(duì)于網(wǎng)絡(luò)層以下的控制,卻是無(wú)能為力的。JPCAP擴(kuò)展包彌補(bǔ)了這一點(diǎn)。 JPCAP實(shí)際上并非一個(gè)真正去實(shí)現(xiàn)對(duì)數(shù)據(jù)鏈路層的控制,而是一個(gè)中間件,JPCAP調(diào)用wincap/libpcap,而給JAVA語(yǔ)言提供一個(gè)公共的接口,從而實(shí)現(xiàn)了平臺(tái)無(wú)關(guān)性。...  閱讀全文

    posted @ 2009-12-09 10:22 afunms 閱讀(292) | 評(píng)論 (0)編輯 收藏

    kbps

            碼率就是數(shù)據(jù)傳輸時(shí)單位時(shí)間傳送的數(shù)據(jù)位數(shù),一般我們用的單位是kbps即千位每秒。
      通俗一點(diǎn)的理解就是取樣率,單位時(shí)間內(nèi)取樣率越大,精度就越高,處理出來(lái)的文件就越接近原始文件,但是文件體積與取樣率是成正比的,所以幾乎所有的編碼格式重視的都是如何用最低的碼率達(dá)到最少的失真,圍繞這個(gè)核心衍生出來(lái)的cbr(固定碼率)與vbr(可變碼率),都是在這方面做的文章,不過(guò)事情總不是絕對(duì)的,從音頻方面來(lái)說(shuō),碼率越高,被壓縮的比例越小,音質(zhì)損失越小,與音源的音質(zhì)越接近。
      計(jì)算機(jī)中的信息都是二進(jìn)制的0和1來(lái)表示,其中每一個(gè)0或1被稱作一個(gè)位,用小寫b表示,即bit(位);大寫B(tài)表示byte,即字節(jié),一個(gè)字節(jié)=八個(gè)位,即1B=8b;前面的大寫K表示千的意思,即千個(gè)位(Kb)或千個(gè)字節(jié)(KB)。表示文件的大小單位,一般都使用字節(jié)(KB)來(lái)表示文件的大小。
      Kbps:首先要了解的是,ps指的是/s,即每秒。Kbps又稱比特率,指的是數(shù)字信號(hào)的傳輸速率,也就是每秒鐘傳送多少個(gè)千位的信息(K表示千位,Kb表示的是多少千個(gè)位);Kbps也可以表示網(wǎng)絡(luò)的傳輸速度,為了在直觀上顯得網(wǎng)絡(luò)的傳輸速度較快,一般公司都使用kb(千位)來(lái)表示,如果是KBps,則表示每秒傳送多少千字節(jié)。1KByte/s=8Kbps(一般簡(jiǎn)寫為1KBps=8Kbps)。ADSL上網(wǎng)時(shí)的網(wǎng)速是512Kbps,如果轉(zhuǎn)換成字節(jié),就是512/8=64KBps(即64千字節(jié)每秒)
      在這里需要說(shuō)明的問題是在單位換算上有一點(diǎn)是極其重要的即:1Mb=1024kb=1024000b 而1MB=1024KB=1024*1024B=1024*1024*8b=8388608b這在數(shù)量上差的很多
      值得注意的是:
      1KB=1024B=1024*8b 1kB=1000B=8000b
      1Kb=1kb=1000b
      在單位換算上一定要注意 正常是以KBps來(lái)表示帶寬
      KBps與kBps的區(qū)別
      小k代表kilo,千的意思,也就是1000,而B就是字節(jié)的意思,ps就是每秒的意思,那么連起來(lái)Bps就是字節(jié)每秒的意思。
      那么kBps就是1000Bps也就是一千字節(jié)每秒的意思。
      而大家都知道在電腦里,KB和B是不同的單位,他們之間換算是1KB=1024B的。
      而KBps(K為大寫字母)就等于1024Bps。而kBps(k為小寫字母)的意思是千字節(jié)每秒。
      千字節(jié)每秒(KBps)與一千字節(jié)每秒(kBps)是不同的。
      KBps=1024Bps,kBps=1000Bps
      也就是說(shuō)KBps>kBps [1]
      人們常用Kbps形容音樂的聽覺效果。
      在WINDOWS 中它被稱為“位速”,在一些播放器中被形容為“比特率”。
      質(zhì)量是指將數(shù)字聲音由模擬格式轉(zhuǎn)化成數(shù)字格式的采樣率,采樣率越高,還原后的音質(zhì)就越好。
      ●Kbps值與現(xiàn)實(shí)音頻對(duì)照:
      16Kbps=電話音質(zhì)
      24Kbps=增加電話音質(zhì)、短波廣播、長(zhǎng)波廣播、歐洲制式中波廣播
      40Kbps=美國(guó)制式中波廣播
      56Kbps=話音
      64Kbps=增加話音(手機(jī)鈴聲最佳比特率設(shè)定值、手機(jī)單聲道MP3播放器最佳設(shè)定值)
      112Kbps=FM調(diào)頻立體聲廣播
      128Kbps=磁帶(手機(jī)立體聲MP3播放器最佳設(shè)定值、低檔MP3播放器最佳設(shè)定值)
      160Kbps=HIFI高保真(中高檔MP3播放器最佳設(shè)定值)
      192Kbps=CD(高檔MP3播放器最佳設(shè)定值)
      256Kbps=Studio音樂工作室(音樂發(fā)燒友適用)
      實(shí)際上隨著技術(shù)的進(jìn)步,音樂質(zhì)量也越來(lái)越高,MP3的最高質(zhì)量為320Kbps,但一些格式可以達(dá)到更高的質(zhì)量和更高的音質(zhì)。
      比如正逐漸興起的APE音頻格式,能夠提供真正發(fā)燒級(jí)的無(wú)損音質(zhì)和相對(duì)于WAV格式更小的體積,其質(zhì)量通常為550kbps-----950kbps。
      其他: 常見編碼模式:
      VBR(Variable Bitrate)動(dòng)態(tài)比特率 也就是沒有固定的比特率,壓縮軟件在壓縮時(shí)根據(jù)音頻數(shù)據(jù)即時(shí)確定使用什么比特率,這是以質(zhì)量為前提兼顧文件大小的方式,推薦編碼模式;
      ABR(Average Bitrate)平均比特率 是VBR的一種插值參數(shù)。LAME針對(duì)CBR不佳的文件體積比和VBR生成文件大小不定的特點(diǎn)獨(dú)創(chuàng)了這種編碼模式。ABR在指定的文件大小內(nèi),以每50幀(30幀約1秒)為一段,低頻和不敏感頻率使用相對(duì)低的流量,高頻和大動(dòng)態(tài)表現(xiàn)時(shí)使用高流量,可以做為VBR和CBR的一種折衷選擇。
      CBR(Constant Bitrate),常數(shù)比特率 指文件從頭到尾都是一種位速率。相對(duì)于VBR和ABR來(lái)講,它壓縮出來(lái)的文件體積很大,而且音質(zhì)相對(duì)于VBR和ABR不會(huì)有明顯的提高。

    posted @ 2009-12-01 10:40 afunms 閱讀(280) | 評(píng)論 (0)編輯 收藏

    產(chǎn)品功能介紹

     

    產(chǎn)品功能介紹

    一、       網(wǎng)絡(luò)管理

    1.    網(wǎng)絡(luò)拓?fù)渥詣?dòng)發(fā)現(xiàn)。輸入核心設(shè)備的IP地址或核心子網(wǎng)的網(wǎng)絡(luò)地址,系統(tǒng)自動(dòng)發(fā)現(xiàn)設(shè)備以及鏈路,完成后畫出全網(wǎng)物理拓?fù)鋱D。

    2.    拓?fù)鋱D展現(xiàn)。

    ① 將網(wǎng)絡(luò)自動(dòng)發(fā)現(xiàn)結(jié)果的以拓?fù)鋱D的形式進(jìn)行展示,提供設(shè)備、鏈路的實(shí)時(shí)信息。用戶也可對(duì)該圖進(jìn)行自定義的布局。

    ② 不同設(shè)備類型以不同的圖標(biāo)進(jìn)行展示,而且隨著設(shè)備運(yùn)行狀態(tài)(CPU使用率、內(nèi)存使用率和鏈路連通狀態(tài)等)變化其圖標(biāo)顏色(藍(lán)>黃>紅)亦相應(yīng)變化。

    ③ 可按IP或機(jī)器名搜索,快速定位到設(shè)備。

    ④ 可將拓?fù)鋱D另存為JPG圖片。

    ⑤ 鷹眼視圖為全網(wǎng)絡(luò)的縮略圖,點(diǎn)擊其中任一個(gè)點(diǎn)可定位到視圖上的設(shè)備。

    3.設(shè)備基本性能數(shù)據(jù)。CPU、內(nèi)存、接口表、路由表、ARP表等。同時(shí),可下載設(shè)備配置文件,以作備份。

    二、       服務(wù)器管理

    1.基本性能信息:CPU、內(nèi)存、硬盤/文件系統(tǒng)利用率。

    2.端口使用情況、進(jìn)程存活、安裝軟件、裸文件(Aix)。

    3.可采集服務(wù)器日志作統(tǒng)計(jì)分析。

    三、       數(shù)據(jù)庫(kù)管理

    1. Oracle

    基本信息:所處的服務(wù)器名、數(shù)據(jù)庫(kù)版本、大小。

    響應(yīng)時(shí)間、用戶連接數(shù)、用戶權(quán)限角色。

    數(shù)據(jù)庫(kù)狀態(tài)、表空間利用率、數(shù)據(jù)庫(kù)鎖。

    SGA擊中率、用戶會(huì)話、SQL執(zhí)行情況。

    2. MS-SQL

    基本信息:數(shù)據(jù)庫(kù)所在的主機(jī)名、數(shù)據(jù)庫(kù)版本、數(shù)據(jù)庫(kù)文件路徑。

    響應(yīng)時(shí)間、緩存擊中率、內(nèi)存使用信息、查詢頁(yè)信息。

    事務(wù)鎖等待時(shí)間、數(shù)據(jù)文件大小、活動(dòng)用戶數(shù)。

    3. My-SQL

    基本信息:數(shù)據(jù)庫(kù)所在操作系統(tǒng)的類型、數(shù)據(jù)庫(kù)版本、數(shù)據(jù)庫(kù)安裝路徑、數(shù)據(jù)文件路徑。

    響應(yīng)時(shí)間、每分鐘請(qǐng)求數(shù)、每秒發(fā)送/接收字節(jié)數(shù)、連接信息、線程信息。

    表詳細(xì)信息、用戶會(huì)話。

    四、       中間件管理

    1. Weblogic

    基本信息:操作系統(tǒng)類型、版本、使用JAVA版本、提供者。

    響應(yīng)時(shí)間、JVM使用率、JDBC連接池。

    線程池、web應(yīng)用會(huì)話。

    2. Websphere

    響應(yīng)時(shí)間、JVM使用率。

    JDBC連接池、線程池、servlet會(huì)話。

    3. Tomcat

    基本信息:Tomcat版本、操作系統(tǒng)類型、版本、JAVA版本、提供者。

    響應(yīng)時(shí)間、鏈接器線程、JVM堆棧使用情況、服務(wù)器請(qǐng)求。

    數(shù)據(jù)庫(kù)連接池、web會(huì)話。

    五、Web服務(wù)器

    1. HTTP URL

    頁(yè)面大小。

    響應(yīng)時(shí)間。

    2. IIS

    響應(yīng)時(shí)間。

    IIS里各網(wǎng)站的性能參數(shù)。

    六、IP地址管理

    1. 基于子網(wǎng)的IP地址分布圖。

    2. 基于子網(wǎng)的IP地址使用情況統(tǒng)計(jì)。

    3. IP-MAC地址綁定,或者IP-MAC-交換機(jī)端口綁定。

    4. IP定位:確定IP地址上聯(lián)交換機(jī)的端口。

    七、事件及告警管理

    1. 可接收設(shè)備Syslog數(shù)據(jù),按關(guān)鍵字匹配把Syslog轉(zhuǎn)成系統(tǒng)告警。

    2. 可接收設(shè)備SNMP Trap數(shù)據(jù),可處理通用Trap數(shù)據(jù)。同時(shí),可按產(chǎn)商私有MIB來(lái)翻譯產(chǎn)商特殊的Trap數(shù)據(jù),并轉(zhuǎn)換成系統(tǒng)告警(需定制開發(fā))。

    曾經(jīng)成功完成對(duì)朗讀ATM交換機(jī)Trap數(shù)據(jù)的完全解析。

    3. 告警設(shè)置不僅限于閥值越界告警,還有屬性匹配告警、屬性變化告警以及實(shí)體增加或刪除告警。

    4. 告警分析實(shí)現(xiàn)告警壓縮、告警合并(告警根源分析)、告警升級(jí)以及告警恢復(fù)通知。

    5. 告警通知方式:Email、聲音、彈出窗口和手機(jī)短信。

    6. 控制告警通知方式:連續(xù)式(每產(chǎn)生一次告警都發(fā)通知)、跳躍式(每隔3次告警才發(fā)通知)和一次式(僅發(fā)一次通知)。

    八、報(bào)表管理

    1. 網(wǎng)絡(luò)設(shè)備整體性能報(bào)表。

    2. 服務(wù)器整體性能報(bào)表。

    3.網(wǎng)絡(luò)設(shè)備接口性能報(bào)表。

    4.服務(wù)器接口性能報(bào)表。

    九、流量管理

    1. 支持Netflow V5和V9。

    2. 對(duì)于較小的網(wǎng)絡(luò)(設(shè)備數(shù)在100內(nèi)),可以用交換機(jī)端口鏡像(span)。系統(tǒng)用JPCAP采集原始數(shù)據(jù)。

    十、可定制開發(fā)其它功能,比如實(shí)現(xiàn)對(duì)防火墻、防病毒系統(tǒng)和IDS的日志采集和分析。

    系統(tǒng)截圖

    http://www.tkk7.com/afunms/gallery/43080.html

    posted @ 2009-11-30 20:33 afunms 閱讀(288) | 評(píng)論 (0)編輯 收藏

    jar命令

    用jar打包c(diǎn)lasses,老是會(huì)忘記

    C:\java\jdk1.6.0_03\bin>jar cvf c:/nms.jar classes/*.*

    posted @ 2009-11-27 17:19 afunms 閱讀(169) | 評(píng)論 (0)編輯 收藏

    ATM網(wǎng)的拓?fù)浒l(fā)現(xiàn)

           ATM網(wǎng)的拓?fù)浒l(fā)現(xiàn),在網(wǎng)上根本找不到相關(guān)資料,經(jīng)過(guò)自己長(zhǎng)時(shí)間的研究,終于有了結(jié)果。經(jīng)過(guò)實(shí)際驗(yàn)證,證明是正確的。

    其實(shí)它比IP網(wǎng)的拓?fù)浒l(fā)現(xiàn)要簡(jiǎn)單得多。

    獲取PVC

    PSAX ATM中有4PVC

    ATM2ATM PVC

    cirEm2ATM PVC

    bridge2ATM PVC

    gige2ATM PVC

    由于在acmib中沒有定義gige2ATM PVC,所以只能找到其他三種PVC。

    三種PVC的獲取方法:

    PVC

    Table

    OID

    ATM2ATM

    atmPvcVccTable

    1.3.6.1.4.1.1751.2.18.6.1.1

    cirEm2ATM

    cirEmAtmPvcVccTable

    1.3.6.1.4.1.1751.2.18.6.6.1

    bridge2ATM

    bridgeAtmPvcVccTable

    1.3.6.1.4.1.1751.2.18.6.13.1

    算法:

    (1)    找出所有activepvc。

    (2)    pvc相同且pvc的服務(wù)類型(serviceType)相同的兩個(gè)atm之間存在一條物理鏈路。這兩表中sreviceType的代碼所表示的serviceType不相同,比如在atmPvcVccTableserviceType定義為

          SYNTAX INTEGER {

                                    ubr(1),

                                    vbr-nrt2(2),

                                    vbr-nrt1(3),

                                    vbr-rt2(4),

                                    vbr-rt1(5),

                                    vbr-express(6),

                                    cbr4(7),

                                    cbr3(8),

                                    cbr2(9),

                                    cbr1(10),

                                    gfr2(11)

                                    }

    而在cirEmAtmPvcVccTable中為

    SYNTAX INTEGER {

                                    cbr-1(1),

                                    cbr-2(2),

                                    cbr-3(3),

                                    cbr-4(4)

                                   }

    所以不能比較數(shù)字,而應(yīng)該比較字符串。

    (3)    要得到pvc及其所在的接口,就必須得到三個(gè)表中的index,以bridgePvcVccTable為例:


     

    以第一行來(lái)說(shuō)明 1305001.101001.11.260

    1305001 interface sideA

    101001 interface sideB

    11.260 PVC

    所以在臺(tái)ATM11-260這條PVC就是接在sideB(為什么取sideB而不是sideA?我現(xiàn)在還不明白)101001這個(gè)接口上。Interface的格式為SSPPCCC,以此得到物理接口0101。

        有些鏈路找不到,可以肯定地說(shuō),是因?yàn)檎也坏?/span>gige2ATM pvc。

    posted @ 2009-10-29 21:55 afunms 閱讀(270) | 評(píng)論 (0)編輯 收藏

    PSAX Trap 翻譯(4)

    有了以上三張表,很容易把PSAX Trap翻譯過(guò)來(lái):
    /**
         * 翻譯snmp trap
         
    */

        
    private String translatePsaxTrap(Connection conn,SnmptrapDto dto) throws Exception{
            StringBuffer trap 
    = new StringBuffer(200
    );
            Statement stat 
    =
     conn.createStatement();
            String oid 
    = dto.getOid() + "." +
     dto.getSpecifics();
            ResultSet rs 
    = stat.executeQuery("select b.description from acmib_oid a,acmib_event b where a.oid='" + oid + "' and a.symbol=b.symbol"
    );
            
    if
    (rs.next())
                trap.append(rs.getString(
    1
    ));
            
            String[] msgs 
    = dto.getMessage().split(","
    );
            
    /**
             * 過(guò)濾掉最后一行1.3.6.1.4.1.1751.2.18.1.146.
             
    */

            
    for(int i=0;i < msgs.length - 1;i++){
                String[] _msgs 
    = msgs[i].split("="
    );
                String _oid 
    = _msgs[0].substring(0,_msgs[0].length() - 3); //去掉最后.0

                String _value = _msgs[1].trim();            
                rs 
    = stat.executeQuery("select * from acmib_oid where oid='" + _oid + "'"
    );
                
    if(rs.next())
    {
                    trap.append(rs.getString(
    "symbol")).append("=").append(_msgs[1
    ]);
                    
    if(rs.getString("symbol").endsWith("Code"))
    {
                        ResultSet _rs 
    = stat.executeQuery("select * from acmib_code where symbol='" + rs.getString("symbol"+ "' and code=" +
     _value);
                        
    if
    (_rs.next())
                            trap.append(
    "[").append(_rs.getString("description")).append("]"
    );
                    }

                    trap.append(
    ",");
                }
                
            }

            
    return trap.toString();
        }
    (這里省略了接受SNMP Trap的代碼)

    舉例1:
    Trap原包內(nèi)容:
    oid=
    1.3.6.1.4.1.1751.2.18.8.4
    specifics=67
    message=
    1.3.6.1.4.1.1751.2.18.6.31.1.1.0 = 1309001,
    1.3.6.1.4.1.1751.2.18.6.33.1.1.0 = 14,
    1.3.6.1.4.1.1751.2.18.6.33.1.2.0 = 153,
    1.3.6.1.4.1.1751.2.18.6.33.1.3.0 = 45:86:20:02:00:88:01:00:0f:00:00:00:00:00:00:06:00:90:01:77,
    1.3.6.1.4.1.1751.2.18.6.33.1.4.0 = 301001,
    1.3.6.1.4.1.1751.2.18.6.33.1.5.0 = 0,
    1.3.6.1.4.1.1751.2.18.6.33.1.6.0 = 669,
    1.3.6.1.4.1.1751.2.18.1.146.1.1.0 = 100286

    翻譯后:
    Notification that a SPVC connection between ATM and ATM endpoints has been deleted. spvcAddrIfA= 1309001,
    atmAtmSpvcVccVpiA= 14,
    atmAtmSpvcVccVciA= 153,
    atmAtmSpvcVccRemoteAtmPortAddr= 45:86:20:02:00:88:01:00:0f:00:00:00:00:00:00:06:00:90:01:77,
    atmAtmSpvcVccIfB= 301001,
    atmAtmSpvcVccVpiB= 0,
    atmAtmSpvcVccVciB= 669,
    (這個(gè)atmAtmSpvcVccRemoteAtmPortAddr應(yīng)該能轉(zhuǎn)成一個(gè)IP或Interface,暫時(shí)沒搞明白)
    很明顯,可以明白是一條ATM2ATM的SPVC被刪除。

    舉例2:
    Trap原包內(nèi)容:
    oid=
    1.3.6.1.4.1.1751.2.18.8.3
    specifics=104
    message=
    1.3.6.1.4.1.1751.2.18.15.2.0 = 1309001,
    1.3.6.1.4.1.1751.2.18.15.4.0 = 67,
    1.3.6.1.4.1.1751.2.18.1.146.1.1.0 = 100374,
    翻譯后:
    Notification that a interface has undergone reduction in bandwidth. Critical depending on  Failure Reason Code.interfaceIndex= 1309001,interfaceFailureReasonCode= 67[newBWBelowCurrentAllocated]
    可以看明白,是一個(gè)通道的帶寬被改小了。

    posted @ 2009-10-24 01:16 afunms 閱讀(125) | 評(píng)論 (0)編輯 收藏

    PSAX Trap 翻譯(3)

    最后,用mibble把a(bǔ)cmib所有代碼和它相應(yīng)的描述導(dǎo)入數(shù)據(jù)庫(kù)。
        /**
         * 導(dǎo)入acmib中所有類型代碼與描述的對(duì)映
         
    */

        
    public void importCode(){
            MibBrowser mb 
    = new
     MibBrowser();
            Mib mib 
    = mb.getMib("e:/ACMIB.mib"
    );
            List mvss 
    =
     (List)mib.getAllSymbols();
            Connection conn 
    =
     ConnectionManager.getConnection();
            
    int id = 1
    ;            
            
    try
    {
                Statement stat 
    =
     conn.createStatement();
                
    for(int i=0,n=mvss.size();i<n;i++)

                    
    if(mvss.get(i) instanceof
     MibValueSymbol
                            
    && ((MibValueSymbol)mvss.get(i)).getType() instanceof SnmpObjectType)    
    {                
                        MibValueSymbol mvs 
    =
     (MibValueSymbol)mvss.get(i);                
                        SnmpObjectType soType 
    =
     (SnmpObjectType)mvs.getType();                
                        
    if(soType.getSyntax() instanceof IntegerType)
    {
                            IntegerType intType 
    =
     (IntegerType)soType.getSyntax();
                            MibValueSymbol[] itss 
    =
     intType.getAllSymbols();
                            
    if(itss.length > 0
    )
                                
    for(int j=0;j < itss.length;j++)
    {
                                    stat.addBatch(
    "insert into acmib_code(id,symbol,code,description)values("
     
                                    
    + id + ",'" + mvs.getName() + "'," + itss[j].getValue() + ",'" + itss[j].getName() + "')"
    );
                                    id
    ++
    ;
                                }

                        }

                    }

                    
    if( id % 100 == 0)
                        stat.executeBatch();
                }

                stat.executeBatch();
            }
    catch(Exception e){
                e.printStackTrace();
            }
                     
        }
        
    結(jié)果如下:

    這樣,為翻譯psax trap的所有的基礎(chǔ)數(shù)據(jù)都準(zhǔn)備好了。

    posted @ 2009-10-23 13:59 afunms 閱讀(135) | 評(píng)論 (0)編輯 收藏

    PSAX Trap 翻譯(2)

     接著,用mibbleacmib中所有事件導(dǎo)入數(shù)據(jù)庫(kù):
    /**
         * 導(dǎo)入事件
         
    */

        
    public void importEvent(){
            MibBrowser mb 
    = new
     MibBrowser();
            Mib mib 
    = mb.getMib("e:/ACMIB.mib"
    );
            List mvss 
    =
     (List)mib.getAllSymbols();
            Connection conn 
    =
     ConnectionManager.getConnection();
            
    int id = 1
    ;            
            
    try
    {
                Statement stat 
    =
     conn.createStatement();            
                
    for(int i=0,n=mvss.size();i<n;i++)

                    
    if(mvss.get(i) instanceof
     MibValueSymbol
                        
    && ((MibValueSymbol)mvss.get(i)).getType() instanceof SnmpNotificationType)    
    {
                        MibValueSymbol mvs 
    =
     (MibValueSymbol)mvss.get(i);
                        SnmpNotificationType snt 
    =
     (SnmpNotificationType)mvs.getType();
                        String descr 
    = null
    ;
                        String originDescr 
    = null
    ;
                        
    if(snt.getDescription().indexOf(":"> 0
    )
                            descr 
    = snt.getDescription().substring(snt.getDescription().indexOf(":"+ 2
    );    
                        
    else

                            descr 
    = snt.getDescription();
                        
    if(descr.indexOf("Return value"> 0
    )
                            descr 
    = descr.substring(0,descr.indexOf("Return value"
    ));    
                        
    if(descr.indexOf("Data send with the trap"> 0
    )
                            descr 
    = descr.substring(0,descr.indexOf("Data send with the trap"
    ));
                        descr 
    = descr.replaceAll("\n"" "
    );
                        descr 
    = descr.replaceAll("'""''"
    );
                        originDescr 
    = snt.getDescription().replaceAll("'""''"
    );
                        stat.addBatch(
    "insert into acmib_event(id,symbol,description,origin_description)values(" + id + ",'" + mvs.getName() + "','" + descr + "','" + originDescr + "')"
    );    
                        id
    ++
    ;      
                        
    if( id % 100 == 0
    )
                            stat.executeBatch();
                    }

                }

                stat.executeBatch();
            }
    catch(Exception e){
                e.printStackTrace();
            }

        }

    結(jié)果如下:
     

    posted @ 2009-10-22 10:52 afunms 閱讀(104) | 評(píng)論 (0)編輯 收藏

    PSAX Trap 翻譯(1)

         今天終于實(shí)現(xiàn)把朗訊PSAX ATM交換機(jī)的SNMP Trap翻譯成明文的功能。前后花了四天的時(shí)間。

         開始,我想用mibble把a(bǔ)cmib完全解析出來(lái),但折騰了一整天,都沒有結(jié)果,至少最重要的OID是終始出不來(lái),可能是我不會(huì)用mibble吧。

         接著換種思路,用SolarWinds(一個(gè)很好用的mib browser)把a(bǔ)cmib copy成純文本。

           文本如下:
     

    acMIB     1.3.6.1.4.1.1751.2.18

    connectionConfig   1.3.6.1.4.1.1751.2.18.6

    atmAtmSpvcVccTable   1.3.6.1.4.1.1751.2.18.6.33

    atmAtmSpvcVccEntry   1.3.6.1.4.1.1751.2.18.6.33.1

    atmAtmSpvcVccStatsInOdometerCellCountHiB   1.3.6.1.4.1.1751.2.18.6.33.1.50

    atmAtmSpvcVccStatsInOdometerCellCountLoA 1.3.6.1.4.1.1751.2.18.6.33.1.47

    atmAtmSpvcVccStatsInOdometerCellCountLoB 1.3.6.1.4.1.1751.2.18.6.33.1.51

    atmAtmSpvcVccStatsOdometerReset   1.3.6.1.4.1.1751.2.18.6.33.1.55

    atmAtmSpvcVccStatsOdometerTimer 1.3.6.1.4.1.1751.2.18.6.33.1.54

    atmAtmSpvcVccStatsOutCellCountHiA1.3.6.1.4.1.1751.2.18.6.33.1.37

    atmAtmSpvcVccStatsOutCellCountHiB1.3.6.1.4.1.1751.2.18.6.33.1.41

    atmAtmSpvcVccStatsOutCellCountLoA       1.3.6.1.4.1.1751.2.18.6.33.1.38

    atmAtmSpvcVccStatsOutCellCountLoB       1.3.6.1.4.1.1751.2.18.6.33.1.42

    atmAtmSpvcVccStatsOutOdometerCellCountHiA1.3.6.1.4.1.1751.2.18.6.33.1.48

    atmAtmSpvcVccStatsOutOdometerCellCountHiB1.3.6.1.4.1.1751.2.18.6.33.1.52

    atmAtmSpvcVccStatsOutOdometerCellCountLoA       1.3.6.1.4.1.1751.2.18.6.33.1.49

    atmAtmSpvcVccStatsOutOdometerCellCountLoB       1.3.6.1.4.1.1751.2.18.6.33.1.53

    atmAtmSpvcVccStatsTimer 1.3.6.1.4.1.1751.2.18.6.33.1.43

    atmAtmSpvcVccSusCellRateA2B 1.3.6.1.4.1.1751.2.18.6.33.1.10

    atmAtmSpvcVccSusCellRateB2A 1.3.6.1.4.1.1751.2.18.6.33.1.16

    atmAtmSpvcVccTfcDescModify 1.3.6.1.4.1.1751.2.18.6.33.1.70

    atmAtmSpvcVccTrafficShapingA2B     1.3.6.1.4.1.1751.2.18.6.33.1.64

    atmAtmSpvcVccTrafficShapingB2A     1.3.6.1.4.1.1751.2.18.6.33.1.65

    atmAtmSpvcVccType    1.3.6.1.4.1.1751.2.18.6.33.1.20

    atmAtmSpvcVccVciA    1.3.6.1.4.1.1751.2.18.6.33.1.2

    atmAtmSpvcVccVciB    1.3.6.1.4.1.1751.2.18.6.33.1.6

    atmAtmSpvcVccViA      1.3.6.1.4.1.1751.2.18.6.33.1.56

    ……
     

    把這個(gè)文本導(dǎo)入數(shù)據(jù)庫(kù):

    /**
         * acmib.mib有兩個(gè)版本,此方法把兩個(gè)版本中數(shù)據(jù)都導(dǎo)入數(shù)據(jù)庫(kù).
         * 但保證不會(huì)有重復(fù)的oid
         
    */

        
    public void importOid(){
            Connection conn 
    =
     ConnectionManager.getConnection();
            
    try
    {            
                Statement stat 
    =
     conn.createStatement();
                BufferedReader in1 
    = new BufferedReader(new FileReader("e:/acmib.txt"
    ));
                String row 
    = null
    ;
                
    int id = 1
    ;
                
    while((row=in1.readLine())!=null)
    {
                    
    int loc = row.indexOf("1.3.6."
    );
                    String symbol 
    = row.substring(0, loc - 1
    ).trim();
                    String oid 
    =
     row.substring(loc).trim();
                    stat.addBatch(
    "insert into acmib_oid(id,oid,symbol)values(" + id + ",'" + oid + "','" + symbol + "')"
    );
                    id
    ++
    ;
                    
    if( id % 100 == 0
    )
                        stat.executeBatch();
                }

                stat.executeBatch();
                
                ResultSet rs 
    = stat.executeQuery("select oid from acmib_oid order by oid");
                List
    <String> oids = new ArrayList<String>
    ();
                
    while
    (rs.next())
                    oids.add(rs.getString(
    1
    ));
                
                BufferedReader in2 
    = new BufferedReader(new FileReader("e:/acmib2.txt"
    ));
                
    while((row=in2.readLine())!=null)
    {
                    String[] rowCols 
    = row.split(" "
    );
                    
    if(oids.contains(rowCols[2])) continue
    ;

                    stat.addBatch(
    "insert into acmib_oid(id,oid,symbol)values(" + id + ",'" + rowCols[2+ "','" + rowCols[1+ "')"
    );
                    id
    ++
    ;
                    
    if( id % 100 == 0
    )
                        stat.executeBatch();
                }

                stat.executeBatch();            
            }
    catch(Exception e){
                e.printStackTrace();
            }

        }
    結(jié)果如下:


    posted @ 2009-10-21 10:47 afunms 閱讀(248) | 評(píng)論 (0)編輯 收藏

    國(guó)慶江西之行

    2009年10月 江西之行:
    廬山--九江--南昌

    到目前為止,我走過(guò)的地方:
    吉林:長(zhǎng)春
    遼寧:沈陽(yáng)
    河北:秦皇島、衡水
    北京
    山東:濟(jì)南、淄博、濰坊、泰安
    安徽:淮北
    江蘇:徐州
    重慶
    陜西:安康
    江西:南昌、九江
    福建:福州、廈門、泉州、漳州、龍巖、南平、三明
    廣東:廣州、佛山、中山、韶關(guān)、惠州、云浮、河源、陽(yáng)江、潮州、茂名

    posted @ 2009-10-08 11:32 afunms 閱讀(165) | 評(píng)論 (0)編輯 收藏

    我們的新產(chǎn)品


     

    posted @ 2009-09-25 15:08 afunms 閱讀(226) | 評(píng)論 (2)編輯 收藏

    接口性能各指標(biāo)的計(jì)算公式

    在rfc1213.mib,接口組中:
    if InOctets --接口發(fā)送的字節(jié)數(shù)
    ifOutOctets --接口接收到的字節(jié)數(shù)
    if InUcastPkts --輸入的單播包數(shù)
    ifOutUcastPkts --輸出的單播包數(shù)
    if InNUcastPkts --輸入的非單播包數(shù)
    ifOutNUcastPkts --輸出的非單播包數(shù)
    if InDiscards --接口丟棄的輸入包數(shù)
    ifOutDiscards --接口丟棄的輸出包數(shù)
    if InErrors --包含錯(cuò)誤的輸入包數(shù)
    ifOutErrors --包含錯(cuò)誤的輸出包數(shù)
    ifinUnkownProtos --由于定向到一個(gè)未知或
               不支持的協(xié)議而被丟棄的包數(shù)
    ifOutQlen --輸出隊(duì)列中的所有包數(shù)
    portName --端口的名稱

    性能管理應(yīng)用一般要觀察接口的利用率、錯(cuò)誤
    率、丟包率等。這些性能參數(shù)都分為輸入和輸出兩
    種情況。下面給出計(jì)算公式:
    輸入利用率= (Δif InOctets * 8) / (ifSpeed * T) * 100 %
    輸出利用率= (ΔifOutOctets * 8) / (ifSpeed * T) * 100 %
    輸入差錯(cuò)率= Δif InErrors/ (Δif InUcastPks + Δif InNucastPks) * 100 %
    輸出差錯(cuò)率= ΔifOutErrors/ (ΔifOutUcastPks + ΔifOutNucastPks) * 100 %
    輸入丟包率=Δif InDiscards/ T
    輸出丟包率=ΔifOutDiscards/ T

    posted @ 2009-07-31 08:38 afunms 閱讀(1893) | 評(píng)論 (0)編輯 收藏

    僅列出標(biāo)題
    共25頁(yè): 上一頁(yè) 1 2 3 4 5 6 7 8 9 下一頁(yè) Last 

    My Links

    News

    留言簿(18)

    隨筆檔案

    相冊(cè)

    搜索

    最新評(píng)論

    閱讀排行榜

    主站蜘蛛池模板: 亚洲美女视频网站| 国产福利电影一区二区三区,免费久久久久久久精 | 久久www免费人成看国产片| 欧美日韩国产免费一区二区三区| 亚洲综合无码AV一区二区| 国产亚洲男人的天堂在线观看| 成年大片免费视频| 亚洲三级中文字幕| 免费A级毛片无码A∨免费| 日本亚洲视频在线| 久久一区二区三区免费| 亚洲精品麻豆av| 新最免费影视大全在线播放| 国产小视频免费观看| 亚洲色大成网站www尤物| 免费看国产精品3a黄的视频| 亚洲一区二区三区精品视频| 日本免费网站视频www区| 亚洲精品视频免费看| 91精品国产免费久久国语麻豆| 中国人免费观看高清在线观看二区 | 久久亚洲国产精品123区| 免费人成大片在线观看播放电影| 在线免费视频一区二区| 亚洲最大av资源站无码av网址| 在线天堂免费观看.WWW| 亚洲va在线va天堂成人| 男人的好看免费观看在线视频| 亚洲一区二区三区在线网站| 成人无遮挡裸免费视频在线观看| 亚洲久悠悠色悠在线播放| 成年人视频在线观看免费| 亚洲精品无码高潮喷水A片软| 免费观看的毛片手机视频| 久久精品国产亚洲AV| 99免费视频观看| 亚洲精品欧洲精品| 99久久综合国产精品免费| 国产亚洲精aa在线看| 看全色黄大色大片免费久久| 在线亚洲v日韩v|