Go語言Ubuntu下列印網路請求報文資訊

2021-07-29 09:38:05 字數 2465 閱讀 8886

// metrics到ops-agent的上報週期(30s)或其他值,可配置,範圍為1-60s

// ops-agent到kafka的上報週期以分鐘為粒度,可配置,範圍為1-5分鐘

noresp int =30000

// 指標上報週期為30秒,即30000毫秒

requestlist rawtransaction.requestidentification = make(rawtransaction.requestidentification,0,50) // 30個元素,預留20個元素

rawtransactions rawtransaction.transaction = make(rawtransaction.transaction,0,50) // 未處理的事務

transactionlist metric.transaction = make(metric.transaction,0,50) // 經過處理的事務

)func main()

mainthread:

for _, dev := range devices

}} go capturepacket()

go submittrans()

go formmetrics()

<-channel

}/**

* 抓取報文

*/func capturepacket()

defer handle.close()

// 設定過濾80*************************=80埠

var filter string = "tcp and port 80"

err = handle.setbpffilter(filter)

if err != nil

fmt.println("only capturing tcp port 80 packets.")

packetsource := gopacket.newpacketsource(handle, handle.linktype())

for packet := range packetsource.packets()

channel <- true

}/**

* 解析報文

*/func printpacketinfo(packet gopacket.packet)

} else else else }}

} else }}

lock.unlock()}}

}}}

/** * 每隔30秒就將這30秒之內產生的原始請求進行解析,形成「事務」,快取到「事務」列表

*/func submittrans() ,

rawtransaction.response,

}} else }}}

/** * 每隔5分鐘就將這5分鐘之內收集到的「事務」形成乙個「記錄」

*/func formmetrics()

}metric := metric.metric

// 把「記錄」列印出來

metricjson, _ := json.marshal(metric)

fmt.println(string(metricjson))

//操作之後,清空requestlist和rawtransactions

lock.lock()

transactionlist = transactionlist[:0]

rawtransactions = rawtransactions[:0]

errornumber =0

lock.unlock()

}}

Ubuntu下安裝Go語言

linux 安裝 假定你想要安裝go的目錄為 go install dir,後面替換為相應的目錄路徑。解壓縮tar.gz包到安裝目錄下 tar zxvf go1.9.2.linux amd64.tar.gz c go install dir。比如我要安裝的絕對路徑是 root hailin 解壓完成...

Ubuntu14 04下,GO語言的安裝!

64位 32位 二,解壓縮到想放置go語言的位置。我放到了 usr local go 三,配置ubuntu的環境變數,我希望全域性使用者都可以用,所以修改了 etc profile 在這個檔案末尾加入下面內容 export goroot usr local go export gobin usr l...

Ubuntu16 04下搭建Go語言環境

1.安裝go sudo apt get install golang go 2.設定go環境變數 開啟終端,輸入命令 export goroot home go export path goroot bin pathu 3.設定go 目錄 4.測試安裝 完成安裝後,新建乙個文件來測試環境是否搭建成功...