监控利器Nagios之二:Nagios的细致介绍和监控外部服务器的私有信息

简介:

监控利器Nagios之二:Nagios的细致介绍和监控外部服务器的私有信息

 

Nagios的监控对象的定义和对被监控设备的动作命令是分开的。一个是主程序包,一个是插件包。先来说说nagios主程序nagios-plugins插件和nrpe软件的用处,

Nagios主程序:

Nagios主程序提供一个的只是一个监控平台,真正用作工作的并不是它,而是他的插件。在Nagios 安装完毕后,默认的配置文件在/usr/local/nagios/etc目录下。里面定义了nagios能调用的命令、对打印机和交换机的监控;以及定义的模板和报警的联系。

通常,当你要准备监控某个服务的时候,都是在nagios的主程序中定义的。Localhost.cfg配置文件是,nagios系统的默认监控定义配置文件,里面的内容都是nagios的作者写的一些定义的模板,然而,实际工作中,是不会再这里定义的,都是额外编写配置文件,区分开来的,作用是为了便于管理。通常都会在object目录下编写hosts.cfgservices.cfg配置文件,用来定义主机和服务的信息的。

Nagios-plugins插件包:

Nagios-plugins插件就是用来提供对被监控主机的动作命令,默认的有check_tcp check_load等。一般在监控外部主机服务的时候会有特点的监控动作命令,而默认的存放动作命令目录中是没有这些动作命令的脚本文件的。这就需要我们去定义,只有定义之后才能使用的。这些插件会被nagios用在什么地方呢?nagios有很多个cfg文件,用来定义各式各样的信息,其中hosts.cfgservices.cfg(一般是这两个,也可能是其他定义主机和服务的配置文件)是用来定义主机和服务的信息的。这些插件就被使用在这里。

Nrpe软件包:

Nrpe软件包是插件的扩展,在监控外部主机的私有信息的时候,客户端需要根据服务器端发来的请求来检索本地私有信息,而检索本地的私有信息就需要各种的监控动作命令,这些动作命令本身是没有的,因此就需要安装它了,通常nrpe插件包之用作于监控私有信息的,例如:监控外部主机的硬盘信息。

 

Nagios的安装目录详解

Nagios默认安装在usr/local/nagios/。安装完之后会在其目录下生成etcbinsbinsharevar 这五个目录

Nagios 各个目录用途说明如下:

ls /usr/local/nagios

目录

作用

bin

Nagios 可执行程序所在目录

etc

Nagios 配置文件所在目录

sbin 

Nagios CGI 文件所在目录,也就是执行外部命令所需文件所在的目录

share

Nagios网页文件所在的目录

libexec

Nagios 外部插件所在目录

 

1etc目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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.cfgobjects目录,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文件作为资源引用文件

 

重要的文件认识:

1hosts.cfg文件

hosts.cfg主要用来指定被监控的主机地址以及相关属性信息

2services.cfg文件

services.cfg文件主要用于定义监控的服务和主机资源,例如监控http服务、ftp服务、主机磁盘空间、主机系统负载等等。Nagios-Server Nagios-Windows 相关服务已在相应的配置文件中定义,所以这里只需要定义Nagios-Linux 相关服务即可,这里只定义一个检测是否存活的服务来验证配置文件的正确性,其他服务的定义将在后面讲到。

3commands.cfg文件

commands.cfg目录主要用于定义命令,在nagios-plugins插件包中定义一些基础的动作命令,而有些命令是需要我们去定义的。所有命令的使用都必须在这个目录下线定义好,下可以使用,

 

2libexec

1
2
3
4
5
6
7
  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/Ocheck_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版本,用户,主机,对应网卡,警告阀值,危急阀值)

 

 

一:实验目标

1、监控外部服务器NFS,服务端当做客户端

2、监控外部服务器的MySQL服务

3、监控外部服务器httpd

4、监控外部服务器的私有信息

二:实验环境

VMare

作用

主机名

Ip地址

安装的软件

RHEL-6.5

服务端

yu61

192.168.1.61

Nagios软件,nagios插件,nrpeLAMP环境、NFS

RHEL-6.5

客户端

yu62

192.168.1.62

nagios插件,nrpemysql-serverIO

RHEL-6.5

客户端

yu63

192.168.1.63

nagios插件,nrpeNFSHttp

 #所有服务器都需要关闭防火墙

 

三:实验步骤

 

实战:监控外部服务器私有信息

1、修改配置文件

1
2
3
4
5
6
7
8
9
10
11
[root@yu61 objects] # vim hosts.cfg  ##末尾添加
define host{
         use                     linux-server
         host_name               IO63
         alias                    IO服务
         address                 192.168.1.63
         icon_image              switch.gif
         statusmap_image         switch.gd2
         2d_coords               100,200
         3d_coords               100,200,100
         }


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[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
                 }


2、检测配置和重启服务

1
2
3
4
[root@yu61 ~] # /etc/init.d/nagios checkconfig 
Total Warnings: 0
Total Errors:   0
[root@yu62 ~] # service httpd restart


3、测试查看主机和服务

wKiom1lLI9XjA3StAABdwIQoJrg388.png

wKioL1lLI9WDMx3GAACySzw4iAs298.png

 

4、生成nrpe.cfg

1
2
3
[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


5、安装xinetd服务管理nrpe

1
2
3
4
5
6
7
8
9
10
[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   ##服务端口最后添加

wKioL1lLJAqgWslTAAAS8kcHUgk599.png 

1
2
3
[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


6、修改文件,指定监控标准

1
2
3
4
5
6
7
[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


7、检测配置和重启服务及测试

1
2
3
4
[root@yu61 ~] # /etc/init.d/nagios checkconfig 
Total Warnings: 0
Total Errors:   0
[root@yu62 ~] # service httpd restart


 wKiom1lLJDShsGtyAACJIR9eJtg377.png 

8、波动磁盘利用率查看效果

##当内存使用率达到测试值时,就会出现紧急状态

1
2
3
4
5
6
7
8
9
10
11
12
13
[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


1
2
3
4
5
6
[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









本文转自 于学康 51CTO博客,原文链接:http://blog.51cto.com/blxueyuan/1940782,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
弹性计算 监控 数据可视化
ecs自定义监控
ecs自定义监控
24 1
|
1月前
|
Arthas 弹性计算 运维
阿里云ECS监控服务
阿里云ECS监控服务
403 2
|
29天前
|
弹性计算 运维 监控
ECS资源监控
ECS资源监控涉及CPU、内存、磁盘I/O、网络流量、系统负载和进程的关键指标,通过云服务商控制台、监控服务、API与SDK、运维工具进行实时监控和告警设置。支持历史数据查询、事件监控,以及使用Windows资源监视器和Linux系统工具进行操作系统层面监控。全面监控确保ECS实例稳定运行、资源有效利用和问题及时处理。如需特定云服务商的指导,请询问。
30 3
|
14天前
|
Linux
centos 查看服务器信息 版本cpu
centos 查看服务器信息 版本cpu
11 0
|
1月前
|
弹性计算 运维 监控
ecs监控与评估
阿里云ECS提供全面的监控与评估解决方案,包括云监控服务(实时资源指标、告警)、ECS实例详情页(运行状态查看)、资源负载评估(综合性能得分)、ECS Insight(多维度分析)、报警配置、流量管理优化(负载均衡、CDN)。这些工具帮助用户有效管理资源、识别潜在风险、优化性能,确保云服务稳定高效。
17 1
|
1月前
|
存储 数据挖掘 Windows
服务器数据恢复—异常断电导致raid信息丢失的数据恢复案例
由于机房多次断电导致一台服务器中raid阵列信息丢失。该阵列中存放的是文档,上层安装的是Windows server操作系统,没有配置ups。 因为服务器异常断电重启后,raid阵列可以正常使用,所以未引起管理员的注意。后续出现的多次异常断电导致raid报错,服务器无法找到存储设备,进入raid管理模块进行任何操作都会导致操作系统死机。管理员尝试多次重启服务器,故障依旧。
|
1月前
|
监控 JavaScript 安全
监控内网电脑软件设计与实现:基于Node.js的服务器端架构分析
在当今信息技术高度发达的时代,监控内网电脑的需求日益增长。企业需要确保网络安全,个人用户也需要监控家庭网络以保护隐私和安全。本文将介绍一种基于Node.js的服务器端架构,用于设计和实现监控内网电脑软件。
99 0
|
1月前
|
弹性计算 监控 网络协议
ECS操作系统监控
ECS操作系统监控
16 2
|
29天前
|
Ubuntu JavaScript 关系型数据库
在阿里云Ubuntu 20.04服务器中搭建一个 Ghost 博客
在阿里云Ubuntu 20.04服务器上部署Ghost博客的步骤包括创建新用户、安装Nginx、MySQL和Node.js 18.x。首先,通过`adduser`命令创建非root用户,然后安装Nginx和MySQL。接着,设置Node.js环境,下载Nodesource GPG密钥并安装Node.js 18.x。之后,使用`npm`安装Ghost-CLI,创建Ghost安装目录并进行安装。配置过程中需提供博客URL、数据库连接信息等。最后,测试访问前台首页和后台管理页面。确保DNS设置正确,并根据提示完成Ghost博客的配置。
在阿里云Ubuntu 20.04服务器中搭建一个 Ghost 博客
|
1月前
|
存储 弹性计算 数据可视化
要将ECS中的文件直接传输到阿里云网盘与相册(
【2月更文挑战第31天】要将ECS中的文件直接传输到阿里云网盘与相册(
415 4