iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 16
0
自我挑戰組

Access VBA 之 iT管理實做系列 第 16

Access VBA 之 iT管理實做Day16: SonicWall頻寬使用紀錄

  • 分享至 

  • xImage
  •  

公司架設了SNMP來收集網路流量,但每台電腦對外的流量紀錄,則沒透過SNMP收集,原本想針對各台電腦做SNMP,但這樣似乎不合乎成本,直接從防火牆來查看流量似乎更簡單些。

筆者目前不定時連上SonicWall防火牆查看紀錄,透過Log->Report設定Data Collection,即可收集每個連外IP的使用量排行,可以很快看到誰佔用頻寬。
後來筆者做了一個資料收集的程式,複製網頁內容,往該程式貼上後,即可自動將資料存到資料庫中查看。

網頁畫面:
https://ithelp.ithome.com.tw/upload/images/20181031/20007221QA1OaSWek2.png

使用到的資料表如下:

BUbyIP_Id 網路用量紀錄索引

欄位名稱 說明
Id 索引
DateTime 日期
Days 天數

BUbyIP_Data 網路用量明細

欄位名稱 說明
Id 索引
Ranking 排名
IP IP
PC_NAME 電腦名稱
Size 傳輸量
Unit 單位

程式界面如下:
https://ithelp.ithome.com.tw/upload/images/20181031/200072211JyvGmd1Wl.png

資料處理方式,大致上使用Split來依照行與欄位進行切割,透過換行符號(vbCrLf)與Tab標記(vbTab)來細分資料,然後轉入資料庫內儲存。資料內容,直接參考地點資料表中的IP位址來查看是誰使用,以便達到紀錄與檢查的效果。

「貼上」按鈕:

Private Sub cmd_Paste_Click()
    Text_Log = ""
    Text_Log.SetFocus
    DoCmd.RunCommand acCmdPaste
End Sub

「匯入資料」按鈕:

Private Sub cmd_CollactionData_Click()
    If Text_Log = "" Then Exit Sub

    strNow = Now

    strTarget = "Elapsed Collection Time:"
    i = InStr(Text_Log, strTarget) + Len(strTarget)
    i2 = InStr(Mid(Text_Log, i, Len(Text_Log)), vbCrLf) - 1
    strDays = Mid(Text_Log, i, i2)
    
    strSQL = "SELECT * FROM BUbyIP_Idx"
    Set m = CurrentDb.OpenRecordset(strSQL)
    m.AddNew
    m("DateTime") = strNow
    m("Days") = strDays
    strID = m("Id")
    m.Update
    'strID = 1
    
    strTarget = "Received Data" & vbCrLf & "1"
    i = InStr(Text_Log, strTarget) + Len(strTarget) - 1
    strData = Mid(Text_Log, i, Len(Text_Log))
    tmp1 = Split(strData, vbCrLf)
    
    strSQL = "SELECT * FROM BUbyIP_Data"
    Set m = CurrentDb.OpenRecordset(strSQL)
    For i = 0 To UBound(tmp1)
        tmp2 = Split(tmp1(i), vbTab)

        
        m.AddNew
        m("Id") = strID
        m("Ranking") = tmp2(0)
        m("IP") = tmp2(1)
        m("PC_NAME") = DLookup("PC_NAME", "Q_IP_List", "IP='" & m("IP") & "'")
        tmp3 = Split(tmp2(2), " ")
        m("Size") = tmp3(0)
        m("Unit") = tmp3(1)
        m.Update
    Next i
    
    Text_Log = ""
    List_BUbyIP_Idx.Requery
    List_BUbyIP_Data.Requery
    
End Sub

上一篇
Access VBA 之 iT管理實做Day15: 工作紀錄表
下一篇
Access VBA 之 iT管理實做Day17: 工作資料匯出-匯出週報
系列文
Access VBA 之 iT管理實做30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言