红旗linux系统中安装snmp需要安装哪几个文件

红旗linux系统中安装snmp需要安装哪几个文件,第1张

现在还有人用红旗吗?很多都没支持了,以下介绍下在Linux下安装snmp:

下载源码:

选择一个SNMP版本,比如5.7.1,下载地址如下:http://sourceforge.net/projects/net-snmp/files/net-snmp/5.7.1/net-snmp-5.7.1.tar.gz

解压文件:tar xzvf net-snmp-5.7.1.tar.gz

进入文件夹进行配置安装:cd net-snmp-5.7.1

net-snmp-5.7.1目录下的configure是可执行文件,如果想指定程序包的安装路径,那么首先建立相应的文件夹来存放安装信息,可以写成./configure –-prefix=/指定的路径名。参数--prefix用来告诉系统安装信息存放的路径,如果没有指定路径,直接执行./configure,那么程序包都会安装在系统默认的目录下,通常为:/usr/local下

         执行命令"./configure --prefix=/usr/local/snmp --with-mib-modules='ucd-snmp/diskio ip-mib/ipv4InterfaceTable'",注意,以上的--with-mib-modules=ucd-snmp/diskio选项,可以让服务器支持磁盘I/O监控

4.回车出现下面问题,可以直接回车而不用回答,系统会采用默认信息,其中日志文件默认安装在/var/log/snmpd.log.数据存贮目录默认存放在/var/net-snmp下

1)default version of-snmp-version(3): 

     2)System Contact Information (@@no.where)(配置该设备的联系信息):

3)System Location (Unknown)(该系统设备的地理位置):

4)Location to write logfile (日志文件位置):

5)Location to Write persistent(数据存储目录):

5.执行编译和安装:make  &&  make install

6.配置snmpd.conf

使用"ls"命令查看/usr/local/snmp目录下是否存在etc目录,如果不存在etc目录,就创建一个

查看结果显示不存在etc目录,在/usr/local/snmp目录下创建一个etc目录,创建etc目录命令"mkdir /usr/local/snmp/etc"

6.找到SNMP源码目录(net-snmp-5.7.1)下EXAMPLE.conf文件

 复制EXAMPLE.conf文件到到/usr/local/snmp/etc目录,并重命名为snmpd.conf:"cp EXAMPLE.conf /usr/local/snmp/etc/snmpd.conf"

7.使用vi编辑器打开snmpd.conf文件:"vi /usr/local/snmp/etc/snmpd.conf",编辑snmpd.conf文件中的内容

8.找到【AGENT BEHAVIOUR】,允许网络访问

9.修改如下:添加"agentAddress udp:161"配置项

10. 找到【ACTIVE MONITORING】选择协议

11. 找到【ACCESS CONTROL】设置权限

12. 找到【rocommunity public default -V systemonly】,把 -V systemonly去掉,这是设置访问权限的,去掉后能访问全部

13.保存snmpd.conf后退出

14.启动:

由于我们刚才修改SNMP的snmpd.conf文件,所以在启动snmp服务之前,先使用命令"ps aux | grep snmp | grep -v grep |awk '{print $2}'| xargs kill"关闭snmp的相关服务

15.使用"netstat -an |grep 161"查看snmp的服务是否启动

16.启动snmp服务:"/usr/local/snmp/sbin/snmpd -c /usr/local/snmp/etc/snmpd.conf"

17.测试:

获取本机的系统名字,使用命令:"snmpget -v 2c -c public localhost sysName.0"或者"snmpget -v 2c -c public 本机的ip地址 sysName.0"或者"snmpget -v 2c -c public 本机的ip地址 .1.3.6.1.2.1.1.5.0"进行测试

执行以下的几个命令都可以获取到本机的系统名字:

snmpget -v 2c -c public localhost sysName.0

snmpget -v 2c -c public 127.0.0.1 sysName.0

snmpget -v 2c -c public 192.168.1.229 sysName.0

snmpget -v 2c -c public localhost .1.3.6.1.2.1.1.5.0

snmpget -v 2c -c public 127.0.0.1 .1.3.6.1.2.1.1.5.0

snmpget -v 2c -c public 192.168.1.229 .1.3.6.1.2.1.1.5.0

能够正常返回系统的名字就说明SNMP安装配置成功了。也可以使用命令"snmpget --version"查看当前的安装版本号来验证是否安装成功,如果安装成功,则显示当前的安装版本号

