## 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机制