快速入门
网站监控
网站监控概述
HTTP/HTTPs监控
Ping监控
FTP监控
TCP监控
UDP监控
DNS监控
SMTP监控
TraceRoute监控
管理网站监控项目
服务器性能监控
服务器性能监控概述
安装配置SNMP代理
创建服务器监控项目
管理服务器监控项目
查看服务器监控项目
服务性能监控
服务性能监控概述
Apache监控
Lighttpd监控
Nginx监控
MySQL监控
MongoDB监控
Redis监控
Memcache监控
Tomcat监控
IIS监控
SQLServer监控
Oracle监控
管理服务监控项目
API监控
API监控概述
创建API监控项目
管理API监控项目
查看API监控项目
Docker监控
Docker监控概述
创建Docker监控项目
查看Docker监控项目
设置Docker告警
管理Docker监控项目
安全监控
安全监控概述
新建并管理资产
新建并管理VPN通道
创建并管理检测任务
执行任务
查看检测结果
管理白名单
自定义监控
自定义监控概述
创建自定义规则
创建自定义监控项目
查看自定义监控项目
网页性能管理
网页性能管理概述
创建网页性能项目
管理网页性能项目
查看网页性能项目
用户体验跟踪
用户体验跟踪概述
创建用户体验项目
查看用户访问速度
查看用户体验报告
管理服务器
内网采集器管理
插件式监控平台
内网采集器插件说明
采集器运行环境说明
内网采集器注意事项
配置采集器运行环境
创建内网采集器
下载并运行采集器
创建关联项目
管理内网采集器
云主机监控管理
云主机监控端概述
配置云主机运行环境
创建云主机监控端
下载并运行云主机
管理云主机监控端
项目概况
应用架构图
应用架构图概述
创建应用架构图
分享应用架构图
查看应用架构图
报表中心
管理仪表盘
管理监控视图
管理告警和故障
管理SLA报告
管理对比分析报告
用户中心
账户设置
个人设置
通知设置
URL回调说明

SNMP概述

SNMP是标准的简单网络管理协议,已经被无数的设备用来作为监控协议,并且工作地非常可靠。监控宝就是通过SNMP来帮助您远程监控服务器性能。

监控宝对于SNMP的身份验证支持v2c和v3。我们提供了多项安全配置建议,包括v3的加密身份验证以及防火墙的保护。只需要您按照我们的指引来配置SNMP,您完全可以放心的使用SNMP。

为保证顺利安全的进行服务器性能监控,请在创建监控项目前安装配置好SNMP。下面举例说明SNMP在不同服务器中的安装配置方法,请根据您使用的服务器选择查看的内容:

在Linux服务器(SUSE10)中安装配置SNMP代理

在Linux服务器(CentOS)中安装配置SNMP代理

在Linux服务器(Ubuntu)中安装配置SNMP代理

在Windows服务器(Windows Server 2003)中安装配置SNMP代理


一、在Linux服务器(SUSE10)中安装配置SNMP代理

本部分以SUSE10 Linux环境为例,介绍Linux服务器中SNMP的安装配置方法。

1、安装Net-SNMP

1)首先需要下载Net-SNMP的源代码,选择一个版本,比如5.7.1,地址如下:

http://sourceforge.net/projects/net-snmp/files/net-snmp/5.7.1/

2)下载源代码后,通过如下命令解压缩安装包:

tar xzvf net-snmp-5.7.1.tar.gz

3)通过configure来生成编译规则,命令如下:

cd net-snmp-5.7.1./configure --prefix=/usr/local/snmp --with-mib-modules=ucd-snmp/diskio

上述命令中的“--with-mib-modules=ucd-snmp/diskio”选项,可以让服务器支持磁盘I/O监控。

4)通过如下命令编译和安装Net-SNMP:

make
make install

5)至此,我们已经完成了SNMP代理的安装,它位于/usr/local/snmp/sbin/snmpd下。

2、配置Net-SNMP

在启动Net-SNMP前,还需要进行一些必要的安全设置。因为将SNMP代理程序暴露给网络上的所有主机是很危险的,为了防止其它主机访问您的SNMP代理程序,需要在SNMP代理程序上加入身份验证机制。

