centos安装:
检查有无安装snmp
rpm -qa|grep snmp
使用yum安装
yum install net-snmp*
检查glib版本
yum install glibc
###############
ubuntu安装 配置:
apt-get install snmpd snmp
apt-get install snmp-mibs-downloader
apt-get install gawk dc snmpd snmp snmp-mibs-downloader sysstat libssl-dev
vi /etc/snmp/snmpd.conf
把 rocommunity public default -V systemonly改成 rocommunity public localhost
测试:./check_traffic.sh -V 2c -C public -H localhost -L
如果启动snmpd报错:snmpd[1544]: /etc/snmp/snmpd.conf: line 143: Error: unknown payload OID
1. Install snmpd :apt-get install snmpd
2. Ensure the multiverse repository is enabled :
apt-get install python-software-properties
add-apt-repository 'deb http://archive.ubuntu.com/ubuntu precise multiverse'
apt-get update
3. Install the snmp-mibs-downloader :apt-get install snmp-mibs-downloader
4. Edit/etc/default/snmpdand setMIBS=UCD-SNMP-MIB(this is the key fix)
5. Restart snmpd :/etc/init.d/snmpd restart
syslog中有大量 snmpd: Connection from UDP:
vi /etc/default/snmpd
SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -g snmp -I -smux -p /var/run/snmpd.pid'
改成:
SNMPDOPTS='-LS3d -Lf /dev/null -u snmp -g snmp -I -smux -p /var/run/snmpd.pid'
service snmpd restart
#########################################################
community string
网络设备在使用SNMP中都设有community string,它类似于简单的口令验证机制,用来确认是否具有可读或读写的权限。许多用户在购买设备以来,从未修改系统缺省的community string,因此非授权用户使用缺省口令就可以对重要的系统信息、设备的状态等进行修改。
将"COMMUNITY"字段改为你要设置的密码.比如"public"或privatepass.
将“localhost”改为你想哪台机器可以看到你的snmp信息,如localhost或10.10.10.10。
SNMP的版本
在SNMP协议得益于重大升级,因为在1988年推出。
不幸的是,很大比例的网络内容供应商,甚至一些网络管理系统厂商都没有利用这些改进。
许多网络元素只支持SNMPv1和SNMPv2c 。 支持SNMPv3的是最小的。
版本 描述
SNMPv1 SNMPv1 ,其中实施以社区为基础的安全
SNMPv2c SNMPv2以社区为基础的安全
SNMPv2u SNMPv2与基于用户的安全
SNMPv2 SNMPv2党为基础的安全
SNMPv3安全机制 SNMPv3安全机制,而实现基于用户的安全
########################
配置snmp
vi /etc/snmp/snmpd.conf
加入以下:
com2sec starsliao localhost ssssss //添加成员,允许的源地址,密钥
group ivggroup v2c starsliao //添加组,协议,加入成员
view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc //添加一条权限规则
access ivggroup "" any noauth exact mib2 none none //允许组访问该权限规则
1. #启动
2. /usr/local/sbin/snmpd
3. #加入启动
4. echo '/usr/local/sbin/snmpd' >> /etc/rc.local
5. #查看161端口是否开启
6. netstat -ano|grep 161
7. #测试
8. snmpwalk -v 1 -c ssssss localhost system
snmp安装完毕
安装check_traffic脚本
下载check_traffic_v1.2.4.zip脚本
http://www.itnms.info/discuz/viewthread.php?tid=767&extra=page%3D1%26amp%3Bfilter%3Ddigest&page=1
上传./check_traffic.sh 至/usr/local/nagios/libexec
1. cd /usr/local/nagios/libexec/
2. chown nagios:nagios ./check_traffic.sh
3. chmod 755 ./check_traffic.sh
用 -L选项列出对应主机所有的interface,来确定你要监控的网络接口(如果能你确认接口的index值,这一步可以省略)。
通过输出,我们确认要监控的网络接口为4,对应为"Macronix MX98715-Based Ethernet Adapter (Generic) - 数据包计划程序微型端口"
1. ./check_traffic.sh -V 2c -C privatepass -H localhost -L
List Interface for host localhost.
Interface index 1 orresponding to lo
Interface index 2 orresponding to eth0
Interface index 3 orresponding to eth1
Interface index 4 orresponding to sit0
按照说明,选择版本为2c(一般选择1或者2c),community为privatepass,interface为2,单位为KB/s,in流量对应warning/critical值为200/400,out流量对应warning/critical值为300/500.
1. sudo -u nagios ./check_traffic.sh -V 2c -C privatepass -H localhost -I 2 -w12,30 -c15,50 -K -b
Can not found data in the history data file.
If it's the first time for this plugins, that's OK.
Otherwise,please use debug mode and check the debug file.
##############
e.g.:
检查snmp
snmpwalk -v 2c -c starsliao localhost system
检查网络接口
./check_traffic.sh -V 2c -C starsliao -H 192.168.9.248 -L
检查流量
./check_traffic.sh -V 2c -C starsliao -H 192.168.9.248 -I 1798 -w100,400 -c200,800 -M -b -6
./check_traffic.sh -V 2c -C starsliao -H $HOSTADDRESS$ -I $ARG1$ -w $ARG2$ -c $ARG3$ -M -b -6
########
第一次执行,因为history data file不存在,因此会由此提示,可以忽略。
如果每次执行都忽略,则要检查/var/tmp下是否有/var/tmp/check_traffic_${Host}_${Interface}.hist_dat文件生成。
文件的内容是系统当前的时间,in及out当前的数值。
nagios监控本机的配置
修改/usr/local/nagios/etc/objects/commands.cfg,增下以下内容
1. define command{
2. command_name check_traffic_nv
3. command_line $USER1$/check_traffic.sh -V 2c -C privatepass -H localhost -I $ARG1$ -w $ARG2$ -c $ARG3$ -M -b
4. }
修改/usr/local/nagios/etc/objects/localhost.cfg,增下以下内容
1. define service{
2. use local-service,srv-pnp ; Name of service template to use
3. host_name nagios
4. service_description check_nv_traffic_eth0
5. check_command check_traffic_nv!2!12,30!15,35
6. notifications_enabled 0
7. normal_check_interval 5 ;5分钟
8. retry_interval 1 ;1分钟
9. }
nagios监控远程机的配置
修改/usr/local/nagios/etc/objects/remotehost.cfg,增下以下内容
1. define service{
2. use local-service,srv-pnp ; Name of service template to use
3. host_name nagios
4. service_description check_nv_traffic_eth0
5. check_command check_nrpe!check_traffic_nv
6. notifications_enabled 0
7. normal_check_interval 5 ;5分钟
8. retry_interval 1 ;1分钟
9. }
修改/usr/local/nagios/etc/nrpe.cfg增加以下内容
1. command[check_traffic_nv]=/usr/local/nagios/libexec/check_traffic_nv.sh -V 2c -C privatepass -H localhost -I 2 -w 12,30 -c 15,35 -M -b
访问http://localhost/nagios
点击Service Detail
点击check_nv_traffic_eth0服务旁的小太阳
等5分钟后就可以看到图表
which: no snmpwalk in (/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin)
如果check_nv_traffic_eth0服务报找不到snmpwalk.
1. ln -s /usr/local/bin/snmpwalk /usr/bin/snmpwalk