14.5.1 Nagios服务器端监控基础介绍
您可以在百度里搜索“跟老男孩学Linux运维:Web集群实战 艾草文学(www.321553.xyz)”查找最新章节!
14.5.1 Nagios服务器端监控基础介绍
1.Nagios服务器端目录结构
Nagios服务器端安装后的目录结构如下:
[root@nagios-server ~]# ls -l /usr/local/nagios/ total 32drwxrwxr-x 2 nagios nagios 4096 Jun 27 17:48 bin drwxrwxr-x 3nagios nagios 4096 Jun 27 17:48 etc drwxr-xr-x 2 root root 4096 Jun27 17:34 include drwxrwxr-x 2 nagios nagios 4096 Jun 27 17:48libexec drwxr-xr-x 5 root root 4096 Jun 27 17:34 perl drwxrwxr-x 2nagios nagios 4096 Jun 27 08:59 sbin drwxrwxr-x 11 nagios nagios4096 Jun 27 17:34 share drwxrwxr-x 5 nagios nagios 4096 Jun 2721:44 var
为方便大家查看和理解,下面采用表格的形式来说明,见表14-3。
表14-3 Nagios服务器端目录说明
所有客户端本地服务的监控都是通过执行libexec目录下的插件来实现的,当然,如果开启了snmp,Nagios服务器端也可主动抓取。
2.Nagios服务器端核心配置文件
Nagios主配置文件为nagios.cfg,默认在/usr/local/nagios/etc目录下,/usr/local/nagios/etc目录下有个objects(类似Apache的extra)目录,里面放的是主配置文件nagios.cfg包含的其他Nagios配置文件。查看命令如下:
[root@nagiosserver etc]# tree |-- cgi.cfg |-- nagios.cfg |--nrpe.cfg |-- objects | |-- commands.cfg | |-- contacts.cfg | |--localhost.cfg | |-- printer.cfg | |-- switch.cfg | |--templates.cfg | |-- timeperiods.cfg | `-- windows.cfg `--resource.cfg [root@nagiosserver etc]# tail -10 resource.cfg # Sets$USER1$ to be the path to the plugins$USER1$=/usr/local/nagios/libexec # Sets $USER2$ to be the path toevent handlers #$USER2$=/usr/local/nagios/libexec/eventhandlers #Store some usernames and passwords (hidden from the CGIs)#$USER3$=someuser #$USER4$=somepassword [root@nagios-servernagios]# tree etc/objects/ etc/objects/ |-- commands.cfg |--contacts.cfg |-- localhost.cfg |-- printer.cfg |-- switch.cfg |--templates.cfg |-- timeperiods.cfg `-- windows.cfg 0 directories, 8files
在nagios.cfg中既可以指定单独包含一个cfg文件,也可以指定包含一个目录,即该目录下所有的cfg文件都会包含进来。
为了让目录结构看起来更清晰,以及批量部署服务的需要,我们把主配置文件包含的配置文件修改为表14-4所示的形式。
表14-4 Nagios配置文件说明
3.配置主配置文件nagios.cfg
首先,在nagios.cfg文件中找到cfg_file部分,进行如下设置:
[root@nagios-server ~]# vi /usr/local/nagios/etc/nagios.cfg +34#<==增加如下主机和服务的配置文件cfg_file=/usr/local/nagios/etc/objects/hosts.cfgcfg_file=/usr/local/nagios/etc/objects/services.cfgcfg_dir=/usr/local/nagios/etc/objects/services#这是为备用增加的一个service目录,初学者可以忽略此行,使用目录的优点很多,在目录下的文件只要符合*.cfg就可以被Nagios加载。使用脚本批量部署时可非常方便地随机命名配置文件
然后注释掉如下一行:
# Definitions for monitoring the local (Linux) host#cfg_file=/usr/local/nagios/etc/objects/localhost.cfg#<==localhost.cfg这个配置为监控Nagios服务器端本地服务的配置文件,注释掉它,然后统一监控
操作完毕,保存nagios.cfg。接着,根据已有数据生成hosts.cfg主机文件,命令集如下:
cd /usr/local/nagios/etc/objects/ head -51 localhost.cfg>hosts.cfg chown nagios.nagios/usr/local/nagios/etc/objects/hosts.cfg
操作过程如下:
[root@nagios-server ~]# cd /usr/local/nagios/etc/objects/[root@nagios-server objects]# head -51 localhost.cfg >hosts.cfg[root@nagios-server objects]# chown nagios.nagios/usr/local/nagios/etc/objects/hosts.cfg
然后生成新的空的services.cfg服务文件,命令集如下:
touch services.cfg #<==暂时留空 chown -R nagios.nagiosservices.cfg
操作过程如下:
[root@nagios-server objects]# touch services.cfg[root@nagios-server objects]# chown -R nagios.nagiosservices.cfg
最后,生成服务的配置文件目录,所有放到此目录下的配置(*.cfg)都会自动被包含到主配置文件中生效。命令集如下:
mkdir services chown -R nagios.nagios services
操作过程如下:
[root@nagios-server objects]# mkdir services [root@nagios-serverobjects]# chown -R nagios.nagios services
现在,检查生成结果:
[root@nagios-server objects]# ls -lrt total 56 -rw-rw-r-- 1nagios nagios 10812 Jun 27 09:01 templates.cfg -rw-rw-r-- 1 nagiosnagios 4019 Jun 27 09:01 windows.cfg -rw-rw-r-- 1 nagios nagios3208 Jun 27 09:01 timeperiods.cfg -rw-rw-r-- 1 nagios nagios 3124Jun 27 09:01 printer.cfg -rw-rw-r-- 1 nagios nagios 5403 Jun 2709:01 localhost.cfg -rw-rw-r-- 1 nagios nagios 7716 Jun 27 09:01commands.cfg -rw-rw-r-- 1 nagios nagios 3293 Jun 27 09:01switch.cfg -rw-rw-r-- 1 nagios nagios 2165 Jun 27 09:21contacts.cfg -rw-r--r-- 1 nagios nagios 1870 Jun 27 21:53 hosts.cfg-rw-r--r-- 1 nagios nagios 0 Jun 27 21:54 services.cfg drwxr-xr-x 2nagios nagios 4096 Jun 27 21:55 services
4.Nagios监控模式定义及监控模式选择
根据监控的行为,将Nagios的监控分为主动监控和被动监控(即nrpe半被动和nsca全被动),nsca全被动暂不详述,下面先来看看什么是主动监控和半被动监控。
·主动监控:把像URL监控一样由Nagios服务器端发出请求的主动探测监控方式,定义为主动监控方式,也就是说不需要在客户端安装任何插件。当然,主动监控模式也可以配置成被动模式。
·(半)被动监控:由Nagios服务器端通过nrpe插件定时去连接client的nrpe服务获取信息,并发回到Nagios服务器端的监控称之为半被动监控,这类监控通常是针对本地资源的,比如负载、内存、硬盘、虚拟内存、磁盘I/O、温度、风扇转速等,而非系统对外提供的服务,只要安装了类似nrpe的插件方式的监控,都认为是半被动监控。
如何选择主动监控模式和(半)被动监控模式?
1)对于本地的资源性能,一般用被动监控模式(NRPE)。例如,对负载、内存、硬盘、虚拟内存、磁盘I/O、温度、风扇等的监控(我们也可以通过snmp实现监控部分系统资源)。
2)对于Web服务、数据库服务这种能对外提供服务的,一般用主动模式,例如:监控httpd、sshd、mysqld、rsyncd等服务。
主动模式和被动模式是相对的,并且是可以互相转换的,即主动模式的服务,可以改成被动模式的,被动模式的服务有时也可以改为主动模式的。
提示:本书下文把nrpe的监控统称为被动监控模式。 跟老男孩学Linux运维:Web集群实战