1,安装NSClient++
访问http://nsclient.org/nscp/下载NSClient++,这里我使用的是NSClient++-0.3.9-x64的msi安装包。下载之后直接安装,过程中会提示输入Nagios监控服务器地址和密码。地址填写正确,密码不用设置。Nagios监控服务器事先在监控Linux服务器时候已经搭建好,以后再和大家分享。
安装如下图所示:
2.配置NSClient++
编辑安装目录下的NES.ini文件,打开NSClient++的端口。方法为找到:[NSClient]port=12489去掉port前的“”就可以启用12489端口。
3,Nagios监控服务器设置vi /usr/local/nagios/etc/nagios.cfg
4,搜索找到:# Definitions for monitoring a Windows machine
# cfg_file=/usr/local/nagios/etc/objects/windows.cfg
5,将第二行的#去掉打开Nagios监控的Windows模块,然后保存。
接着编辑# vi /usr/local/nagios/etc/objects/windows.cfg
6,找到并设置监控的服务器:
7,接下来搜索各种监控的服务并设置:
8,部署好之后在Nagios中显示如下:
默认情况下,所有的Nagios插件均存放在用$USER1宏命令定义的目录中,具体在文件/etc/nagios/private/resource.cfg中定义。在来自EPEL存储库(http://fedoraproject.org/wiki/EPEL)的典型Nagios
安装环境下,$USER1被定义为/usr/lib/nagios/plugins。你对插件应该做的头一件事就是,把它拷贝到用$USER1宏命令定义
的目录中。插件通常归root所有,其权限设置为755。Nagios在属于nagios群组的用户nagios下工作,所以脚本需要读取和执行其他群组
的权限。
一旦你把脚本放在/usr/lib/nagios/plugins目录中,就要在文件/etc/nagios/objects/commands.cfg里面把它定义成Nagios命令。假设你将脚本命名为check_file.sh,添加下列命令定义:
#我们的自定义文件检查命令:
define command{command_namecheck_filecommand_line$USER1$/check_file.sh $ARG1$}
这应当相当清楚。变量$ARG1$代表传递给Nagios命令的第一个实参;在本例中,这第一个实参应该是文件名称。如果你想传递更多的实参,可以将$ARG2$用作第二个实参,将$ARG3$用作第三个实参,以此类推。
想开始使用你的插件,应在你的nagios配置文件(比如service.cfg)中将其定义成一项服务:
define service{use local-servicehost_name localhostservice_description Check the file /etc/passwdcheck_command check_file!/etc/passwd}
上述服务是为本地主机(host_name
localhost)定义的,为本地服务使用模板(使用local-service),即可了解模板及模
板的工作原理。最重要的部分是check_command指令。它指定了命令check_file,然后是作为分隔符的感叹号,后面是作为实参的文件名
称。如果你的插件有不止一个实参,可以用另外的感叹号来分隔。
系统环境:Nagios3.x+CentOS5.6+Cisco4500前提条件:1.Cisco交换机都支持SNMP协议,只需要简单的设置即可开启,例如:snmp-servercommunitysnmppwRO。更加详细的设置请使用Google搜索“Cisco开启SNMP”,参考网上相关文章。2.在安装Nagios之前,必须已经安装Net-Utils及其开发组件。成功安装Nagios之后,再次检查libexec目录下有check_snmp命令。系统测试:check_snmp命令提供了详细的使用说明,只需要在Linux命令行输入check_snmp–help即可查看帮助信息,这其中包括每一项参数的使用等。这里以检测Cisco交换机的系统为例,示范如何使用check_snmp。交换机为Cisco4500系列,系统描述的OID为.1.3.6.1.2.1.1.1.0[root@wardkinglibexec]#./check_snmp-H10.241.10.1-o.1.3.6.1.2.1.1.1.0-CsnmppwSNMPOK–“CiscoIOSSoftware,Catalyst4500L3SwitchSoftware(cat4500-ENTSERV|K9-M),Version12.2(53)SG2,RELEASESOFTWARE(fc1)建议用于Nagios监控的OID:系统内存使用(5分钟内)1.3.6.1.4.1.9.9.48.1.1.1.5.1系统可用内存(5分钟内)1.3.6.1.4.1.9.9.48.1.1.1.6.1CPU使用率(5分钟内)1.3.6.1.4.1.9.2.1.58.0硬件状态1.3.6.1.4.1.9.9.13系统配置:由于使用check_snmp检测的结果不够人性化,大部分的结果都需要重新调整。使用Perl脚本调用NET::SNMP模块,实现收集监控结果,并重新输出,更易阅读和使用。这里引用4个从国外网站收集的脚本,check_snmp_env,check_snmp_cisco_memutil,check_snmp_cisco_loadavg,check_snmp_cisco_ifstatus请下载至nagios安装目录下的libexec子目录中,例如/usr/local/nagios/libexec,重命名去掉txt扩展名,赋予可执行权限:[root@nagioslibexec]#pwd/usr/local/nagios/libexec[root@nagioslibexec]#chmoda+xcheck_snmp_cisco_*check_snmp_env-vmodeof`check_snmp_cisco_ifstatus’retainedas0755(rwxr-xr-x)modeof`check_snmp_cisco_loadavg’retainedas0755(rwxr-xr-x)modeof`check_snmp_cisco_memutil’retainedas0755(rwxr-xr-x)modeof`check_snmp_env’retainedas0755(rwxr-xr-x)剩下的工作就是follow标准流程设置监控命令,添加被监控的交换机和服务了。编辑etc/objects/command.cfg,添加如下定义:#CheckCisco,ExtremeandJuniperhardwaredefinecommand{command_namecheck_snmp_envcommand_line$USER1$/check_snmp_env-H$HOSTADDRESS$-C$ARG1$$ARG2$}#CiscoSNMPdevicemonitoringdefinecommand{command_namecheck_snmp_cisco_memcommand_line$USER1$/check_snmp_cisco_memutil-H$HOSTADDRESS$-C$ARG1$-w$ARG2$-c$ARG3$}definecommand{command_namecheck_snmp_cisco_cpucommand_line$USER1$/check_snmp_cisco_loadavg-H$HOSTADDRESS$-C$ARG1$-w$ARG2$-c$ARG3$}definecommand{command_namecheck_snmp_cisco_ifcommand_line$USER1$/check_snmp_cisco_ifstatus-H$HOSTADDRESS$-C$ARG1$-i$ARG2$-w$ARG3$-c$ARG4$}编辑switch.cfg加入监控的交换机配置,新增相关系统服务,例如:defineservice{usegeneric-serviceInheritvaluesfromatemplatehost_nameCAT4506E_B1_LG3_1,CAT4506E_B3_A09L_1,CAT4507R_B5_A09R_1,CAT4507R_B1_LG3_1,CAT4507R_B5_D12_1,RackSW_PDC_1,RackSW_PDC_2,RackSW_PDC_3,RackSW_PDC_4,RackSW_SDC_2,RackSW_SDC_3service_descriptionEnvironmentcheck_commandcheck_snmp_env!snmppw}defineservice{usegeneric-serviceInheritvaluesfromatemplatehost_nameCAT4507R_B5_D12_1,CAT4507R_B1_LG3_1,CAT4506E_B1_LG3_1,CAT4506E_B3_A09L_1,CAT4507R_B5_A09R_1service_descriptionLoadAVGcheck_commandcheck_snmp_cisco_cpu!snmppw!60!80}defineservice{usegeneric-serviceInheritvaluesfromatemplatehost_nameCAT4507R_B5_D12_1,CAT4507R_B1_LG3_1,CAT4506E_B1_LG3_1,CAT4506E_B3_A09L_1,CAT4507R_B5_A09R_1service_descriptionMemutilcheck_commandcheck_snmp_cisco_mem!snmppw!70!90}欢迎分享,转载请注明来源:内存溢出
评论列表(0条)