发布网友 发布时间:2022-04-22 14:57
共2个回答
热心网友 时间:2022-04-13 23:11
利用工具实现,开源SNMP工具SugarNMSTool是带拓扑图界面的,可在Windows、Linux、Unix系统上快速运行。可进行设备和链路的自动发现,可以按IP起始范围、路由跳转搜索、IP漫游发现等方式,发现设备,并识别设备的基本类型,通过LLDP、CDP、ICMP、生成树协议等物理拓扑发现技术,发现设备的物理链接,在图形界面上自动生成设备拓扑图;设备和链路手工编辑,除自动发现外,还可以手工添加、删除、修改网络设备和链路。用工具自动发现出设备内部的网口、光口、电口、磁盘、内存、CPU、软件服务等资源信息,进一步了解设备的内部状态。工具自带了SNMP TRAP服务,可以接受SNMP TRAP信息,并自动在界面上显示TRAP的详细信息。工具自带了MIB 浏览器功能,支持导入其他MIB库。以SNMP V1/V2/V3 协议,对设备SNMP进行GET、SET、GetBuilk、GetNext等查询、修改OID的操作。
热心网友 时间:2022-04-14 00:29
基本知识准备:
1、SNMP(简单网络管理协议)
2、一些脚本知识,可以编写任意一种脚本。
3、知道Nagios怎么用。
好啦,现在开始:
1、编写一个可以输出本机Nginx并发连接数的脚本,输出结果为连接数。我这里脚本比较简单,只是看看已经链接80端口的。当然也可以自己编写更精确的脚本。
[root@webserver2 scripts]# cat showhttp.sh
#!/bin/bash
echo `netstat -nat | grep -i "80" | wc -l`
2、配置snmp,如何安装我就不说的,自己去弄呗。
yum install net-snmp* 我是这么安装的。
看下我的snmp配置文件:
[root@webserver2 ~]# grep -v '^#' /etc/snmp/snmpd.conf | grep -v '^$'
com2sec notConfigUser default public
group notConfigGroup v1 notConfigUser
group notConfigGroup v2c notConfigUser
view systemview included .1.3.6.1.2.1.1
view systemview included .1.3.6.1.2.1.25.1.1
view systemview included .1.3.6.1.4.1.2021
access notConfigGroup "" any noauth exact systemview none none
syslocation Unknown (edit /etc/snmp/snmpd.conf)
syscontact Root <root@localhost> (configure /etc/snmp/snmp.local.conf)
pass .1.3.6.1.4.1.4413.4.1 /usr/bin/ucd5820stat
exec .1.3.6.1.4.1.2021.51 showhttp /bin/bash /root/scripts/showhttp.sh
然后重载下snmp的配置文件。
/etc/init.d/snmpd reload
使用snmpwalk测试下,能不能通过snmp来获取数据。
[root@webserver2 ~]# snmpwalk -v 1 -c public 192.168.137.102 .1.3.6.1.4.1.2021.51
UCD-SNMP-MIB::ucdavis.51.1.1 = INTEGER: 1
UCD-SNMP-MIB::ucdavis.51.2.1 = STRING: "showhttp"
UCD-SNMP-MIB::ucdavis.51.3.1 = STRING: "/bin/bash /root/scripts/showhttp.sh"
UCD-SNMP-MIB::ucdavis.51.100.1 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.51.101.1 = STRING: "7"
UCD-SNMP-MIB::ucdavis.51.102.1 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.51.103.1 = ""
[root@webserver2 ~]# snmpwalk -v 1 -c public 192.168.137.102 showhttp
showhttp: Unknown Object Identifier (Sub-id not found: (top) -> showhttp)
[root@webserver2 ~]# snmpwalk -v 1 -c public 192.168.137.102 .1.3.6.1.4.1.2021.51.101.1
UCD-SNMP-MIB::ucdavis.51.101.1 = STRING: "5"
至此位置,snmp就配置好了。至于原理,google、一大堆。限于自己的表述能力和打字速度就不在此复述了。
下面我登录nagios的监控机,来监控这台机器的http连接数量。
2、首先安装nagios,这里跳过。
3、先写个如下脚本,获取被监控的设备的snmp值。
[root@webserver2 libexec]# cat show_http
#!/bin/bash
OID='.1.3.6.1.4.1.2021.51.101.1'
IPADDRESS=$2
COMMUNITY=$1
if [[ -z $IPADDRESS ]] || [[ -z $COMMUNITY ]]; then
echo "Mabe ... ...Usage: show_http <COMMUNITY> <IPADDRESS>"
exit 4
fi
counts=`snmpwalk -v 1 -c $COMMUNITY $IPADDRESS $OID 2>/dev/null | awk -F'"' '{print $2}'`
if [ -z $counts ]; then
echo "Mabe snmpd is down OR ipaddress error OR community fault."
exit 4
fi
if [ $counts -ge 200 ]; then
echo "Cirtical - connection - $counts"
exit 2
elif [ $counts -ge 100 ]; then
echo "Warning - connection - $counts"
exit 1
else
echo "OK - connection - $counts"
exit 0
fi
3、最nagios进行一些配置:
define command{
command_name check-host-alive
command_line $USER1$/show_http nagios $HOSTADDRESS$ #添加一条命令,参数是团体名和主机地址,团体名,我直接用了nagios。为了可扩展性的考虑,大家也可以使用resources文件来定义。这里不再复述。
}
define host{ #添加一台主机
use web-server
host_name nginx-server
alias nginx-server
address 192.168.137.101
}
define service{ #添加一项监控服务
use web-service
host_name nginx-server
service_description showhttp
check_command check_httplink
}
联系人什么的,我就不配置了,用配置文件来修改真心疲惫。
这里顺便推荐两款软件Centreon、NagiosQL很不错的哦~