Nagios添加监控主机

Nagios 主要用于监控一台或者多台本地主机及远程的各种信息,包括本机资源及对外的服务等。默认的Nagios 配置没有任何监控内容,仅是一些模板文件。若要让Nagios 提供服务,就必须修改配置文件,增加要监控的主机和服务,下面将详细介绍。

文件名、目录名和用途
cgi.cfg:控制CGI访问的配置文件
nagios.cfg:Nagios 主配置文件
resource.cfg:变量定义文件,在些文件中定义变量,以便由其他配置文件引用,如 U S E R 1 USER1 USER1
objects:objects 是一个目录,在此目录下有很多配置文件模板,用于定义Nagios 对象
objects/commands.cfg:命令定义配置文件,其中定义的命令可以被其他配置文件引用
objects/contacts.cfg:定义联系人和联系人组的配置文件
objects/localhost.cfg:定义监控本地主机的配置文件
objects/printer.cfg:定义监控打印机的一个配置文件模板,默认没有启用此文件
objects/switch.cfg:定义监控路由器的一个配置文件模板,默认没有启用此文件
objects/templates.cfg:定义主机和服务的一个模板配置文件,可以在其他配置文件中引用
objects/timeperiods.cfg:定义Nagios 监控时间段的配置文件
objects/windows.cfg:监控Windows 主机的一个配置文件模板,默认没有启用此文件

为了能更清楚的说明问题,同时也为了维护方便,建议将nagios各个定义对象创建独立的配置文件:

· 创建hosts.cfg文件来定义主机和主机组以及服务

· 用默认的contacts.cfg文件来定义联系人和联系人组

· 用默认的commands.cfg文件来定义命令

· 用默认的timeperiods.cfg来定义监控时间段

· 用默认的templates.cfg文件作为资源引用文件

说明: nrpe

NRPE 总共由两部分组成:

·check_nrpe 插件,位于监控主机上

·NRPE daemon,运行在远程的Linux主机上(通常就是被监控机)

整个的监控过程如下:

当Nagios 需要监控某个远程Linux 主机的服务或者资源情况时:

1.Nagios 会运行check_nrpe 这个插件,告诉它要检查什么;

2.check_nrpe 插件会连接到远程的NRPE daemon,所用的方式是SSL;

3.NRPE daemon 会运行相应的Nagios 插件来执行检查;

4.NRPE daemon 将检查的结果返回给check_nrpe 插件,插件将其递交给nagios做处理。

5.注意:NRPE daemon 需要Nagios 插件安装在远程的Linux主机上,否则,daemon不能做任何的监控。

监控服务器IP:192.168.1.55
被监控端IP:192.168.1.53

被监控端安装NRPE
NRPE依赖于nagios-plugins,因此,需要先安装nagios-plugins

nagios-plugins-2.0.3.tar.gz

nrpe-2.15.tar.gz

安装Plugins
useradd -s /sbin/nologin nagios 创建nagios用户,不允许登陆系统

解压
cd /usr/local/src 进入源码包目录

tar -zxf nagios-plugins-2.0.3.tar.gz 解压plugins

cd nagios-plugins-2.0.3 进入plugins目录

配置编译
./configure–prefix=/usr/local/nagios \

–with-nagios-user=nagios \

–with-nagios-group=nagios \

–with-mysql=/usr/local/mysql

根据服务器mysql安装路径进行调整更改,如不监控mysql可不加此选项

编译安装
make 编译

make install 编译安装

验证安装
/usr/local/nagios/libexex/ 下是否有很多 check文件

有成功,无就重新安装

安装npre
yum -y install xinetd 将nrpe作为xinetd下独立服务运行

解压
cd /usr/local/src 进入源码包目录

tar -zxf nrpe-2.15.tar.gz 解压nrpe

cd nrpe-2.15 进入nrpe目录

配置编译
./configure --prefix=/usr/local/nagios \

–with-nrpe-user=nagios \

–with-nrpe-group=nagios \

–with-nagios-user=nagios \

–with-nagios-group=nagios \

–enable-command-args \

–enable-ssl

编译安装
make all

make install-plugin 安装check_nrpe 这个插件

make install-daemon 安装deamon

make install-daemon-config 安装配置文件

make install-xinetd 将NRPE deamon作为xinetd下一个服务运行xinetd就必须要先安装

编辑配置文件
vim /etc/services

nrpe 5666/tcp # NRPE 最后添加一行

vim /etc/xinetd.d/nrpe

only_from 后面添加监控服务器地址

#default: on

#description: NRPE (Nagios Remote Plugin Executor)

service nrpe

{

flags = REUSE

socket_type = stream

port = 5666

wait = no

user = nagios

group = nagios

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.55 #监控服务器地址

}

启动nrpe
service xinetd start 启动xinetd

netstat -an | grep 5666

tcp 00 :::5666 ::? LISTEN

5666端口监听正常,nrpe服务正常启动

注意:-c 后面接的监控命令必须是nrpe.cfg 文件中定义的。也就是NRPE daemon只运行nrpe.cfg中所定义的命令。

cd /usr/local/nagios/etc

cat nrpe.cfg |grep -v “^#”|grep -v “^$”

log_facility=daemon

pid_file=/var/run/nrpe.pid

server_port=5666

nrpe_user=nagios

nrpe_group=nagios

allowed_hosts=127.0.0.1

