1、nagios的使用Nagios监控的使用一、 Nagios简介Nagios是一个监视系统运行状态和网络信息的监视系统。Nagios能监视所指定的本地或远程主机以及服务,同时提供异常通知功能等Nagios可运行在Linux/Unix平台之上,同时提供一个可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等。Nagios的主要功能特点: 监视网络服务 (SMTP,POP3, HTTP, NNTP, PING等) 监视主机资源 (进程, 磁盘等) 简单的插件设计可以轻松扩展Nagios的监视功能 服务等监视的并发处理 错误通知功能 (通过email, pager,或
2、其他用户自定义方法) 可指定自定义的事件处理控制器 可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等二、 工作原理Nagios自身是不带任何功能的,Nagios监测服务只能是本地系统监测以及对远程主机的连通性监测。为了使Nagios的监测服务器能够远程对被监测主机系统上的信息进行获取,比如远程系统上的进程数、磁盘空间使用状况、所运行的服务等等这些必须要登录远程主机系统上才能了解的信息的话,就必须要依靠NRPE或nsclient这个核心扩展插件程序,NRPE作为中间的代理程序,扮演着一手接受着Nagios监测服务器发来的请求,另一手在远程主机系统上获取指定的
3、信息的中间人角色。,要实现监控功能,我们必须安装插件(plugins),以及nrpe。2.1 监控windows1. windows设置1) 安装nsclient,然后在cmd命令台执行以下命令nsclient+ /install2) 修改nsclient的nse.ini配置文件modules #去掉注释符号”;”除了CheckWMI.dll和RemoteConfiguration.dllFileLogger.dllCheckSystem.dllCheckDisk.dllNSClientListener.dllSettingsallowd_host=192.168.2.2 #为nagios服务
4、的IPNSClientport=12489 #去掉注释就可以了!3) 启动nsclient服务并确认端口是否打开netstat -an | moreTCP 0.0.0.0:12489 0.0.0.0:0 LISTENING2. linux设置接下来我们开始配置nagios服务器里面的内容,因为nagios是模块化调用,先到配置文件打开windows相关模块。vi /usr/local/nagios/etc/nagios.cfg# Definitions for monitoring the local (Linux) hostcfg_file=/usr/local/nagios/etc/obj
5、ects/localhost.cfg# Definitions for monitoring a Windows machinecfg_file=/usr/local/nagios/etc/objects/windows.cfg #去掉这句话的注释打开模块后配置windows.cfgvi /usr/local/nagios/etc/objects/windows.cfgdefine host use windows-server host_name winserver #被监控主机名 alias My Windows Server address 192.168.0.8 ; 被监控的windo
6、ws地址#把下面的host_name都改成winserverdefine service use generic-service host_name winserver service_description CPU Load check_command check_nt!CPULOAD!-l 5,80,90 #监控CPU使用 define service use generic-service host_name winserver service_description Memory Usage check_command check_nt!MEMUSE!-w 80 -c 90 #监控内存
7、打开windows模块,设置windows.cfg中相关被监控主机与监控内容后nagios服务器就配置完了,下面重启nagios。2.2 监控linuxLinux客户端安装了nrpe和nagios-plugins1.修改linux被监控端的nrpe配置文件allowed_hosts=127.0.0.1,192.168.2.2 #添加nagios主机2. 修改nagios配置文件vi /usr/local/nagios/etc/nagios.cfg#中间添加cfg_file=/usr/local/nagios/etc/objects/mylinux.cfg 3. 新建mylinux.cfg 设置
8、监控内容vi /usr/local/nagios/etc/objects/mylinux.cfgdefine host use linux-server host_name IM #被监控主机名 alias IM #别名 address 192.168.2.29 #被监控主机IP地址 define service use generic-service host_name IM service_description check-load check_command check_nrpe!check_load 三、监控与报警3.1 nagios监控网页对于一个网站来说,外部用户能够看到就是该网
9、站的页面。网站页面能否被正常访问,以及显示是否正常势必会成为网站整体水平最直接的外在表现。那么,如何才能在第一时间检测到网页是否正常,并且给相应的技术人员发出报警来及时解决问题,而不是等接到用户抱怨的电话后才在慌忙中仓促的解决问题呢?解决这个问题的关键就是要在第一时间发现问题,发现那些不能显示的网页或是显示不正常的网页,并及时发出报警。当然我们可以通过人工的方法去监测,但对于一些大型的、复杂的网站来说就不是很合适了,我们可以使用监控软件来解决这个问题。我所使用的就是Nagios软件,它提供的插件(Plugins)中有相应的命令可以完成对网页的监控。通过check_http的帮助我们可以清楚的了
10、解到该命令可以为我们做什么,以及如何去做。选项虽然很多,其实常被用到的却只有几项,而且很多选项是有默认值的一般无需设置。下面就我们需要用到的几个选项做一个简要的说明。选 项 说 明 -H, -hostname=ADDRESS 主机名或域名 -I, -IP-address=ADDRESS server的IP地址,用于在不能DNS的情况下 -p, -port=INTEGER 端口号,默认80 -u, -url=PATH url,默认是/ -w, -warning=DOUBLE warning状态的响应时间,单位是秒 -c, -critical=DOUBLE critical状态的响应时间,单位是秒
11、 -t, -timeout=INTEGER 连接超时时间,默认10秒3.1.1监控测试rootlocalhost libexec# ./check_http H 192.168.2.252 -u /index.htmHTTP OK HTTP/1.1 200 OK - 755 bytes in 0.003 seconds |time=0.002561s;0.000000 size=755B;0可以看出该网页是正常的,如果网页地址不对或显示有错误也会有相应的反馈信息。3.1.2具体配置通过Nagios监控网页一般有两种方式,一种是直接通过Nagios监控主机配置监控服务监视网页;另一种是在某一安装
12、了NRPE的客户端主机上配置监控命令,通过NRPE监控网页情况,再将结果传回给Nagios监控主机。通过一个装有NRPE的客户端作为桥梁的方式可以使主机更加安全,减轻Nagios主机的负担,同时可以避免在Nagios主机上配置DNS等不必要的麻烦。(主要一种针对windows,一种针对linux)。1) Nsclient方式nsclient较易实现,只需要在Nagios的配置文件里添加一个服务即可。配置内容如下修改/etc/objects/commands.cfg,增加如下内容。#check_http check web pagedefine command command_name chec
13、k_webpage command_line $USER1$/check_http $ARG1$ 修改被监控主机的.cfg文件,如下内容define host use windows-server host_name web alias web address 192.168.2.252 define command use windows-server host_name web command_name check_http command_line $USER1$/check_http -H 192.168.2.252 -u /index.htm 2) NRPE方式nrpe监控复杂一些,
14、需要修改两台主机的配置文件。修改NRPE的配置文件,增加如下内容。#check webpagecommandcheck_webpage=/usr/local/nagios/libexec/check_http -H 192.168.2.252/index.htm修改Nagios配置文件,增加如下内容。#the check_apache on the remote host.define service use generic-service host_name hostname service_description web page check_command check_nrpe! che
15、ck_webpage 3.2 使用nagios监控windows基本性能3.2.1 监控CPU查看check_nt帮助rootlocalhost libexec# ./check_nt -hUsage:check_nt -H host -v variable -p port -w warning -c critical-l params -d SHOWALL -t timeout#监控CPU写法CPULOAD =Average CPU load on last x minutes.Request a -l parameter with the following syntax:-l ,. #报
16、警格式 should be less than 24*60.Thresholds are percentage and up to 10 requests can be done in one shot.ie: -l 60,90,95,120,90,95报警写法例:#完整写法为check_nt!CPULOAD!-l 5,80,90check_nt调用cpuload,5分钟内负载平均达到80%为warning,负载达到90%为critical3.2.2 监控磁盘使用USEDDISKSPACE = Size and percentage of disk use. Request a -l para
17、meter containing the drive letter only. # -l后面接的参数用来指定盘符 Warning and critical thresholds can be specified with -w and -c.#如果要监控C盘,达到80%报警,达到90%为严重危险check_nt!USEDDISKSPACE!-l c -w 80 -c 903.2.3 监控内存MEMUSE = Memory use. Warning and critical thresholds can be specified with -w and -c.#监控Windows服务器的内存使用
18、情况,如果超过了80%则是warning,如果超过90%则是criticalcheck_command check_nt!MEMUSE!-w 80 -c 903.2.4 监控服务状态SERVICESTATE = Check the state of one or several services. Request a -l parameters with the following syntax: -l ,. You can specify -d SHOWALL in case you want to see working services in the returned string.#监
19、控Windows服务器的W3SVC服务的状态,如果服务停止了,则是criticalcheck_command check_nt!SERVICESTATE!-d SHOWALL -l W3SVC3.2.5 监控进程状态PROCSTATE = Check if one or several process are running. Same syntax as SERVICESTATE.#监控Windows服务器的Explorer.exe进程的状态,如果进程停止了,则是criticalcheck_command check_nt!PROCSTATE!-d SHOWALL -l Explorer.e
20、xe3.2.6 监控windows服务器运行时间UPTIME = Get the uptime of the machine. No specific parameters. No warning or critical thresholdcheck_command check_nt!UPTIME3.3使用nagios监控linux基本性能3.3.1 监控CPUrootlocalhost libexec# ./check_load -hUsage:check_load -r -w WLOAD1,WLOAD5,WLOAD15 -c CLOAD1,CLOAD5,CLOAD15Options: -h
21、, -help Print detailed help screen -V, -version Print version information -w, -warning=WLOAD1,WLOAD5,WLOAD15 Exit with WARNING status if load average exceeds WLOADn -c, -critical=CLOAD1,CLOAD5,CLOAD15 Exit with CRITICAL status if load average exceed CLOADn the load average format is the same used by
22、 uptime and w -r, -percpuDivide the load averages by the number of CPUs (when possible)#这个插件是用来检测系统当前的cpu负载, 在unix里面负载的均值通常表示是1分钟,5分钟,15分钟内平均有多少进程处于等待状态.check_load -w 15,10,5 -c 30,25,20#上面命令表示,当1分钟多于15个进程等待,5分钟多于10个,15分钟多于5个则为warning状态;当1分钟多于30个进程等待,5分钟多于25个,15分钟多于20个则为critical状态1) 修改nagios主机上被监控主机
23、的配置文件define host use linux-server host_name IM #被监控主机名 alias IM #别名 address 192.168.2.29 #被监控主机IP地址 define service use generic-service host_name IM service_description check-load check_command check_nrpe!check_load 2) 修改被监控主机上nrpe配置文件commandcheck_load=/usr/local/nagios/libexec/check_load -w 15,10,5
24、-c 30,25,20#当1分钟多于15个进程等待,5分钟多于10个,15分钟多于5个则为warning状态;当1分钟多于30个进程等待,5分钟多于25个,15分钟多于20个则为critical状态3.3.2 监控登录用户rootlocalhost libexec# ./check_users -hUsage:check_users -w -c #监控服务器的用户登录情况,如果超过了5个用户则是warning,如果超过10个用户则是criticalcheck_user -w 5 -c 101) 修改nagios主机上被监控主机的配置文件define service use generic-se
25、rvice host_name IM service_description check-users check_command check_nrpe!check_users 2) 修改被监控主机上nrpe配置文件commandcheck_users=/usr/local/nagios/libexec/check_users -w 5 -c 10#监控服务器的用户登录情况,如果超过了5个用户则是warning,如果超过10个用户则是critical3.3.3 监控磁盘分区使用rootlocalhost libexec# ./check_disk -hUsage: check_disk -w l
26、imit -c limit -p path | -x device格式:check_disk -w 低限% -c 低限% -p 磁盘设备文件或则分区文件的绝对路径Options:选项-w, -warning=PERCENT% 设定告警通知百分比数,空间低于该百分比则发出告警通知。-c, -critical=PERCENT% 设定严重告警通知百分比数,空间低于该百分比则发出严重告警通知。-p, -path=PATH, -partition=PARTITION 指定磁盘设备文件或则分区文件的绝对路径。#如果要监控根目录,达到20%报警,达到10%为严重危险check_disk -w 20% -c
27、10% -p /dev/hda11) 修改nagios主机上被监控主机的配置文件define service use generic-service host_name IM service_description check-disk check_command check_nrpe!check_hda1 2) 修改被监控主机上nrpe配置文件commandcheck_hda1=/usr/local/nagios/libexec/check_disk -w 80% -c 90% -p /dev/hda1#监控根目录,达到80%报警,达到90%为严重危险3.3.4 监控交换分区rootloca
28、lhost libexec# ./check_swap -hUsage:check_swap -av -w % -c % check_swap -w 剩余空间% -c 剩余空间% check_swap -av -w -c check_swap -w 剩余字节数 -c 剩余字节数Options:选项-w, -warning=INTEGER 设定告警通知剩余字节数,剩余字节低于该值则发出告警通知,只可整数。-w, -warning=PERCENT% 设定告警通知百分比数,剩余空间低于该百分比则发出告警通知,双百分号。-c, -critical=INTEGER 设定严重告警通知剩余字节数,剩余字节低
29、于该值则发出严重告警通知,只可整数。-c, -critical=PERCENT% 设定严重告警通知百分比数,剩余空间低于该百分比则发出严重告警通知,双百分号。#交换分区的剩余空间达到20%则警告,达到10%则严重警告。check_swap -w 20% -c 10%1) 修改nagios主机上被监控主机的配置文件define service use generic-service host_name IM service_description check-swap check_command check_nrpe!check_swap 2) 修改被监控主机上nrpe配置文件commandcheck_swap=/usr/local/nagios/libexec/check_swap -w 80% -c 50%#交换分区的剩余空间达到80%则警告,达到50%则严重警告。3.3.5 监控系统总进程rootlocalhost libexec# ./check_procs -hUsage: check_procs -w -c -m metric -s state -p ppid -u user -r rss -z vsz -P %cpu -a argument-array -C comman
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1