不同的SNMP协议版本支持不同的验证机制,监控宝目前支持v2c和v3两个版本。其中v2c版本的验证机制比较简单,它基于明文密码和授权IP来进行身份验证,而v3版本则通过用户名和密码的加密传输来实现身份验证。

我们建议使用v3,当然,只要按照以下的介绍进行配置,不论是v2c版本还是v3版本,都可以保证一定的安全性,用户可以根据情况来选择。

注意一点,SNMP协议版本和SNMP代理程序版本是两回事,刚才说的v2c和v3是指SNMP协议的版本,而Net-SNMP是用来实现SNMP协议的程序套件。

1)配置v2c版本的SNMP代理

默认情况下snmpd的配置文件是不存在的,需要手动创建,命令如下:

vi /usr/local/snmp/share/snmp/snmpd.conf

在snmpd.conf中添加以下内容来创建一个只读帐号,也就是read-only community:

rocommunity jiankongbao 60.195.252.107
rocommunity jiankongbao 60.195.252.110
# 如果您使用的是采集器,此处的IP应该是安装采集器的服务器的IP

注意:添加用户时,请确保snmp服务没有运行,否则无法添加。

说明:

n  Rocommunity:表示这是一个只读的访问权限,监控宝只可以从您的服务器上获取信息,而不能对服务器进行任何设置。

n  Jiankongbao:相当于密码,很多平台喜欢使用“public”这个默认字符串。这里只是举个例子,您可以设置其它字符串作为密码。

n  60.195.252.107,60.195.252.110:代表指定的监控点IP,这些IP地址是监控宝专用的监控点,这意味着只有监控宝有权限来访问你的SNMP代理程序。

注意:如果您使用的是采集器,IP地址应该是安装采集器的服务器的IP。

所以,以上这段配置中,只有“jiankongbao”是需要您进行修改的,同时在监控宝中创建服务器监控时,需要提供这个字符串。

2)配置v3版本的SNMP代理

我们建议用户使用v3版本来进行身份验证。对于一些早期版本的Linux分发版,其内置的SNMP代理程序可能并不支持v3,所以我们建议您按照前面介绍的方法,编译和安装最新的Net-Snmp。

v3支持另一种验证方式,配置过程如下:

① 创建一个v3的帐号,我们同样修改以下配置文件:

vi /usr/local/snmp/share/snmp/snmpd.conf

② 添加一个只读帐号,命令如下:

rouser jiankongbao auth

注意:添加用户时,请确保snmp服务没有运行,否则无法添加。

在v3中,“rouser”表示只读帐号类型,“jiankongbao”是指定的用户名,“auth”表示需要验证。

③ 添加“jiankongbao”这个用户,这就是v3中的特殊机制,打开以下配置文件:

vi /var/net-snmp/snmpd.conf

这个文件会在snmpd启动的时候被自动调用,我们需要在它里边添加创建用户的指令,如下:

createUser jiankongbao MD5 mypassword

这行配置的意思是创建一个名为“jiankongbao”的用户,密码为“mypassword”,并且用MD5进行加密传输。这里的用户名、密码和加密方式,在监控宝中创建服务器监控时需要提供。

这里要提醒的是:密码至少要有8个字节,这是SNMP协议的规定,如果小于8个字节,通信将无法进行。

需要注意的是,一旦启动snmpd,出于安全考虑,以上这行配置会被snmpd自动删除。当然,snmpd会将这些配置以密文的形式记录在其它文件中,重新启动snmpd是不需要再次添加这些配置的,除非你希望创建新的用户。

3、启动SNMP代理程序

SNMP代理程序的服务名称为snmpd,配置完成后启动SNMP代理程序,直接启动snmpd即可,命令如下:

/usr/local/snmp/sbin/snmpd

如果要关闭SNMP代理程序,则可以直接kill这个进程,命令如下:

Killall-9 snmpd

4、增强的安全机制

有了以上的验证机制,就可以放心的使用SNMP代理了。但是,如果您的SNMP代理程序版本较低,可能会有别有用心的破坏者利用一些固有的漏洞进行破坏,比如发送较长的数据导致SNMP代理程序内存泄漏或者拒绝服务等。为此,您还可以使用防火墙(iptables)来增强安全过滤。

