## SNMP監控
## 一、概述
### 1.1 什么是SNMP
SNMP協議全稱量:SimpleNetworkManagement Protocol,譯為簡單網絡管理協議,是作為TCP/IP網絡管理標準協議,為不同的設備提供統一接口,實現了網絡設備、作系統之間的統一管理。
SNMP協議分為三個版本:
* SNMPV1是量初版本,基于團體名認證,安全性較差,返回報文的借誤碼較少。。SNMPV2c也采用團體名認證,引入了GetBulk和Inform操作,支持更多的標準錯誤碼信
息和更多的數據類型。。SNMPV3主要在安全性方面進行了增強,提供了基于USM(UserSecurityModule)的認證加密和基于VACM(View-based Access Control Model)的訪問控制。不管哪個版本,SNMP協議由外部的網絡管理系統NMS和運行在被管設備內部的SNMPAgent、被管對象和管理信息庫MIB組成:
### 1.2 什么是SNMP Exporter
SNMP Exporter是Prometheus的官方Exporter項日之一,可以容器運行或者二進制運行Exporter通過snmp.ym配置文件,將SNMP Agent的數據暴露在SNMP Exporter中,供Prometheus監控被管理設備的運行狀態。
<hr>
## 二、使用SNMP Exporter監控Linux操作系統
### 2.1待監控Linux安裝snmp組件
centos2
yum install -y net-snmp net-snmp-utils
* 修改snmp的配置文件
#vi /etc/snmp/snmpd.conf
#輸入 /systemview查找到

#添加此配置
view systemview included .1

啟動snmp服務,設置開啟自啟動
systemctl start snmpd
systemctl enable snmpd
使用snmpwalking進行測試
shell
snmpwalk -v 2c -c public 127.0.0.1 sysname

****
### 2.2 docker方式安裝SNMP Exporter
* docker中下載snmpexporter鏡像
centos2
docker pull prom/snmp-exporter:v0.20.0
創建snmp exporter的配置目錄
mkdir /data/snmp-exporter -p
cd /data/snmp-exporter
創建docker-compose.yaml
vim docker-compose.yaml
配置如下:
services:
snmp-exporter:
image: prom/snmp-exporter:v0.20.0
container_name: snmp_exporter
restart: always
ports:
- "9116:9116"
啟動 docker-compose.yaml
docker-compose up -d
查看docker的信息
docker images
docker ps -a
宿主機上訪問snmp_exporter
的metrics
http://192.168.100.141:9116/snmp?target=192.168.100.141&module=if_mib
## 2.3 prometheus服務器添加snmp_exporter
192.168.100.85的centos上,修改prometheus的配置文件
#進入docker-prometheus目錄
cd /data/docker-prometheus
#修改prometheus.yml
vi prometheus/prometheus.yml
添加domain_exporter
配置如下圖:

- job_name: "snmp-exporter"
scrape_interval: 30s
scrape_timeout: 30s
static_configs:
- targets:
- 192.168.100.141
metrics_path: /snmp
params:
module: [if_mib]
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: intance
- target_label: __address__
replacement: 192.168.100.141:9116
保存后輸入命令更新:
curl -XPOST http://localhost:9090/-/reload
成功監聽

<hr>
## 三、grafana中對process-exporter進行監控
copy id to clipboard->grafana的dashboards中lmport dashboard
https://grafana.com/grafana/dashboards/11169-snmp-stats/


- Prometheus教程
- 一. dokcer 安裝
- 二. 安裝docker-compose
- 三. docker-compose安裝Prometheus
- 四. 配置grafana的數據源
- 五. Prometheus的Exporter
- 六. Prometheus的基本術語
- 七. 監控Linux
- 八. 監控redis和mongodb
- 九. 監控mysql數據庫
- 十. 監控go程序
- 十一. 監控nginx
- 十二. 監控消息隊列
- 十三. 監控docker
- 十四. 監控進程
- 十五. 域名監控
- 十六. SNMP監控
- 十七. 黑盒監控
- 十八. 自定義監控
- 十九. go實現自定義監控
- 二十. 服務發現概述
- 二十一. 基于文件的服務發現
- 二十二. 基于Consul的服務發現
- 二十三. relabeling機制