dont_blame_nrpe=0

allow_bash_command_substitution=0

debug=0

command_timeout=60

connection_timeout=300

command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10

command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20

command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/hda1

command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z

command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200

[]部分是命令名,也就是check_nrpe 的-c 参数可以接的内容,等号 “=” 后面是实际执行的插件程序(这与commands.cfg 中定义命令的形式十分相似,只不过是写在了一行)。也就是说check_users 就是等号后面/usr/local/nagios/libexec/check_users -w 5 -c 10 的简称。

常见问题分析
错误:SSL headers… configure: error: Cannot find ssl headers

解决:yum -y install openssl-devel

监控服务器安装NRPE
监控端已经安装plugins 直接安装nrpe即可

解压
cd /usr/local/src 进入源码包目录

tar -zxf nrpe-2.15.tar.gz 解压nrpe

cd nrpe-2.15 进入nrpe目录

配置编译
./configure --prefix=/usr/local/nagios \

–with-nrpe-user=nagios \

–with-nrpe-group=nagios \

–with-nagios-user=nagios \

–with-nagios-group=nagios \

–enable-command-args \

–enable-ssl

编译安装
make all

make install-plugin 安装check_nrpe 这个插件

测试NRPE
在监控服务器上我们已经装好了nrpe,测试监控服务器使用check_nrpe 与被监控机运行的nrpe daemon之间的通信。

/usr/local/nagios/libexec/check_nrpe -H 192.168.1.53 #被监控主机IP

NRPE v2.15 正确返回了NRPE的版本信息,说明一切正常。

监控
vim /usr/local/nagios/etc/objects/commands.cfg

末尾定义一行nrpe

define command{

command_name check_nrpe

command_line $USER1 $/check_nrpe -H $HOSTADDRESS $ -c $ARG1 $

}

command_name 定义命令名称为check_nrpe,在linux-services.cfg中要使用这个名称.

command_line #这是定义实际运行的插件程序.

写发完全按照check_nrpe这个命令的用法,不知道用法的就用check_nrpe –h查

-c 后面带的$ ARG1$ 参数是传给nrpe daemon 执行的检测命令,之前说过了它必须是nrpe.cfg 中所定义的那5条命令中的其中一条。在linux-services.cfg 中使用check_nrpe 的时候要用 “!” 带上这个参数。

定义Linux主机的监控
vim /usr/local/nagios/etc/objects/linux-services.cfg

define host{

use linux-server

host_name Nagios-Linux

address 192.168.1.53 #被监控主机IP

}

define service{

use generic-service

host_name Nagios-Linux

service_description Current Load

check_command check_nrpe!check_load

}

define service{

use generic-service

host_name Nagios-Linux

service_description Check Disk sda1

check_command check_nrpe!check_sda1

}

define service{

use generic-service

host_name Nagios-Linux

service_description Total Processes

check_command check_nrpe!check_total_procs

}

define service{

use generic-service

host_name Nagios-Linux

service_description Current Users

check_command check_nrpe!check_users

}

define service{

use generic-service

host_name Nagios-Linux

service_description Check Zombie Procs

check_command check_nrpe!check_zombie_procs

}
define service{

use generic-service

host_name Nagios-Linux

service_description Check Swap

check_command check_nrpe!check_swap

}
define service{

use generic-service

host_name Nagios-Linux

service_description MySQL service

check_command check_nrpe!check_mysql

}
define service{

use generic-service

host_name Nagios-Linux

service_description HTTP

check_command check_nrpe!check_http

}

vim /usr/local/nagios/etc/ nagios.cfg

添加如下一行

cfg_file=/usr/local/nagios/etc/objects/linux-services.cfg

将linux-services.cfg包含到监控列表

自定义监控服务
还有一个任务是要监控Nagios-Linux 的Mysql情况。但是在被监控端nrpe.cfg 中默认没有定义这个监控功能的命令。怎么办?手动在nrpe.cfg 中添加,也就是自定义NRPE命令。
在被监控机上增加check_swap 命令的定义

vi /usr/local/nagios/etc/nrpe.cfg

增加下面这一行

command[check_mysql]=/usr/local/nagios/libexec/check_mysql -H 192.168.1.53 -P 3306 -u nagios -p 123456

nagios用户必须具有远程登陆权限

修改了配置文件,当然要重启。

define service{

use generic-service

host_nameNagios-Linux

service_description MySQL service

check_commandcheck_nrpe!check_mysql

    }

在监控机(Nagios-Server)上增加这个check_mysql 监控项目

同理,Nagios-Linux 上我还开启了http 服务,需要监控一下,按照上面的做法,在被监控机(Nagios-Linux)上增加check_http 命令的定义

vi /usr/local/nagios/etc/nrpe.cfg

增加下面这一行

command[check_http]=/usr/local/nagios/libexec/check_http -I 127.0.0.1

在监控机(Nagios-Server)上增加check_http 监控项目

define service{

usegeneric-service

host_nameNagios-Linux

service_description HTTP

check_commandcheck_nrpe!check_http

    }

所有的配置文件已经修改好了,现在重启Nagios。

重启nagios
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg 检测nagios配置文件

Total Warnings: 0

Total Errors: 0

service nagios restart 重启nagios

打开浏览器:http://ip/nagios 查看监控,发现被监控主机已被添加

转载自:https://www.cnblogs.com/xuliangwei/p/6337927.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值