在Linux中,我们用iptables来实现防火墙。一般情况下,除了流入指定端口的数据包以外,我们应该将其它流入的IP数据包抛弃。您可能已经配置了一定的防火墙规则,那么只要增加针对SNMP的规则即可。

SNMP代理程序默认监控在udp161端口,为iptables增加以下规则:

iptables -A INPUT -i eth0 -p udp -s 60.195.252.107 --dport 161 -j ACCEPT
iptables -A INPUT -i eth0 -p udp -s 60.195.252.110 --dport 161 -j ACCEPT
# 如果您使用的是采集器,此处的IP应该是安装采集器的服务器的IP

以上设置中假设服务器外网网卡是eth0,您可以根据实际情况来修改。

这样一来,只有监控宝的专用监控器可以发送UDP数据包到您服务器的161端口,与SNMP代理程序进行通信。


二、在Linux服务器(CentOS)中安装配置SNMP代理

本部分以CentOS环境为例,介绍Linux服务器中SNMP的安装配置方法。

1、安装Net-SNMP

CentOS及其它RedHat系列产品提供了net-snmp的二进制包,我们可以直接从源里安装,命令如下:

shell> yum install net-snmp net-snmp-devel net-snmp-utils

说明:net-snmp-devel是为了使用net-snmp-config,net-snmp-utils是为了使用snmpwalk。

2、配置Net-SNMP

在启动Net-SNMP前,为了防止其它主机访问您的SNMP代理程序,需要在SNMP代理程序上加入身份验证机制。

1)V2c验证方法

这里需要修改一个配置文件,首先需要清空snmpd.conf这个文件,接着需要写入配置信息,命令如下:

shell>> /etc/snmp/snmpd.conf
shell>> vim/etc/snmp/snmpd.conf
rocommunity public 127.0.0.1
rocommunity public 192.168.1.1
rocommunity public 192.168.1.2
# 如果您使用的是采集器,以下IP应该是安装采集器的服务器的IP
rocommunity public 60.195.252.107
rocommunity public 60.195.252.110

注意:请将192.168.1.1 替换为被监控服务器的IP,public可替换为您希望的字符串。

需说明的是,默认的配置文件里会有一些权限控制的配置,如果您有这个需求,请自行参考CentOS的man文档。

2)V3验证方法

有些CentOS环境下的net-snmp无法在selinux环境下正常使用v3。如果您想使用snmp v3,请先禁用selinux。

使用如下命令创建一个snmpv3用户(权限为只读,加密方式为MD5,用户名为jiankongbao,密码为snmp@jiankongbao):

shell> net-snmp-config --create-snmpv3-user -ro -A snmp@jiankongbao -a MD5 jiankongbao

运行之前请先停用net-snmp服务,否则无法添加,命令如下:

shell> service snmpd stop

3、运行Net-SNMP

运行 Net-SNMP 服务的方法比较简单,Net-SNMP服务名为snmpd,直接启动snmpd即可,命令如下:

shell> service snmpd start

您可能需要把它加入开机自动运行服务列表,命令如下:

shell> chkconfig snmpd on

4、检测Net-SNMP

启动Net-SNMP后,需要检测snmp服务是否正常开启。

1)V2c版本检测

使用如下命令查看161UDP端口是否打开:

shell>netstat –antupl

然后在另外任意一台机器上执行如下命令(请将commity换成您自己的字符串,tartget_ip换为被监控服务器的IP):

shell>snmpwalk -v2c –ccommity target_ip

如果出现长串数字,则说明mib没有安装好。

2)V3版本检测

我们可以使用snmpwalk来检测snmp服务是否正常开启,命令如下:

shell> snmpwalk -v 3 -u jiankongbao -a MD5 -A "snmp@jiankongbao" -l authNoPriv 127.0.0.1 sysDescr

如果一切正常,就会返回正常结果。有关snmpwalk的参数说明,请参见CentOS的man文档。

5、配置防火墙

