Nagios监控Linux系统资源使用情况 -- Nagios介绍篇

应用场景:测试环境以及运行时环境都需要实时监控程序来监控系统(Linux Redhat)的健康状态,监控需求主要集中在:CPU,Memory,Disk IO,Network使用情况 。

Nagios的基本思想就是nagios server 获取被监控节点(monitored server)的相关信息,通过CGI(Web GUI)或者邮件等方式展示给管理员。

以前我有介绍过如何通过jmeter+jmeter-plugins来监控系统资源使用情况,有了Nagios之后我们就放弃了使用jmeter,因为Nagios使用更完善。

先来看看Nagios addons里面提供的监控unlx/linux的方法(摘自http://nagios.sourceforge.net/docs/3_0/addons.html)

Nagios监控Linux系统资源使用情况 -- Nagios介绍篇_第1张图片

信息的获取主要分为主动拿,被动得到,其中主动拿分直接去被监控节点取或者中间数据库节点取。

如果是个个被监控节点直接去取,机器一多,nagios所在的系统CPU可能会扛不住,所以我们系统在测试环境中中使用了被动获取NSCA的方式,以后可能会转到NDOUtils方式,通过数据库实现监控端和被监控端的分离。


NSCA具体工作过程:

1. 数据生成: 被监控端程序定时收集数据并发送到Nagios服务端,Nagios服务端的NSCA进程收到数据,数据放到指定文件(nagios.cfg和nsca.cfg中指定)。

2. 数据处理: Nagios实时处理指定文件,将数据存到queue,同时Nagios会定期检查queue,对数据做最终处理,例如:发送alert邮件,记录日志等。


Nagios中数据的显示不是非常友好,不过它有一个非常牛逼的插件pnp4nagios,pnp4nagios可以把数据用图形很好的显示出来,Pnp4nagios有几种模式,目前比较流行的是bulk+npcd模式,synchronized模式是有数据就绘图(The synchronous mode will work very good up to about 1.000 services in a 5 minute interval),bulk模式是集中时间点绘图(71 lines were processed in 0.06 seconds. This will be the data volume of about 2000 services und processing using a 10 second interval. It means we blocked nagios for exactly 0.06 seconds.)。Bulk+npcd使用单独的npcd进程处理数据绘图,不会影响Nagios正常功能。


监控系统的最终模式:Nagios + NSCA + Pnp4nagios(bulk&npcd)

NSCA负责收集数据,Nagios把收集的数据按照Pnp4nagios要求的格式写到spool文件,每隔15分钟把文件移动到npcd处理的spool文件夹,npcd调用process_perfdata.pl处理spool文件夹中的文件,最后存到rrd里,在Nagios监控页面加入pnp4nagios的web访问url,就可以查看图形化监控数据了。

Nagios监控Linux系统资源使用情况 -- Nagios介绍篇_第2张图片s



接下来说说我们Nagios的安装,

Nagios Server

一台liunx server(CentOS),安装以下安装包 的的对应版本

1. 基本nagios以及Web GUI安装包

httpd-*.tar.gz,php-*.tar.gz, nagios-*.tar.gz, nagios-plugins-*.tar.gz

安装步骤

2. 图形化性能数据安装包

pnp4nagios-*.tar.gz

安装步骤

3.  Linux 系统监控插件

主动方式:nrpe-*.tar.gz,被动方式:nsca-*.tar.gz
nsca安装步骤

Note: inetd或者xinetd没有使用在我们的系统中


Nagios monitored Clients

对于NSCA模式,我们使用了Python脚本+Cron Job(crontab)的方式来定时按格式发送数据到Nagios Server,所以被监控设备上面只要安装了Python就可以了。


第二篇: Nagios Server端配置

第三篇: Nagios配置篇 -- 被监控端

你可能感兴趣的:(计算机,Linux)