## 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查找到
![](https://img.kancloud.cn/9d/0e/9d0e3a0a9846456c260b483ae0882c93_680x168.png)
#添加此配置
view systemview included .1
![](https://img.kancloud.cn/1e/d3/1ed312351c0e1bc479db9e1118e57daf_625x153.png)
启动snmp服务,设置开启自启动
systemctl start snmpd
systemctl enable snmpd
使用snmpwalking进行测试
shell
snmpwalk -v 2c -c public 127.0.0.1 sysname
![](https://img.kancloud.cn/8a/36/8a366be700cf45d04fd8b8ae0485ed19_456x122.png)
**![](https://img.kancloud.cn/c3/ea/c3eae9c649e1e1fdc4250395572b6433_574x45.png)**
### 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
配置如下图:
![](https://img.kancloud.cn/40/7a/407abbd7e41e2367abec6f4e087afc60_433x299.png)
- 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
成功监听
![](https://img.kancloud.cn/88/76/887651879bba89f4988a36d1e1ab39b9_1587x280.png)
<hr>
## 三、grafana中对process-exporter进行监控
copy id to clipboard->grafana的dashboards中lmport dashboard
https://grafana.com/grafana/dashboards/11169-snmp-stats/
![](https://img.kancloud.cn/57/43/5743bb977db2327838fa06aee2ed2478_1457x756.png)
![](https://img.kancloud.cn/4c/6f/4c6f609b25c341c978fce65921a1ed2f_1908x983.png)
- Prometheus教程
- 一. dokcer 安装
- 二. 安装docker-compose
- 三. docker-compose安装Prometheus
- 四. 配置grafana的数据源
- 五. Prometheus的Exporter
- 六. Prometheus的基本术语
- 七. 监控Linux
- 八. 监控redis和mongodb
- 九. 监控mysql数据库
- 十. 监控go程序
- 十一. 监控nginx
- 十二. 监控消息队列
- 十三. 监控docker
- 十四. 监控进程
- 十五. 域名监控
- 十六. SNMP监控
- 十七. 黑盒监控
- 十八. 自定义监控
- 十九. go实现自定义监控
- 二十. 服务发现概述
- 二十一. 基于文件的服务发现
- 二十二. 基于Consul的服务发现
- 二十三. relabeling机制