18.完成snmpd的配置并且SNMP测试通过之后,要确保Linux的iptables防火墙对外开放了udp 161端口的访问权限,可以使用"iptables –L –n"查看当前iptables规则

19.用"iptables -I INPUT -p udp --dport 161 -j ACCEPT"命令添加UDP 161端口到iptables防火墙中,然后执行"iptables save"命令保存防火墙的更改

20.在window系统下使用Snmputil.exe工具测试对Linux下的SNMP访问,测试Linux的UDP 161端口是否对外开

21."snmputil get 192.168.1.229 public .1.3.6.1.2.1.1.5.0"命令返回192.168.1.229这台Linux服务器的名字,可以看到,Linux服务器的名称已经正常返回输出到命令行窗口了。

说起网络管理,恐怕大部分人立刻就能想到局域网的组建、服务器的配置、美萍网管大师之类的软件使用以及软、硬件系统的安装、调试和维护等工作,而相当多的中小规模局域网管理员平日里的工作也就是不断地安装操作系统和应用软件、查杀病毒、数据备份、计算机和网线、网卡的故障排除等等,在很多非专业人士的眼里似乎这些就是网络管理的全部,而在相当多的网管论坛上,这些也都是大家讨论的重点。然而,严格地说来,这类工作并不是真正意义上的网络管理,它们只能被称作系统管理或者系统维护,充其量它们只是网络管理中的一个很小的并且缺乏技术含量的部分,而真正的网络管理则离不开SNMP--简单网络管理协议。

