夜鶯監控(Nightingale)是一個開源的雲原生監控系統,本文介紹如何使用夜鶯監控連接埠。
連接埠監控,是程序存活性探測的典型方式,相比統計程序數量,連接埠監控更為靠譜,因為程序有時會 hang 住,導致程序數量統計正常,但是連接埠無法正常回應。
一般來說,連接埠探測分三種協定:
- TCP 協定
- UDP 協定
- HTTP 協定
依據服務監聽的連接埠協定類型不同,使用的探測方式也不同。
TCP/UDP 協定
TCP/UDP 協定的連接埠監控,適合針對 RPC 類的服務,可以使用 Categraf 的 net_response 外掛來實作。
這裡最應該關注的指標是:net_response_result_code,如果這個指標的值是 0,表示一切正常,如果非 0 則表示異常,不同的值表示不同的異常類型。
- 0: Success
- 1: Timeout
- 2: ConnectionFailed
- 3: ReadFailed
- 4: StringMismatch
在夜鶯的 整合中心-範本中心 可以找到相關的儀表板。
HTTP 協定
HTTP 協定的探測和 TCP/UDP 協定類似,Categraf 也提供了 http_response 外掛來實作。相比 TCP/UDP 協定,HTTP 協定的連接埠監控可以更進一步,除了探測連接埠是否可用,還可以探測 HTTP 回應內容(傳回的狀態碼、傳回的 Response body)是否符合預期,如果是 HTTPS 站點,還可以探測憑證過期時間。
用於告警的指標是 http_response_result_code 只要這個指標是 0 就是正常的,如果這個指標非 0,就是異常的,不同的值代表不同的含義:
Success = 0
ConnectionFailed = 1
Timeout = 2
DNSError = 3
AddressError = 4
BodyMismatch = 5
CodeMismatch = 6
http_response_cert_expire_timestamp 是憑證過期的時間戳,http_response_cert_expire_timestamp - time() 表示憑證還有多久過期,單位是秒。
在夜鶯的 整合中心-範本中心 可以找到相關的儀表板。
常見問題
Q1:連接埠監控的方式?
A:
- Categraf
net_response外掛:定期 TCP / UDP 探測目標連接埠,上報net_response_result_code指標; - PLUS 撥測:從多節點探測,更全面。
Q2:能不能監控 HTTPS 憑證過期?
A:能。Categraf 的 http_response 外掛支援取得 TLS 憑證剩餘有效天數 — 上報 http_response_cert_expire_timestamp 指標,配 30 天預警告警。