使用 snmp_exporter 抓取設備流量

前言

本篇筆記紀錄如何使用 snmp_exporter 搭配 prometheusGrafana 來即時監控網路設備流量。
公司原先使用 LibreNMS 作為即時流量的依據,由於 default polling interval 是 5 分鐘抓取一次,而且一次抓取 (walk) 的 OID 也是世界多~
雖然說 LibreNMS 有提供 1-Minute Polling 的方式,不過一次抓取就是長長一串造成設備不必要的負擔,更可能造成風暴 (前一次抓取尚未完成,時間到了又必須進行下一次)。
況且即使 1-Minute polling 完美運作,對於流量的精細程度個人認為是遠遠不足的! 被打 DDoS 幾秒之內流量就可能飆高,若針對流量 moniting 顆粒度太大就失去了意義、無法反映實際狀況。

CKA Note Section 13 Troubleshooting

235. Application Failure

厚,debug 到眼睛快脫窗

  • 先開 App Web 頁面查看錯誤訊息 (不確定正式考試時網頁是不是也設計成顯示錯誤訊息),判斷可能出問題的地方
  • 第一題網頁能開判斷 Web pod + service => 無問題,網頁顯示 -2 Name does not resolve => 連不到 DB => 往 mysql-service “DNS name” 查找
  • 第二題一樣,網頁顯示 111 Connection refused =>
    (1) 拒絕 => DB credential 有問題 => 要嘛在 Web pod env 不然就是 db pod env
    (2) svc port 號 OR selector 錯誤 OR pod 身上 port 錯誤
  • 第三題 網頁直接打不開啊! => 等待時間先去查 web svc => curl http://<svc_IP>:<port> (1) 後來噴出 504 Gateway Error => 5xx 系列 server 內部問題 => 都要查! (包含 web svc) (2) k get all -o wide 先看一下能不能看出端倪,果然看到 selector:name=sql00001 => k get pod mysql --show-labels
  • 第四題 env DB_User 不符合題目要求。
  • 第五題 兩個 issue,第一個承上題。Access denied for user 'root'@'10.42.0.20' (using password: YES) => 這 error 是 DB 噴的代表 DB svc 沒問題
  • 第六題 三個 issue
    (1) web-service NodePort 錯誤
    (2) env DB_User 錯誤

kubectl_show_svc_ports