通遼北京網(wǎng)站建設(shè)地推接單平臺(tái)
網(wǎng)絡(luò)監(jiān)控主要包括網(wǎng)絡(luò)鏈路監(jiān)控和網(wǎng)絡(luò)設(shè)備監(jiān)控,通常系統(tǒng)運(yùn)維人員會(huì)比較關(guān)注。
一、網(wǎng)絡(luò)鏈路監(jiān)控
網(wǎng)絡(luò)鏈路監(jiān)控主要包含三個(gè)部分,網(wǎng)絡(luò)連通性、網(wǎng)絡(luò)質(zhì)量、網(wǎng)絡(luò)流量。
連通性和質(zhì)量的監(jiān)控手段非常簡(jiǎn)單,就是在鏈路一側(cè)部署探針,去探測(cè)鏈路另一側(cè)的目標(biāo),通過(guò) ICMP、TCP、HTTP 等協(xié)議發(fā)送探測(cè)數(shù)據(jù)包,分析回包的結(jié)果。典型的指標(biāo)有丟包率、延遲、回包是否匹配預(yù)期條件等。
網(wǎng)絡(luò)流量監(jiān)控,則關(guān)注流量大小以及流量?jī)?nèi)容。流量大小廣泛應(yīng)用于水位管理,比如機(jī)器網(wǎng)卡、交換機(jī)的接口、外網(wǎng)出口、專(zhuān)線(xiàn)帶寬等,及時(shí)發(fā)現(xiàn)網(wǎng)絡(luò)瓶頸。分析流量?jī)?nèi)容,則可以識(shí)別過(guò)度耗用帶寬的用戶(hù)和應(yīng)用程序,驗(yàn)證網(wǎng)絡(luò) QoS 策略等。
1、ICMP探測(cè)
Categraf 的 ICMP 探測(cè)使用 Ping 插件,相關(guān)配置在 conf/input.ping/ping.toml,主要是配置要探測(cè)的目標(biāo)地址。
[[instances]]
targets = [ "10.4.5.6", "10.4.5.7" ]
labels = { region="cloud", product="n9e" }[[instances]]
targets = [ "10.4.5.8" ]
labels = { region="cloud", product="zbx" }
Ping 插件可以采集到目標(biāo)是否連通、延遲時(shí)間、丟包率等指標(biāo),可以據(jù)此做網(wǎng)絡(luò)鏈路的監(jiān)控。比如機(jī)房專(zhuān)線(xiàn)的探測(cè),只需要在某個(gè)機(jī)房部署 Categraf,來(lái)探測(cè)另一個(gè)機(jī)房的設(shè)備。
2、TCP 探測(cè)
很多時(shí)候機(jī)器是禁 Ping 的,此時(shí) TCP 探測(cè)就派上用場(chǎng)了。TCP 探測(cè)用的是 Categraf 的 net_response 插件,配置文件在 conf/input.net_response/net_response.toml。實(shí)際這個(gè)插件既可以探測(cè) TCP 的響應(yīng),也可以探測(cè) UDP 的響應(yīng)。
[[instances]]
targets = ["10.2.3.4:22","localhost:6379",":9090"
]
原理也很簡(jiǎn)單,就是 Categraf 向目標(biāo)地址發(fā)起網(wǎng)絡(luò)連接。如果能連通,就認(rèn)為是正常的,指標(biāo)值上報(bào)為 0,如果失敗就是非 0 的值。監(jiān)控指標(biāo)名字是 net_response_result_code。
如果是 UDP 的端口,是無(wú)法發(fā)起連接探測(cè)的。此時(shí)采用內(nèi)容匹配探測(cè),即通過(guò) UDP 發(fā)個(gè)字符串給探測(cè)目標(biāo),理論上探測(cè)目標(biāo)很快就會(huì)給出回復(fù)。我們來(lái)檢查回復(fù)內(nèi)容,如果回復(fù)內(nèi)容包含特定字符串,就表示探測(cè)目標(biāo)活著。
3、HTTP探測(cè)
HTTP 探測(cè)和 TCP 的探測(cè)邏輯幾乎完全一致,只不過(guò) HTTP 是七層協(xié)議,Categraf 可以解析到 Status code、Response body 這些更細(xì)粒度的信息。
[[instances]]
targets = ["http://localhost","https://www.baidu.com"
]
很多公司都會(huì)在所有的機(jī)器上部署 Agent,Agent 會(huì)開(kāi)一個(gè) HTTP 端口,這樣就可以通過(guò)探測(cè)這些 HTTP 端口,知道 Agent 是否存活,進(jìn)而反推機(jī)器的存活性。
HTTP 插件可以對(duì)返回的 Response 做規(guī)則匹配,比如判斷 Response body 中是否包含特定的字符串,或者 Status code 是否是指定的值等。
二、網(wǎng)絡(luò)設(shè)備監(jiān)控
網(wǎng)絡(luò)設(shè)備監(jiān)控的典型手段有三個(gè),一個(gè)是 Ping 監(jiān)控,探測(cè)是否存活。另一個(gè)是通過(guò) SNMP 獲取指標(biāo),比如各個(gè)網(wǎng)口的狀態(tài)、流量、包量等。最后一個(gè)是 SNMP Trap,一般網(wǎng)絡(luò)設(shè)備有問(wèn)題,都會(huì)發(fā)出 Trap 消息,這些 Trap 消息很有價(jià)值,分析這些 Trap 消息是常用且有效的監(jiān)控手段。
1、SNMP 指標(biāo)獲取方式
要采集網(wǎng)絡(luò)設(shè)備的監(jiān)控指標(biāo),一定要了解 SNMP 協(xié)議。簡(jiǎn)單來(lái)講,就是交換機(jī)上有個(gè)組件叫 SNMP agent(即 snmpd ),監(jiān)聽(tīng) UDP 161 端口,提供查詢(xún)服務(wù)。SNMP manager,比如Categraf,可以向 SNMP agent 發(fā)起查詢(xún)請(qǐng)求,傳入的參數(shù)是 OID,SNMP agent 返回 OID 對(duì)應(yīng)的監(jiān)控?cái)?shù)據(jù)。
Categraf 提供了 SNMP 插件,配置文件在 conf/input.snmp/snmp.toml,核心配置就是 SNMP agent 的連接地址以及要采集的 OID 列表。
2、SNMP Trap
與 SNMP 采集指標(biāo)的方式不同,Trap 消息是由交換機(jī)里的 SNMP agent 發(fā)消息給 SNMP manager(也是走的 UDP 協(xié)議),與指標(biāo)采集的數(shù)據(jù)流向相反。
?用 Trap 機(jī)制做事件監(jiān)控是比較便捷的方式,交換機(jī)出現(xiàn)關(guān)鍵問(wèn)題的時(shí)候,都會(huì)立刻發(fā)出 Trap 消息。我們只要在 Trap Receiver 中配置消息匹配規(guī)則,指定什么樣的消息應(yīng)該產(chǎn)生告警即可。但是,匹配規(guī)則肯定是需要用人類(lèi)易讀的方式,這就需要借助 MIB 庫(kù),把 Trap 中的 OID 翻譯成人類(lèi)易讀的字符串。
?
此文章為8月Day5學(xué)習(xí)筆記,內(nèi)容來(lái)源于極客時(shí)間《運(yùn)維監(jiān)控系統(tǒng)實(shí)戰(zhàn)筆記》,推薦該課程。