除身份验证,您还可以使用防火墙(iptables)来增强安全过滤。

1)V2c配置

通常我们使用iptables,请确定iptables对配置文件中的机器IP没有做访问限制,使用如下命令查看:

shell>iptables -L -n

使用如下命令允许UDP的161端口:

shell>iptables -I INPUT -p udp --dport 161 -j ACCEPT

2)V3配置

Net-SNMP使用udp协议的161端口,同时我们会从以下两个IP访问您的服务器:

n  60.195.252.107

n  60.195.252.110

如果您使用的是内网采集器,我们会从安装采集器的服务器访问您的服务器。

一个可能的配置文件是:

-I INPUT -p udp -s 60.195.252.107 --dport 161 -j ACCEPT
-I INPUT -p udp -s 60.195.252.110 --dport 161 -j ACCEPT

说明:以上只是一个可能的配置。请您在写之前明白每一句话的含义,而不是直接复制。


三、在Linux服务器(Ubuntu)中安装配置SNMP代理

本部分以Ubuntu环境为例,介绍Linux服务器中SNMP的安装配置方法,主要包括以下四步:

1、安装SNMP

安装SNMP时需要安装snmpd和snmp两个安装包,安装规则如下:

n  snmp,需要安装在安装了采集器的服务器上。

n  snmpd,需要安装在被监控的服务器上。

n  安装了采集器的服务器需要监测自己时,两个安装包都需要安装。

安装之前,需要查看/etc/apt目录下的sources.list文件,确认安装源中是否有multiverse这个字段,例如:

deb http://hk.archive.ubuntu.com/ubuntu/ precise main restricted universe multiverse

如果有,直接安装;如果没有需要手动添加,更新后再执行安装,命令如下:

apt-get update
#请根据需要选择安装哪个安装包
apt-get install snmp snmpd

2、配置并重启SNMP

重启SNMP前,为了防止其它主机访问您的SNMP代理程序,需要在SNMP代理程序上加入身份验证机制。

1)V2c验证方法

需要修改3个配置文件,首先分别清空snmp.conf和snmpd.conf这2个文件,再配置snmpd.conf这个文件,命令如下:

shell>> /etc/snmp/snmp.conf;> /etc/snmp/snmpd.conf
shell>vim/etc/snmp/snmpd.conf
rocommunity public 127.0.0.1
# 如果您使用的是采集器,以下IP应该是安装采集器的服务器的IP
Rocommunity public 60.195.252.107
Rocommunity public 60.195.252.110

如果您的/etc/default/snmpd中含有127.0.0.1字样,需要去掉127.0.0.1。

需说明的是,默认的配置文件里会有一些权限控制的配置,如果您有这个需求,请自行参考Ubuntu的man文档。

2)V3验证方法

使用如下命令创建一个snmpv3用户(权限为只读,加密方式为MD5,用户名为jiankongbao,密码为snmp@jiankongbao):

shell> net-snmp-config --create-snmpv3-user -ro -A snmp@jiankongbao -a MD5 jiankongbao

3)重启Net-SNMP

配置完成后需重启SNMP,命令如下:

shell>/etc/init.d/snmpd restart

3、验证Net-SNMP

启动SNMP后,需要检测snmp服务是否正常开启。

1)V2c版本检测

使用如下命令查看161UDP端口是否打开:

shell>netstat –antupl

然后在另外任意一台机器上执行如下命令(请将commity换成您自己的字符串,tartget_ip换成被监控服务器的IP):

shell>snmpwalk -v2c –ccommity target_ip

如果出现长串数字,则明说mib没有安装好。

2)V3版本检测

我们可以使用snmpwalk来检测snmp服务是否正常开启,命令如下:

shell> snmpwalk -v 3 -u jiankongbao -a MD5 -A "snmp@jiankongbao" -l authNoPriv 127.0.0.1 sysDescr

如果一切正常,就会返回正常结果。有关snmpwalk的参数说明,请参见Ubuntu的man文档。

4、配置防火墙

除身份验证,您还可以使用防火墙(iptables)来增强安全过滤。

1)V2c配置

通常我们使用iptables,请确定iptables对配置文件中的机器IP没有做访问限制,使用如下命令查看:

