咱們已經將監控系統從 zabbix 替換爲prometheus, 以前經過snmp很方便的採集到網絡設備的指標,改用prometheus後,建議使用 snmp_exporter 來採集數據。html
官網提供的那個snmp_exporter默認的模板,不知足咱們netscaler的監控需求。咱們須要本身改改。git
提醒: 建議非netscaler設備請先用官方模板,若是採集不到數據,再考慮去本身修改。github
具體操做以下:web
參考文檔:vim
https://github.com/prometheus/snmp_exporter/tree/master/generator#file-format網絡
https://github.com/prometheus/snmp_exporter/tree/master/generator#buildingide
https://docs.citrix.com/en-us/netscaler-sd-wan/9-3/standard-mib-support.htmlui
一、準備go語言環境(安裝過程忽略,我這裏gopath在 /home/gocode)code
export GOPATH=/home/gocode/ orm
cd /home/gocode/src/github.com/prometheus
git clone https://github.com/prometheus/snmp_exporter.git
cd snmp_exporter
cd generator/
go build
make mibs
而後,切換到 mibs 目錄下
cd mibs/
將 https://docs.citrix.com/en-us/netscaler-sd-wan/9-3/standard-mib-support.html 這裏頁面裏面的 N多個MIB文件(都是些txt文件),使用wget 下載到mibs這個目錄下
而後,開始編輯 generator.yml 文件:
vim generator.yml 修改後,修改後的文件內容以下:
modules:
ns:
walk:
- 1.3.6.1.4.1.5951.4.1
version: 2
max_repetitions: 25
retries: 3
timeout: 10s
auth:
community: genghis
完成後,執行下面的編譯生成 適配的snmp.yml文件
export MIBDIRS=mibs
./generator generate
完成後,就在當前目錄下看到一個 snmp.yml 文件,內容大體這樣的:
啓動:
./snmp_exporter --config.file="snmp.yml" --web.listen-address=":9988" 而後,自行檢查是否有采集到netscaler的數據
而後,到prometheus裏面,增長相關的target,大體相似這樣:
- job_name: 'netscaler_1_snmp'
static_configs:
- targets:
- 2.3.4.5
metrics_path: /snmp
scrape_interval: 60s
scrape_timeout: 30s
params:
module: [ns]
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 1.2.3.4:9988
最終採集到的數據後,咱們到grafana繪圖: