监控利器Nagios之二:Nagios的细致介绍和监控外部服务器的私有信息mysql
Nagios的监控对象的定义和对被监控设备的动做命令是分开的。一个是主程序包,一个是插件包。先来讲说nagios主程序nagios-plugins插件和nrpe软件的用处,linux
Nagios主程序:ios
Nagios主程序提供一个的只是一个监控平台,真正用做工做的并非它,而是他的插件。在Nagios 安装完毕后,默认的配置文件在/usr/local/nagios/etc目录下。里面定义了nagios能调用的命令、对打印机和交换机的监控;以及定义的模板和报警的联系。sql
一般,当你要准备监控某个服务的时候,都是在nagios的主程序中定义的。Localhost.cfg配置文件是,nagios系统的默认监控定义配置文件,里面的内容都是nagios的做者写的一些定义的模板,然而,实际工做中,是不会再这里定义的,都是额外编写配置文件,区分开来的,做用是为了便于管理。一般都会在object目录下编写hosts.cfg和services.cfg配置文件,用来定义主机和服务的信息的。vim
Nagios-plugins插件包:windows
Nagios-plugins插件就是用来提供对被监控主机的动做命令,默认的有check_tcp check_load等。通常在监控外部主机服务的时候会有特色的监控动做命令,而默认的存放动做命令目录中是没有这些动做命令的脚本文件的。这就须要咱们去定义,只有定义以后才能使用的。这些插件会被nagios用在什么地方呢?nagios有不少个cfg文件,用来定义各式各样的信息,其中hosts.cfg和services.cfg(通常是这两个,也多是其余定义主机和服务的配置文件)是用来定义主机和服务的信息的。这些插件就被使用在这里。bash
Nrpe软件包:服务器
Nrpe软件包是插件的扩展,在监控外部主机的私有信息的时候,客户端须要根据服务器端发来的请求来检索本地私有信息,而检索本地的私有信息就须要各类的监控动做命令,这些动做命令自己是没有的,所以就须要安装它了,一般nrpe插件包之用做于监控私有信息的,例如:监控外部主机的硬盘信息。jsp
Nagios的安装目录详解tcp
Nagios默认安装在usr/local/nagios/。安装完以后会在其目录下生成etc、bin、sbin、share、var 这五个目录。
Nagios 各个目录用途说明以下:
ls /usr/local/nagios |
|
目录 |
做用 |
bin |
Nagios 可执行程序所在目录 |
etc |
Nagios 配置文件所在目录 |
sbin |
Nagios CGI 文件所在目录,也就是执行外部命令所需文件所在的目录 |
share |
Nagios网页文件所在的目录 |
libexec |
Nagios 外部插件所在目录 |
1、etc目录
tree /usr/local/nagios/etc/ ├── cgi.cfg ├── htpasswd.users ├── nagios.cfg ├── nagiosgraph.cfg ├── objects │ ├── commands.cfg │ ├── contacts.cfg │ ├── hosts.cfg │ ├── localhost.cfg │ ├── printer.cfg │ ├── service.cfg │ ├── switch.cfg │ ├── templates.cfg │ ├── timeperiods.cfg │ └── windows.cfg └── resource.cfg
在etc存放了nagios.cfg和objects目录,objects目录中就是存放nagios定义的配置文件目录,里面存放了包括定义主配置文件,变量定义文件,命令定义文件,还有定义主机和服务等文件。
nagios.cfg文件
nagios.cfg默认的路径为/usr/local/nagios/etc/nagios.cfg,是nagios的核心配置文件,全部的对象配置文件都必须在这个文件中进行定义才能发挥其做用,这里只需将对象配置文件在Nagios.cfg文件中进行引用便可。
ls /usr/local/nagios/etc/objects/ |
|
目录 |
做用 |
cgi.cfg |
控制CGI访问的配置文件 |
nagios.cfg |
Nagios 主配置文件 |
resource.cfg |
变量定义文件,又称为资源文件,在些文件中定义变量,以便由其余配置文件引用, |
objects |
objects 是一个目录,在此目录下有不少配置文件模板,用于定义Nagios 对象 |
objects/commands.cfg |
命令定义配置文件,其中定义的命令能够被其余配置文件引用 |
objects/contacts.cfg |
定义联系人和联系人组的配置文件 |
objects/localhost.cfg |
定义监控本地主机的配置文件 |
objects/templates.cfg |
定义主机和服务的一个模板配置文件,能够在其余配置文件中引用 |
objects/timeperiods.cfg |
定义Nagios 监控时间段的配置文件 |
objects/windows.cfg |
监控Windows 主机的一个配置文件模板,默认没有启用此文件 |
解释:
在nagios的配置过程当中涉及到的几个定义有:主机、主机组,服务、服务组,联系人、联系人组,监控时间,监控命令等,从这些定义能够看出,nagios各个配置文件之间是互为关联,彼此引用的。成功配置出一台nagios监控系统,必需要弄清楚每一个配置文件之间依赖与被依赖的关系,
看到上面的目录,定义服务的目录态过于凌乱,所以通常咱们不用他的本地配置文件,都会自行定义文件,这样可以更清楚的说明问题,同时也为了维护方便,一般将nagios各个定义对象建立独立的配置文件,以下:
建立hosts.cfg文件来定义主机和主机组 |
建立services.cfg文件来定义服 |
用默认的contacts.cfg文件来定义联系人和联系人组 |
用默认的commands.cfg文件来定义命 |
用默认的timeperiods.cfg来定义监控时间段 |
用默认的templates.cfg文件做为资源引用文件 |
重要的文件认识:
(1)hosts.cfg文件
hosts.cfg主要用来指定被监控的主机地址以及相关属性信息
(2)services.cfg文件
services.cfg文件主要用于定义监控的服务和主机资源,例如监控http服务、ftp服务、主机磁盘空间、主机系统负载等等。Nagios-Server 和Nagios-Windows 相关服务已在相应的配置文件中定义,因此这里只须要定义Nagios-Linux 相关服务便可,这里只定义一个检测是否存活的服务来验证配置文件的正确性,其余服务的定义将在后面讲到。
(3)commands.cfg文件
commands.cfg目录主要用于定义命令,在nagios-plugins插件包中定义一些基础的动做命令,而有些命令是须要咱们去定义的。全部命令的使用都必须在这个目录下线定义好,下可使用,
2、libexec
tree /usr/local/nagios/libexec/ ├── check_apt ├── check_pop -> check_tcp ├── process_perfdata.pl ....................... ├── utils.pm └── utils.sh
libexec目录下面存放的各类动做命令,在Nagios-plugins插件包没有安装以前,此目录下仅有两个动做命令,当插件包安装以后,此目录中就会生成插件包定义出的动做命令。全部的动做命令都是在上文中提到的commands.cfg文件中定义好的,当从新定义一个命令以后,都须要在libexec目录下编译一个同名的脚本文件。只有脚本文件编译好,此命令才能生效。
Nrpe软件包生成扩展插件也是在libexec目录下。此目录下的内容解释以下:
监控对象 |
监控阙值 |
|
主 机 资 源 |
主机存活:check_ping |
-w 3000.0,80% -c 5000.0,100% -p 5(3000毫秒响应时间内,丢包率超过80%报警告,5000毫秒响应时间内,丢包率超过100%报危急,一共发送5个包) |
登陆用户:check_user |
-w 5 -c 10(w为警告,c为危急) |
|
系统负载:check_load |
-w 15,10,5 -c 30,25,20(1分钟,5分钟,15分钟大于对应的等待进程数则警告或危急) |
|
磁盘占用率:check_disk |
-w 15,10,5 -c 30,25,20(1分钟,5分钟,15分钟大于对应的等待进程数则警告或危急) |
|
脚本检测磁盘I/O:check_iostat |
-w 20% -c 10% -p /(根分区剩余空间为总大小的20%警告,10%危急,-p后是根分区) |
|
检测僵尸进程:check_zombie _procs |
-w 5 -c 10 -s Z(有5个僵尸进程报警告,10个报危急) |
|
检测总进程数:check_total_procs |
-w 150 -c 200(总进程到150个警告,200个报危急) |
|
脚本检测内存剩余:check_mem |
-w 90% -c 95%(内存空闲率90%以上报警告,95%以上报危急) |
|
检测交换分区使用率:check_swap |
-w 20% -c 10%(交换分区剩余空间为总大小的20%警告, 10%危急) |
|
应 用 服 务 的 流 量 监 控 |
监控服务端口:check_tcp |
-H localhost2 -p 80(主机与对应的端口号) |
监控页面响应时间:check_http |
-H localhost2 -u http:\/\/localhost2/test.jsp –w 5 –c 10(检查页面,超过5s报警告,超过10s报危急) |
|
脚本检测IP链接数:check_ips |
-w 200 –c 250(IP链接数超过200报警告,超过250报危急) |
|
监控server流量:Check_traffi |
-V 2c -C public -H localhost2 -I 2 -w 12,30 -c 15,35 -M –b(snmp版本,用户,主机,对应网卡,警告阀值,危急阀值) |
一:实验目标
一、监控外部服务器NFS,服务端当作客户端
二、监控外部服务器的MySQL服务
三、监控外部服务器httpd
四、监控外部服务器的私有信息
二:实验环境
VMare |
做用 |
主机名 |
Ip地址 |
安装的软件 |
RHEL-6.5 |
服务端 |
yu61 |
192.168.1.61 |
Nagios软件,nagios插件,nrpe,LAMP环境、NFS |
RHEL-6.5 |
客户端 |
yu62 |
192.168.1.62 |
nagios插件,nrpe、mysql-server、IO |
RHEL-6.5 |
客户端 |
yu63 |
192.168.1.63 |
nagios插件,nrpe、NFS、Http、 |
#全部服务器都须要关闭防火墙
三:实验步骤
实战:监控外部服务器私有信息
一、修改配置文件
[root@yu61 objects]# vim hosts.cfg ##末尾添加 define host{ use linux-server host_name IO63 alias IO服务 address 192.168.1.63 icon_p_w_picpath switch.gif statusmap_p_w_picpath switch.gd2 2d_coords 100,200 3d_coords 100,200,100 }
[root@yu61 objects]# cat service.cfg ##末尾添加 ###################check_server_IO-63############################# define service{ use local-service host_name IO63 service_description Root Partition check_command check_nrpe!check_sda2 } define service{ use local-service host_name IO63 service_description Total Processes check_command check_nrpe!check_total_procs } define service{ use local-service host_name IO63 service_description Current Load check_command check_nrpe!check_load }
二、检测配置和重启服务
[root@yu61 ~]# /etc/init.d/nagios checkconfig Total Warnings: 0 Total Errors: 0 [root@yu62 ~]# service httpd restart
三、测试查看主机和服务
四、生成nrpe.cfg
[root@yu63 nrpe-2.12]# make install-daemon-config [root@yu63 nrpe-2.12]# ls /usr/local/nagios/etc/nrpe.cfg /usr/local/nagios/etc/nrpe.cfg
五、安装xinetd服务管理nrpe
[root@yu63 nrpe-2.12]# rpm -ivh /mnt/Packages/xinetd-2.3.14-39.el6_4.x86_64.rpm [root@yu63 nrpe-2.12]# cat /etc/xinetd.d/nrpe service nrpe { server = /usr/local/nagios/bin/nrpe server_args = -c /usr/local/nagios/etc/nrpe.cfg --inetd log_on_failure += USERID disable = no only_from = 127.0.0.1 192.168.1.61 }
[root@yu63 nrpe-2.12]# vim /etc/services ##服务端口最后添加
[root@yu63 nrpe-2.12]# /etc/init.d/xinetd restart [root@yu63 nrpe-2.12]# netstat -antup |grep 5666 tcp 0 0 :::5666 :::* LISTEN 62841/xinetd
六、修改文件,指定监控标准
[root@yu63 nrpe-2.12]# vim /usr/local/nagios/etc/nrpe.cfg ##在204行添加一下内容 command[check_sda1]=/usr/local/nagios/libexec/check_disk-w 38% -c 35% -p /dev/sda1 command[check_sda2]=/usr/local/nagios/libexec/check_disk-w 42% -c 43% -p /dev/sda2 command[check_swap]=/usr/local/nagios/libexec/check_swap-w 20% -c 10% [root@yu61 objects]# /usr/local/nagios/libexec/check_nrpe -H 192.168.1.63 NRPE v2.12
七、检测配置和重启服务及测试
[root@yu61 ~]# /etc/init.d/nagios checkconfig Total Warnings: 0 Total Errors: 0 [root@yu62 ~]# service httpd restart
八、波动磁盘利用率查看效果
##当内存使用率达到测试值时,就会出现紧急状态
[root@yu63 nrpe-2.12]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 20G 4.8G 14G 26% / tmpfs 750M 224K 750M 1% /dev/shm /dev/sda1 4.9G 162M 4.5G 4% /boot /dev/sr0 3.6G 3.6G 0 100% /mnt [root@yu63 ~]# dd if=/dev/zero of=a.txt count=100 bs=40M [root@yu63 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 20G 6.3G 12G 35% / tmpfs 750M 224K 750M 1% /dev/shm /dev/sda1 4.9G 162M 4.5G 4% /boot /dev/sr0 3.6G 3.6G 0 100% /mnt
[root@yu63 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 20G 7.2G 12G 40% / tmpfs 750M 224K 750M 1% /dev/shm /dev/sda1 4.9G 162M 4.5G 4% /boot /dev/sr0 3.6G 3.6G 0 100% /mnt