nagios的使用.docx
《nagios的使用.docx》由会员分享,可在线阅读,更多相关《nagios的使用.docx(19页珍藏版)》请在冰豆网上搜索。
nagios的使用
Nagios监控的使用
一、Nagios简介
Nagios是一个监视系统运行状态和网络信息的监视系统。
Nagios能监视所指定的本地或远程主机以及服务,同时提供异常通知功能等Nagios可运行在Linux/Unix平台之上,同时提供一个可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等。
Nagios的主要功能特点:
Ø监视网络服务(SMTP,POP3,HTTP,NNTP,PING等)
Ø监视主机资源(进程,磁盘等)
Ø简单的插件设计可以轻松扩展Nagios的监视功能
Ø服务等监视的并发处理
Ø错误通知功能(通过email,pager,或其他用户自定义方法)
Ø可指定自定义的事件处理控制器
Ø可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等
二、工作原理
Nagios自身是不带任何功能的,Nagios监测服务只能是本地系统监测以及对远程主机的连通性监测。
为了使Nagios的监测服务器能够远程对被监测主机系统上的信息进行获取,比如远程系统上的进程数、磁盘空间使用状况、所运行的服务等等这些必须要登录远程主机系统上才能了解的信息的话,就必须要依靠NRPE或nsclient这个核心扩展插件程序,NRPE作为中间的代理程序,扮演着一手接受着Nagios监测服务器发来的请求,另一手在远程主机系统上获取指定的信息的中间人角色。
,要实现监控功能,我们必须安装插件(plugins),以及nrpe。
2.1监控windows
1.windows设置
1)安装nsclient,然后在cmd命令台执行以下命令
nsclient++/install
2)修改nsclient的nse.ini配置文件
[modules]#去掉注释符号”;”除了CheckWMI.dll和RemoteConfiguration.dll
FileLogger.dll
CheckSystem.dll
CheckDisk.dll
NSClientListener.dll
[Settings]
allowd_host=192.168.2.2#为nagios服务的IP
[NSClient]
port=12489#去掉注释就可以了!
3)启动nsclient服务并确认端口是否打开
netstat-an|more
TCP0.0.0.0:
124890.0.0.0:
0LISTENING
2.linux设置
接下来我们开始配置nagios服务器里面的内容,因为nagios是模块化调用,先到配置文件打开windows相关模块。
vi/usr/local/nagios/etc/nagios.cfg
#Definitionsformonitoringthelocal(Linux)host
cfg_file=/usr/local/nagios/etc/objects/localhost.cfg
#DefinitionsformonitoringaWindowsmachine
cfg_file=/usr/local/nagios/etc/objects/windows.cfg#去掉这句话的注释
打开模块后配置windows.cfg
vi/usr/local/nagios/etc/objects/windows.cfg
definehost{
usewindows-server
host_namewinserver#被监控主机名
aliasMyWindowsServer
address192.168.0.8;被监控的windows地址
#把下面的host_name都改成winserver
defineservice{
usegeneric-service
host_namewinserver
service_descriptionCPULoad
check_commandcheck_nt!
CPULOAD!
-l5,80,90#监控CPU使用
}
defineservice{
usegeneric-service
host_namewinserver
service_descriptionMemoryUsage
check_commandcheck_nt!
MEMUSE!
-w80-c90#监控内存
打开windows模块,设置windows.cfg中相关被监控主机与监控内容后nagios服务器就配置完了,下面重启nagios。
2.2监控linux
Linux客户端安装了nrpe和nagios-plugins
1.修改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设置监控内容
vi/usr/local/nagios/etc/objects/mylinux.cfg
definehost{
uselinux-server
host_nameIM#被监控主机名
aliasIM#别名
address192.168.2.29#被监控主机IP地址
}
defineservice{
usegeneric-service
host_nameIM
service_descriptioncheck-load
check_commandcheck_nrpe!
check_load
}
三、监控与报警
3.1nagios监控网页
对于一个网站来说,外部用户能够看到就是该网站的页面。
网站页面能否被正常访问,以及显示是否正常势必会成为网站整体水平最直接的外在表现。
那么,如何才能在第一时间检测到网页是否正常,并且给相应的技术人员发出报警来及时解决问题,而不是等接到用户抱怨的电话后才在慌忙中仓促的解决问题呢?
解决这个问题的关键就是要在第一时间发现问题,发现那些不能显示的网页或是显示不正常的网页,并及时发出报警。
当然我们可以通过人工的方法去监测,但对于一些大型的、复杂的网站来说就不是很合适了,我们可以使用监控软件来解决这个问题。
我所使用的就是Nagios软件,它提供的插件(Plugins)中有相应的命令可以完成对网页的监控。
通过check_http的帮助我们可以清楚的了解到该命令可以为我们做什么,以及如何去做。
选项虽然很多,其实常被用到的却只有几项,而且很多选项是有默认值的一般无需设置。
下面就我们需要用到的几个选项做一个简要的说明。
选项说明
Ø-H,--hostname=ADDRESS主机名或域名
Ø-I,--IP-address=ADDRESSserver的IP地址,用于在不能DNS的情况下
Ø-p,--port=INTEGER端口号,默认80
Ø-u,--url=PATHurl,默认是/
Ø-w,--warning=DOUBLEwarning状态的响应时间,单位是秒
Ø-c,--critical=DOUBLEcritical状态的响应时间,单位是秒
Ø-t,--timeout=INTEGER连接超时时间,默认10秒
3.1.1监控测试
[root@localhostlibexec]#./check_http–H192.168.2.252-u/index.htm
HTTPOKHTTP/1.1200OK-755bytesin0.003seconds|time=0.002561s;;;0.000000size=755B;;;0
可以看出该网页是正常的,如果网页地址不对或显示有错误也会有相应的反馈信息。
3.1.2具体配置
通过Nagios监控网页一般有两种方式,一种是直接通过Nagios监控主机配置监控服务监视网页;另一种是在某一安装了NRPE的客户端主机上配置监控命令,通过NRPE监控网页情况,再将结果传回给Nagios监控主机。
通过一个装有NRPE的客户端作为桥梁的方式可以使主机更加安全,减轻Nagios主机的负担,同时可以避免在Nagios主机上配置DNS等不必要的麻烦。
(主要一种针对windows,一种针对linux)。
1)Nsclient方式
nsclient较易实现,只需要在Nagios的配置文件里添加一个服务即可。
配置内容如下
修改/etc/objects/commands.cfg,增加如下内容。
#''check_http''checkwebpagedefinecommand{command_namecheck_webpagecommand_line$USER1$/check_http$ARG1$}
修改被监控主机的.cfg文件,如下内容
definehost{
usewindows-server
host_nameweb
aliasweb
address192.168.2.252
}
definecommand{
usewindows-server
host_nameweb
command_namecheck_http
command_line$USER1$/check_http-H192.168.2.252-u/index.htm
}
2)NRPE方式
nrpe监控复杂一些,需要修改两台主机的配置文件。
修改NRPE的配置文件,增加如下内容。
#checkwebpagecommand[check_webpage]=/usr/local/nagios//libexec/check_http-H192.168.2.252/index.htm
修改Nagios配置文件,增加如下内容。
#thecheck_apacheontheremotehost.defineservice{usegeneric-servicehost_namehostnameservice_descriptionwebpagecheck_commandcheck_nrpe!
check_webpage}
3.2使用nagios监控windows基本性能
3.2.1监控CPU
查看check_nt帮助
[root@localhostlibexec]#./check_nt-h
Usage:
check_nt-Hhost-vvariable[-pport][-wwarning][-ccritical][-lparams][-dSHOWALL][-ttimeout]
#监控CPU写法
CPULOAD=
AverageCPUloadonlastxminutes.
Requesta-lparameterwiththefollowingsyntax:
-l,,.#报警格式
shouldbelessthan24*60.
Thresholdsarepercentageandupto10requestscanbedoneinoneshot.
ie:
-l60,90,95,120,90,95
报警写法例:
#完整写法为
check_nt!
CPULOAD!
-l5,80,90
check_nt调用cpuload,5分钟内负载平均达到80%为warning,负载达到90%为critical
3.2.2监控磁盘使用
USEDDISKSPACE=
Sizeandpercentageofdiskuse.
Requesta-lparametercontainingthedriveletteronly.#-l后面接的参数用来指定盘符
Warningandcriticalthresholdscanbespecifiedwith-wand-c.
#如果要监控C盘,达到80%报警,达到90%为严重危险
check_nt!
USEDDISKSPACE!
-lc-w80-c90
3.2.3监控内存
MEMUSE=
Memoryuse.
Warningandcriticalthresholdscanbespecifiedwith-wand-c.
#监控Windows服务器的内存使用情况,如果超过了80%则是warning,如果超过90%则是critical
check_commandcheck_nt!
MEMUSE!
-w80-c90
3.2.4监控服务状态
SERVICESTATE=
Checkthestateofoneorseveralservices.
Requesta-lparameterswiththefollowingsyntax:
-l,,,...
Youcanspecify-dSHOWALLincaseyouwanttoseeworkingservices
inthereturnedstring.
#监控Windows服务器的W3SVC服务的状态,如果服务停止了,则是critical
check_commandcheck_nt!
SERVICESTATE!
-dSHOWALL-lW3SVC
3.2.5监控进程状态
PROCSTATE=
Checkifoneorseveralprocessarerunning.
SamesyntaxasSERVICESTATE.
#监控Windows服务器的Explorer.exe进程的状态,如果进程停止了,则是critical
check_commandcheck_nt!
PROCSTATE!
-dSHOWALL-lExplorer.exe
3.2.6监控windows服务器运行时间
UPTIME=
Gettheuptimeofthemachine.
Nospecificparameters.Nowarningorcriticalthreshold
check_commandcheck_nt!
UPTIME
3.3使用nagios监控linux基本性能
3.3.1监控CPU
[root@localhostlibexec]#./check_load--h
Usage:
check_load[-r]-wWLOAD1,WLOAD5,WLOAD15-cCLOAD1,CLOAD5,CLOAD15
Options:
-h,--help
Printdetailedhelpscreen
-V,--version
Printversioninformation
-w,--warning=WLOAD1,WLOAD5,WLOAD15
ExitwithWARNINGstatusifloadaverageexceedsWLOADn
-c,--critical=CLOAD1,CLOAD5,CLOAD15
ExitwithCRITICALstatusifloadaverageexceedCLOADn
theloadaverageformatisthesameusedby"uptime"and"w"
-r,--percpu
DividetheloadaveragesbythenumberofCPUs(whenpossible)
#这个插件是用来检测系统当前的cpu负载,在unix里面负载的均值通常表示是1分钟,5分钟,15分钟内平均有多少进程处于等待状态.
check_load-w15,10,5-c30,25,20
#上面命令表示,当1分钟多于15个进程等待,5分钟多于10个,15分钟多于5个则为warning状态;当1分钟多于30个进程等待,5分钟多于25个,15分钟多于20个则为critical状态
1)修改nagios主机上被监控主机的配置文件
definehost{
uselinux-server
host_nameIM#被监控主机名
aliasIM#别名
address192.168.2.29#被监控主机IP地址
}
defineservice{
usegeneric-service
host_nameIM
service_descriptioncheck-load
check_commandcheck_nrpe!
check_load
}
2)修改被监控主机上nrpe配置文件
command[check_load]=/usr/local/nagios/libexec/check_load-w15,10,5-c30,25,20
#当1分钟多于15个进程等待,5分钟多于10个,15分钟多于5个则为warning状态;当1分钟多于30个进程等待,5分钟多于25个,15分钟多于20个则为critical状态
3.3.2监控登录用户
[root@localhostlibexec]#./check_users--h
Usage:
check_users-w-c
#监控服务器的用户登录情况,如果超过了5个用户则是warning,如果超过10个用户则是critical
check_user-w5-c10
1)修改nagios主机上被监控主机的配置文件
defineservice{
usegeneric-service
host_nameIM
service_descriptioncheck-users
check_commandcheck_nrpe!
check_users
}
2)修改被监控主机上nrpe配置文件
command[check_users]=/usr/local/nagios/libexec/check_users-w5-c10
#监控服务器的用户登录情况,如果超过了5个用户则是warning,如果超过10个用户则是critical
3.3.3监控磁盘分区使用
[root@localhostlibexec]#./check_disk--h
Usage:
check_disk-wlimit-climit{-ppath|-xdevice}
格式:
check_disk-w低限%-c低限%-p磁盘设备文件或则分区文件的绝对路径
Options:
选项
-w,--warning=PERCENT%
设定告警通知百分比数,空间低于该百分比则发出告警通知。
-c,--critical=PERCENT%
设定严重告警通知百分比数,空间低于该百分比则发出严重告警通知。
-p,--path=PATH,--partition=PARTITION
指定磁盘设备文件或则分区文件的绝对路径。
#如果要监控根目录,达到20%报警,达到10%为严重危险
check_disk-w20%-c10%-p/dev/hda1
1)修改nagios主机上被监控主机的配置文件
defineservice{
usegeneric-service
host_nameIM
service_descriptioncheck-disk
check_commandcheck_nrpe!
check_hda1
}
2)修改被监控主机上nrpe配置文件
command[check_hda1]=/usr/local/nagios/libexec/check_disk-w80%-c90%-p/dev/hda1
#监控根目录,达到80%报警,达到90%为严重危险
3.3.4监控交换分区
[root@localhostlibexec]#./check_swap--h
Usage:
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
设定严重告警通知剩余字节数,剩余字节低于该值则发出严重告警通知,只可整数。
-c,--critical=PERCENT%%
设定严重告警通知百分比数,剩余空间低于该百分比则发出严重告警通知,双百分号。
#交换分区的剩余空间达到20%则警告,达到10%则严重警告。
check_swap-w20%-c10%
1)修改nagios主机上被监控主机的配置文件
defineservice{
usegeneric-service
host_nameIM
service_descriptioncheck-swap
check_commandcheck_nrpe!
check_swap
}
2)修改被监控主机上nrpe配置文件
command[check_swap]=/usr/local/nagios/libexec/check_swap-w80%-c50%
#交换分区的剩余空间达到80%则警告,达到50%则严重警告。
3.3.5监控系统总进程
[root@localhostlibexec]#./check_procs--h
Usage:
check_procs-w-c[-mmetric][-sstate][-pppid]
[-uuser][-rrss][-zvsz][-P%cpu][-aargument-array]
[-Ccomman