由于SNMP网络管理的学习并不像普通的系统维护那么简单,它不但要求我们的网络管理员要深入了解网络中的交换和路由设备,还要求我们能够透彻认识SNMP协议原理,所以这种管理方式在大部分中小规模局域网中的运用并不多见。但因为SNMP是目前在计算机网络中用得最广泛的网络管理协议,所以我们可以肯定的说:一个连SNMP都不清楚的网络管理员就绝对不是一个好的网络管理员。本文中笔者将带领大家一步一步地去学习SNMP网络管理,尽量减少枯燥的理论知识、加大实践力度,将原本仿佛遥不可及的`SNMP拉到大家的身边,让大家切身体会到SNMP网络管理在日常工作中的重要意义。

初识SNMP网络管理

SNMP的英文全称是Simple Network Management Protocol,中文名为简单网络管理协议,是一个基于TCP/IP协议的网络管理标准。SNMP网络管理包含两个部分:网络管理站(也叫管理进程,manager)和被管的网络单元(也叫被管设备)。网络管理站通常是一台安装了网络管理软件的计算机,可以显示所有被管设备的状态,我们一般称之为网管工作站;而被管设备则种类繁多,包括交换机、路由器、防火墙、服务器以及打印机等等,被管设备上的管理软件我们称之为代理进程,用于回答管理进程(网管工作站)的查询。图1显示了一个使用两台SNMP网管工作站进行网络管理的拓扑结构。

在图1中,两台网管工作站上面分别安装了SNMP网络管理软件,以对局域网中的所有的被管设备(交换机、路由器、防火墙和服务器)进行管理和监控,而被管设备上面则运行着代理进程,因此整个网络的管理就可以集中在这两台网管工作站上面来进行了。

SNMP网络管理包括三个组成部分:管理信息库MIB、管理信息结构SMI和SNMP网络管理协议。管理信息库(MIB)中存放的是被管设备的所有信息,比方说被管设备的名称、运行时间、接口速度、接口进来/发出的报文等等,当前的管理信息库版本为MIB-II;管理信息结构SMI用于定义管理信息库MIB的结构和表示符号,限制在MIB变量中允许的变量类型,指定对这些变量命名的规则以及创建定义变量类型的规则;而SNMP网络管理协议则是管理进程(位于网管工作站上)和代理进程(位于被管设备上)之间的通信协议。

SNMP网络管理定义了5种报文操作:

GetRequest操作:用于管理进程从代理进程上面提取一个或者多个MIB参数值,这些参数值均在管理信息库中被定义;

GetNextRequest操作:从代理进程上面提取一个或多个参数的下一个参数值;

SetRequest操作:设置代理进程的一个或多个MIB参数值;

GetResponse操作:代理进程返回一个或多个MIB参数值,它是前面三种操作中的响应操作;

Trap操作:这是代理进程主动向管理进程发出的报文,它标记出一个可能需要特殊注意的事件的发生,比方说重新启动可能就会触发一个Trap陷阱。

前面三个操作是管理进程向代理进程发出的,后面两个操作则是代理进程发给管理进程的,其中除了Trap操作使用UDP162端口外,其他4个操作均使用UDP161端口。通过这五种报文操作,管理进程和代理之间就能够进行相互之间的通信了。

在看完SNMP网络管理的三个组成部分和五个报文操作的介绍后,可能还是有很多的读者仍然对SNMP感到比较抽象,没有关系,大家现在可以不用太追求对这些概念的感性认识,跟着我一步一步地往下看就行了,稍后我们会用实例来给大家提供感性的认识。

安装snmp服务

CentOS/RedHat下可以只用yum命令进行安装。

$ yum –y install net-snmp net-snmp-devel

若要使用snmpwalk进行安装检测,则还需要安装net-snmp-utils包

$ yum –y install net-snmp-utils

Ubuntu可以通过apt-get install snmp snmpd 进行安装

设置安全的验证方式

将SNMP代理程序暴露给网络上的所有主机是很危险的,为了防止其它主机访问您的SNMP代理程序,我们需要在SNMP代理程序上加入身份验证机制。SNMP支持不同的验证机制,这取决于不同的SNMP协议版本,云监控目前支持v2c和v3两个版本,其中v2c版本的验证机制比较简单,它基于明文密码和授权IP来进行身份验证,而v3版本则通过用户名和密码的加密传输来实现身份验证,我们建议使用v3,当然,只要按照以下的介绍进行配置,不论是v2c版本还是v3版本,都可以保证一定的安全性,您可以根据情况来选择。

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

v2c

先来看如何配置v2c版本的SNMP代理,我们来创建snmpd的配置文件,默认情况下它是不存在的,我们来创建它,如下:

sdo:~ # vi /usr/local/snmp/share/snmp/snmpd.conf

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

rocommunity sdomonitor 114.80.132.9 rocommunity sdomonitor 58.215.169.26 rocommunity sdomonitor 58.215.169.27

如果想要检测服务是否成功开启,则还需要在snmpd.conf中添加:

rocommunity sdomonitor 127.0.0.1

注意,这里的"rocommunity"表示这是一个只读的访问权限,云监控只可以从您的服务器上获取信息,而不能对服务器进行任何设置。

紧接着的"sdomonitor"相当于密码,很多平台喜欢使用"public"这个默认字符串。这里的"sdomonitor"只是一个例子,您可以设置其它字符串作为密码。

最右边的"60.195.249.83"代表指定的监控点IP,这个IP地址是云监控专用的监控点,这意味着只有云监控有权限来访问您的SNMP代理程序。

所以,以上这段配置中,只有"sdomonitor"是需要您进行修改的,同时在云监控上添加服务器的时候,需要提供这个字符串。

v3

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

v3支持另一种验证方式,需要创建一个v3的帐号,我们同样修改以下配置文件:

sdo:~ # vi /usr/local/snmp/share/snmp/snmpd.conf

然后添加一个只读帐号,如下:

rouser sdomonitor auth

可以看到,在v3中,"rouser"用于表示只读帐号类型,随后的"sdomonitor"是指定的用户名,后边的"auth"指明需要验证。

接下来,我们还要添加"sdomonitor"这个用户,这就是v3中的特殊机制,我们打开以下配置文件:

sdo:~ # vi /var/net-snmp/snmpd.conf

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

createUser sdomonitor MD5 mypassword

这行配置的意思是创建一个名为"sdomonitor"的用户,密码为"mypassword",并且用MD5进行加密传输。这里要提醒的是:

密码至少要有8个字节

这是SNMP协议的规定,如果小于8个字节,通信将无法进行。

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

以上配置中的用户名、密码和加密方式,在云监控添加服务器的时候需要添加。

启动snmp服务

$ service snmpd start

用以下命令检查服务是否启动成功

$ snmpwalk -v 2c -c sdomonitor 127.0.0.1 system

如果要关闭,则可以直接kill这个进程,如下:

$ killall -9 snmpd 或者$ service snmpd stop


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/297158.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-25
下一篇2023-04-25

发表评论

登录后才能评论

评论列表(0条)

    保存