snmplinux安装
① linux下简单配置安装cactisnmp再次安装怎么解决
以前确认过机器上安装了snmp,但是这是redhat自带的,据说里面是没有snmpwalk,snmpget这些命令的,所以我这里要重新
编译安装NET-SNMP
官方网站
http://www.net-snmp.org/
下载文件
wget http://nchc.dl.sourceforge.net/project/net-snmp/net-snmp/5.5/net-snmp-5.5.tar.gz
解开压缩包
tar zxvf net-snmp-5.5.tar.gz
配置
./configure --prefix=/usr/local/net-snmp --enable-developer
中间有提示,一路回车下去
make
报错如下:
grep: /usr/lib/libbeecrypt.la: No such file or directory
/bin/sed: can't read /usr/lib/libbeecrypt.la: No such file or directory
libtool: link: `/usr/lib/libbeecrypt.la' is not a valid libtool archive
make[1]: *** [libnetsnmpmibs.la] 错误 1
make[1]: Leaving directory `/var/tmp/net-snmp-5.5/agent'
make: *** [subdirs] 错误 1
解决办法:
安装beecrypt
wget http://nchc.dl.sourceforge.net/sourceforge/beecrypt/beecrypt-4.1.2.tar.gz
tar zxvf beecrypt-4.1.2.tar.gz
./configure --prefix=/usr
make
make install
重新make,又报错了,报错如下:
/usr/bin/ld: cannot find -lelf
collect2: ld returned 1 exit status
make[1]: *** [libnetsnmpmibs.la] 错误 1
make[1]: Leaving directory `/var/tmp/net-snmp-5.5/agent'
make: *** [subdirs] 错误 1
解决办法:
ln -s libelf.so.1 /usr/lib/libelf.so
继续make,成功了:)
make install
安装成功。
链接过去
ln -s /usr/local/net-snmp/bin/* /usr/local/bin/
cp EXAMPLE.conf /usr/local/net-snmp/share/snmp/snmpd.conf
/usr/local/net-snmp/sbin/snmpd //启动SNMP服务
vi /etc/rc.d/rc.local
//在rc.local上加入一行/usr/local/net-snmp/sbin/snmpd,系统启动时启动SNMP服务
现在再回头看看cacti的错误
错误:/usr/local/bin/snmpwalk
错误:/usr/local/bin/snmpget
错误:/usr/local/bin/snmpbulkwalk
错误:/usr/local/bin/snmpgetnext
再次点开,这次就没有以上的错误啦。点Finish
输入用户名和密码admin/admin
登陆后点击graph图标,图没有出来。继续查找下原因,快要成功了:)
查看后台日志cacti里面的log/cacti.log,日志如下:
POLLER: Poller[0] Maximum runtime of 298 seconds exceeded. Exiting
点击控制面板console----->Data Sources
选择列表中的一个Localhost-Load Average
点击右上角的Turn Off Data Source Debug Mode
下面会出现对应的命令Data Source Debug
/usr/local/bin/rrdtool create \
/usr/local/apache2/htdocs/cacti/rra/localhost_load_1min_5.rrd \
--step 300 \
DS:load_1min:GAUGE:600:0:500 \
DS:load_5min:GAUGE:600:0:500 \
DS:load_15min:GAUGE:600:0:500 \
RRA:AVERAGE:0.5:1:600 \
RRA:AVERAGE:0.5:6:700 \
RRA:AVERAGE:0.5:24:775 \
RRA:AVERAGE:0.5:288:797 \
RRA:MAX:0.5:1:600 \
RRA:MAX:0.5:6:700 \
RRA:MAX:0.5:24:775 \
RRA:MAX:0.5:288:797 \
su cacti,执行该命令,报错如下:
ERROR: creating '/usr/local/apache2/htdocs/cacti/rra/localhost_load_1min_5.rrd': 权限不够
晕,前面不是赋予了权限了嘛,难道搞错了。再赋予一次。
chown -R cacti rra
chown -R cacti log
执行命令,OK了,检查一下目录rra,哈哈,已经有一个文件了。去看看图看。图有了,但是是否有正确的每5分钟采集一次
就要等等,等好几个5分钟再来看看了。等了一会儿,还是没有数据,唉,好事多磨啊,有图像了,又没有数据。。。。
检查snmp
snmpwalk -c public -v 2c 10.206.19.59 if 有很多信息返回
检查数据
rrdtool fetch localhost_mem_swap_4.rrd AVERAGE,返回的都是
1261452300: nan
1261452600: nan
文件更新信息
rrdtool lastupdate localhost_mem_swap_4.rrd --template,返回数据
users
1261535656: U
文件信息
rrdtool info localhost_users_6.rrd,返回信息:
filename = "localhost_users_6.rrd"
rrd_version = "0003"
step = 300
last_update = 1261535656
ds[users].type = "GAUGE"
ds[users].minimal_heartbeat = 600
ds[users].min = 0.0000000000e+00
ds[users].max = 5.0000000000e+02
ds[users].last_ds = "U"
ds[users].value = 0.0000000000e+00
网上搜索资料,可能是SNMP没有配置好
vi /usr/local/net-snmp/share/snmp/snmpd.conf
cp /etc/snmp/snmpd.conf /usr/local/net-snmp/share/snmp/snmpd.conf
重启snmp
/usr/local/net-snmp/sbin/snmpd
修改定时任务
[root@dev1 snmp]# crontab -e -u cacti
*/5 * * * * /usr/local/bin/php -q /usr/local/apache2/htdocs/cacti/poller.php > /var/log/poller.log 2>&1
检查定时任务是否启动了
/etc/init.d/crond status
一切正常
检查log/cacti.log日志
12/23/2009 01:14:16 PM - POLLER: Poller[0] WARNING: Cron is out of sync with the Poller Interval! The Poller Interval is '300' seconds, with a maximum of a '300' second Cron, but 4754 seconds have passed since the last poll!
12/23/2009 01:20:01 PM - POLLER: Poller[0] WARNING: Cron is out of sync with the Poller Interval! The Poller Interval is '300' seconds, with a maximum of a '300' second Cron, but 345 seconds have passed since the last poll!
12/23/2009 01:25:00 PM - POLLER: Poller[0] Maximum runtime of 298 seconds exceeded. Exiting.
12/23/2009 01:25:00 PM - SYSTEM STATS: Time:298.7072 Method:cmd.php Processes:1 Threads:N/A Hosts:2 HostsPerProcess:2 DataSources:5 RRDsProcessed:0
12/23/2009 01:30:00 PM - POLLER: Poller[0] Maximum runtime of 298 seconds exceeded. Exiting.
手工执行了几次
php cacti/cmd.php
php cacti/poller.php
PHP Deprecated错误的解决
vi /usr/local/lib/php.ini
加入:
php_flag allow_call_time_pass_reference On
php_value error_reporting "E_ALL & ~E_NOTICE & ~E_DEPRECATED"
终于有数据了,发现好像是执行了php cacti/cmd.php,但是最后还是有些问题
② linux 下的snmp++的安装
1.下载net-snmp -5.3.pre4.tar.gz包.
编译,安装
[[email protected] net-snmp -5.2.1]# ./configure –prefix=/usr/local/net-snmp -5.2.1
[[email protected] net-snmp -5.2.1]#make
[[email protected] net-snmp -5.2.1]#make install
2.创建放配置 文件的目录
[[email protected] net-snmp -5.2.1]# mkdir /etc/snmp
3.拷贝配置 文件
将解压出来的包中的EXAMPLE.conf拷贝到刚创建的目/etc/snmp 中,并命名为snmpd.conf
[[email protected] net-snmp -5.2.1]# cp -R EXAMPLE.conf /etc/snmp /snmpd.conf
4.修改配置 文件
[[email protected] net-snmp -5.2.1]# vi /etc/snmp /snmpd.conf
找到如下行,将其改为你想要的字符串,和网络
# sec.name source community
com2sec local localhost COMMUNITY
com2sec mynetwork NETWORK/24 COMMUNITY
例如
com2sec local localhost COMMUNITY
com2sec mynetwork 192.168.1.0/24 abcpublic
注意要用192.168.1.0/24 MS不能用192.168.1.1/24.另外改后要重启snmp 才能生效.
5.开启snmp
[[email protected] net-snmp -5.2.1]# /usr/local/net-snmp -5.2.1/sbin/snmpd -Lsd -Lf /dev/null -p /var/run/snmpd -a -c /etc/snmp /snmpd.conf
6.重启.
[[email protected] net-snmp -5.2.1]# killall -9 snmpd
[email protected] net-snmp -5.2.1]# /usr/local/net-snmp -5.2.1/sbin/snmpd -Lsd -Lf /dev/null -p /var/run/snmpd -a -c /etc/snmp /snmpd.conf
这样下来应该行了,
大概的思路吧
③ linux怎么安装配置snmp协议
一、安装
snmp
服务
1
、检查系统是否已经安装
snmp
的
rpm
包
以下是安装
snmp
服务需要的
rpm
包:
libsensors3-2.10.6-55.el5.i386.rpm
lm_sensors-2.10.6-55.el5.i386.rpm
net-snmp-libs-5.3.2.2-5.el5.i386.rpm
net-snmp-5.3.2.2-5.el5.i386.rpm
net-snmp-utils-5.3.2.2-5.el5.i386.rpm
推荐到
http://rpm.pbone.net/
下载这些
rpm
包,该网站比较全面,包含各种版本的包。
使用命令:
$rpm-qa|grepsnmp
检查是否安装
net-snmp-utils-5.3.2.2-5.el5
,
net-snmp-libs-5.3.2.2-5.el5
,
net-snmp-5.3.2.2-5.el5
三个
rpm
包
使用命令:
$rpm-qa|greplibsen
检查是否安装
libsensors3-2.10.6-55.el5
使用命令:
$rpm-qa|greplm
检查是否安装
lm_sensors-2.10.6-55.el5
说明:
(
1
)这几个包的安装有一定顺序,在安装的时候,会有提示。比如安装
net-snmp-5.3.2.2-5.el5.i386.rpm
时,会提示必须先安装
net-snmp-libs-5.3.2.2-5.el5.i386.rpm
。
(
2
)
net-snmp-utils-5.3.2.2-5.el5.i386.rpm
并不是必须安装的包,但安装它会带来不少帮助,
它提供了很多工具,
例如可以使用
snmptranslate
命令查看
oid
,
可以使用
snmpget
、
snmpwalk
命令等。
(
3
)
net-snmp-libs-5.3.2.2-5.el5.i386.rpm
、
net-snmp-5.3.2.2-5.el5.i386.rpm
、
net-snmp-utils-5.3.2.2-5.el5.i386.rpm
这三个包有一定的版本要求,必须版本一致,否则安装
无法成功。我这里都使用的
5.3.2.2-5.el5
版本,也可以下载其他版本的
rpm
包,但注意版本
要一致,在安装的时候也会提示,哪个版本的包是必须的,你可以根据提示下载需要的包。
2
、安装以上的几个
rpm
包
若系统中没有安装以上包,则先安装。
使用命令:
rpm–ivh
包名
安装完后,使用命令:
$rpm-qa|grepsnmp
,检查是否已经安装成功。
3
、启动
snmp
服务
若安装成功,则可使用命令:
$servicesnmpdstart
提示:
Starting
snmpd:
[OK]
,则启动
snmp
服务成功。
你可以将
snmp
服务设置为开机自启动,这样免去手动启动的麻烦。
使用命令:
$chkconfigsnmpdon
,将
snmpd
服务设为开机自启动。
然后使用命令:
$chkconfig--list|grepsnmpd
,查看是否已经设置成功。
4
、验证
snmp
服务
(
1
)使用
snmpwalk
命令,查看本机
localhost
的主机名:
如上,可以看到通过远端主机获取到的主机名,与在本机获取到的主机名是一致的。
二、配置
snmp
服务
以上安装完成后,使用的是
snmp
的默认配置,通过这些默认配置,我们只能获取主机的部
分信息。但一些其他的重要信息,无法获取。如主机的
CPU
使用情况,内存使用情况等。
如上,无法获取
CPU
的空闲率(注:
1.3.6.1.4.1.2021.11.11.0
是主机
CPU
空闲率的
oid
)
。
这时候,若要获取主机的一些重要信息,则要修改
snmp
的默认配置。
配置方法:修改
/etc/snmp/snmpd.conf
文件
1
、修改查看设备节点的权限
在该文件中,找到如下位置:
view
:定义了可以查看哪些节点设备的信息。
snmp
默认配置只能查看
.1.3.6.1.2.1.1
和
.1.3.6.1.2.1.25.1.1
节点下的设备信息,
而主机
CPU
和
内存等设备都不在这些节点下,所以无法获取这些数据。
因此,可以修改这个配置,如下:
在此处添加了一行:
viewsystemviewincluded.1
表示可以查看
.1
节点下的所有设备信息。
④ linux系统redhat怎么安装net-snmp-5.7.3后./trap.sh:line 6:snmptrap:command
安装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
⑤ linux下安装snmp的依赖包有哪些
Linux有很多版本。我使用的Linux Mint 17 (Ubuntu衍生版)上,直接就可以安装snmp,依赖关系直接已经满足。
不过既然你问到,我也帮你查出来了:
libc6(>=2.14)
libsnmp30(>=5.7.2~dfsg)
libssl1.0.0(>=1.0.0)
libsnmp-base
⑥ linux系统安装snmp服务时需要重启服务器吗
不需要。装snmP就和linux系统里装应用软件一样。只要启动应用软件就行了、如apache nginx
⑦ linux 服务器怎么开启snmp
对SNMP进行安装和配置即可。
⑧ 红旗linux系统中安装snmp需要安装哪几个文件
现在还有人用红旗吗?很多都没支持了,以下介绍下在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
进入文件夹进行配置安装:cdnet-snmp-5.7.1
net-snmp-5.7.1目录下的configure是可执行文件,如果想指定程序包的安装路径,那么首先建立相应的文件夹来存放安装信息,可以写成./configure –-prefix=/指定的路径名。参数--prefix用来告诉系统安装信息存放的路径,如果没有指定路径,直接执行./configure,那么程序包都会安装在系统默认的目录下,通常为:/usr/local下
执行命令"./configure --prefix=/usr/local/snmp --with-mib-moles='ucd-snmp/diskio ip-mib/ipv4InterfaceTable'",注意,以上的--with-mib-moles=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服务器的名称已经正常返回输出到命令行窗口了。
⑨ linux系统用rpm包怎么配置snmp
1.检查系统是否已经安装snmp的rpm包 以下是安装snmp服务需要的rpm包: libsensors3-2.10.6-55.el5.i386.rpm lm...
2.安装以上的几个rpm包 若系统中没有安装以上包,则先安装。 使用命令:rpm –ivh ...
3.启动snmp服务 若安装成功,则可使用命令: $ service snmpd start...
4.验证snmp服务 (1)使用snmpwalk命令,查看本机localhost的主机名: ...