shell>iptables -L -n

使用如下命令允许UDP的161端口:

shell>iptables -I INPUT -p udp --dport 161 -j ACCEPT

2)V3配置

Net-SNMP使用udp协议的161端口,同时我们会从以下两个个IP访问您的服务器:

n  60.195.252.107

n  60.195.252.110

如果您使用的是内网采集器,我们会从安装采集器的服务器访问您的服务器。

一个可能的配置文件是:

-I INPUT -p udp -s 60.195.252.107 --dport 161 -j ACCEPT
-I INPUT -p udp -s 60.195.252.110 --dport 161 -j ACCEPT

说明:以上只是一个可能的配置。请您在写之前明白每一句话的含义,而不是直接复制。


四、在Windows服务器(Windows Server 2003)中安装配置SNMP代理

本部分以Windows Server 2003为例,介绍Windows服务器中SNMP的安装配置方法。其它Windows服务器产品的配置方法类似。

SNMP包括服务端和客户端,安装规则如下:

n  安装了内网采集器的服务器需要安装客户端

n  被监测的服务器需要安装服务端

n  安装了内网采集器的服务器需要监测自己时,需要安装客户端和服务端。

1、安装SNMP服务端

首先您必须确认当前的Windows组件中是否已经安装了SNMP协议,方法如下:

在控制面板中选择“添加或删除程序”,在打开的对话框中选择“添加/删除Windows组件”查看已安装的Windows组件,如下图所示。

查看“管理和监控工具”的详细信息,检查是否安装“简单网络管理协议(SNMP)”,如下图所示。

如果没有安装,则选中SNMP组件进行安装,安装期间您可能需要定位Windows安装盘。

2、配置服务端

SNMP组件安装成功后,在开始菜单中选择“管理工具→服务”,如下图所示。

在打开的对话框中找到SNMP Service,安装SNMP协议后,SNMP Service会默认启动,如下图所示。

需要注意的是,SNMP Trap Service是不需要开启的,如果它已被开启,请将其关闭。

双击SNMP Service配置其属性,在打开的对话框中选择“安全”选项卡,设置接受的团体名称并指定接受SNMP数据包的主机,如下图所示。

1)设置接受的团体名称

团体名称就是前边介绍过的SNMP v2c版本中的密码字符串,public只是一个例子,您可以填写其它字符串。

在监控宝中创建服务器监控项目时,选择2c协议后在 Community输入框中填写这个团体名称即可。

2)指定接受SNMP数据包的主机

选择“接受来自这些主机的SNMP数据包”来指定主机。

n  使用内网采集器采集数据时,添加您的内网采集器所在服务器的IP地址,采集器需要具有访问这台服务器SNMP的权限。

n  不使用内网采集器时,添加监控宝的SNMP监控器IP地址: 60.195.252.107、60.195.252.110。

3、启动服务端

配置完成后,保证SNMP Service已经开启即可。如果以后重启了服务器,请检查是否开启了SNMP Service。当然,如果该服务被关闭,监控宝会在服务器监控视图中提醒您。

4、安装客户端

安装了采集器的服务器需要安装客户端,即Net-SNMP,下载地址为:

http://jaist.dl.sourceforge.net/project/net-snmp/net-snmp%20binaries/5.6.1.1-binaries/net-snmp-5.6.1.1-1.x86.exe

如果上面地址失效,请到http://www.net-snmp.org/download.html下自行查找。

1459932004586914.png 默认安装就可以,请不要改变安装目录。

5、验证是否可以正常获取数据

在安装了采集器的服务器中,打开cmd窗口并执行如下命令:

snmpwalk -v2c -c public target_ip(请将target_ip换成您被监测机器的IP)

能够正常获取数据时,显示如下图所示的内容。

6、配置防火墙

另外,还要保证您的服务器已经打开了SNMP Service的端口,默认为UDP161。如果您启用了系统防火墙,则需要添加这个例外端口。

打开“本地连接→属性→高级→防火墙→例外”,添加端口即可(在安装测试中,建议先关闭其他的防火墙,以排除干扰因素),如下图所示。