🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 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 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;创建docker-compose.yaml vim docker-compose.yaml &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;配置如下: services: snmp-exporter: image: prom/snmp-exporter:v0.20.0 container_name: snmp_exporter restart: always ports: - "9116:9116" &nbsp;&nbsp;&nbsp;启动 docker-compose.yaml docker-compose up -d &nbsp;&nbsp;&nbsp;查看docker的信息 docker images docker ps -a &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;宿主机上访问snmp_exporter 的metrics http://192.168.100.141:9116/snmp?target=192.168.100.141&module=if_mib ## 2.3 prometheus服务器添加snmp_exporter &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;192.168.100.85的centos上,修改prometheus的配置文件 #进入docker-prometheus目录 cd /data/docker-prometheus #修改prometheus.yml vi prometheus/prometheus.yml &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;添加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 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;保存后输入命令更新: curl -XPOST http://localhost:9090/-/reload &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;成功监听 ![](https://img.kancloud.cn/88/76/887651879bba89f4988a36d1e1ab39b9_1587x280.png) <hr> ## 三、grafana中对process-exporter进行监控 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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)