CentOS6.8搭建nagios与配置

版权声明:转载请标明出处! https://blog.csdn.net/weixin_38642130/article/details/84988470

什么是nagios?

nagios是一款用于系统和网络监控的应用程序,它可以在你设定的条件下对主机和服务进行监控,在状态变差和变好的是会给出警告信息。

nagios只能监控自己所在的服务器,而对其他主机的监控则无能为力。毕竟没得到被监控主机的适当权限是不可能得到这些信息的。为了解决这个问题,我们就可以通过NRPE来完成对远程主机本地信息的监控。

安装依赖

预装环境
$ yum install -y gcc glibc
把nagios源码包上传到/usr/local/software目录下,获取源码包方式文章结尾有说明。
安装其他组件
$ yum install -y glibc-common gd gd-devel xinetd openssl-devel zip unzip perl
安装apache和php
apache和php不是 安装nagios所必须的,但是nagios提供了web监控界面 ,通过web监控界面,可以清晰的看到被监控主机,资源的运行状态,因此,安装一个web服务是很必要的。
$ yum install -y httpd php
$ service httpd start

安装nagios服务端

新建用户
$ useradd nagios
$ mkdir /usr/local/nagios
$ chown -R nagios:nagios /usr/local/nagios
安装nagios核心
$ cd /usr/local/software
$ tar -zxvf nagios-4.4.2.tar.gz
$ cd nagios-4.4.2
$ ./configure \
--prefix=/usr/local/nagios \
--sysconfdir=/usr/local/nagios/etc \
--localstatedir=/usr/local/nagios/var/ \
--with-opsys=linux \
--with-dist-type=systemd \
--with-inetd-type=systemd \
--enable-event-broker \
--enable-debugging \
--with-webdir=/usr/local/nagios/share \
--with-pluginsdir=/usr/local/nagios/plugins \
--with-brokersdir=/usr/local/nagios/brokers \
--with-cgibindir=/usr/local/nagios/cgibin \
--with-logdir=/usr/local/nagios/log \
--with-initdir=/usr/local/nagios/init.d \
--with-checkresult-dir=/usr/local/nagios/var/spool/checkresults \
--with-mail=/bin/mail \
--with-httpd-conf=/etc/httpd/conf.d/ \
--with-temp-dir=/tmp \
--with-iobroker=epoll
$ make all	#全部编译
$ make install	#安装nagios的基本功能 
$ make install-init	#安装nagios的启动脚本 
$ make install-commandmode	#安装nagios的命令模式 
$ make install-config	#安装nagios配置模板 
$ make install-webconf	#安装naigios的http配置文件
创建管理员
$ htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin	#输入两次密码
安装插件
$ tar -zxvf nagios-plugins-2.1.2.tar.gz
$ cd nagios-plugins-2.1.2
$ ./configure --prefix=/usr/local/nagios/ && make && make install && echo `say ok`
安装nrpe
$ cd /usr/local/software
$ tar -zxvf nrpe-3.2.1.tar.gz
$ cd nrpe-3.2.1
$ ./configure --enable-command-args --prefix=/usr/local/nagios/ 
$ make all
$ make install-plugin
启动nagios
$ service httpd restart
$ ln -s /usr/local/nagios/init.d/nagios /etc/init.d/nagios
$ /etc/init.d/nagios start

现在可以访问链接192.168.0.68/nagios,看到如下页面,安装成功!
在这里插入图片描述
在这里插入图片描述

安装nagios客户端

添加用户
$$ useradd nagion
$$ mkdir /usr/local/nrpe
$$ chown -R nagios:nagios nrpe
安装nrpe
相比服务端,客户端多几个步骤
$$ cd /usr/loal
$$ tar -zxvf nrpe-3.2.1.tar.gz 
$$ cd nrpe-3.2.1
$$ ./configure --enable-command-args --prefix=/usr/local/nagios/ 
可能报错:checking for SSL headers... configure: error: Cannot find ssl headers
解决方法: yum -y install openssl openssl-devel
$$ make all
$$ make install-plugin
$$ make install-daemon
$$ make install-daemon-config	
修改配置文件
$$ vi /usr/local/nagios/etc/nrpe.cfg
allowed_hosts=127.0.0.1,192.168.0.68		#添加允许访问主机
启动nrpe
$$ /usr/local/nrpe/bin/nrpe -c /usr/local/nrpe/etc/nrpe.cfg -d
如需重启nrpe,kill掉进程重新启动即可。

配置nagios

了解每个配置文件的作用

nagios的所有配置文件都放在nagios安装路径的etc目录下。

templates.cfg

nagios主要用于监控主机资源以及服务,在nagios配置中称为对象,为了不必重复定义一些监控对象,Nagios引入了一个模板配置文件,将一些共性的属性定义成模板,以便于多次引用。这就是templates.cfg的作用。

resource.cfg

resource.cfg是nagios的变量定义文件,文件内容只有一行:USER1=/usr/local/nagios/libexec其中,变量USER1指定了安装nagios插件的路径,如果把插件安装在了其它路径,只需在这里进行修改即可。需要注意的是,变量必须先定义,然后才能在其它配置文件中进行引用。

commands.cfg

此文件默认是存在的,无需修改即可使用,当然如果有新的命令需要加入时,在此文件进行添加即可。这里并未列出文件的所有内容,仅仅介绍了配置中用到的一些命令。

hosts.cfg

文件此文件默认不存在,需要手动创建,hosts.cfg主要用来指定被监控的主机地址以及相关属性信息。

services.cfg

文件此文件默认也不存在,需要手动创建,services.cfg文件主要用于定义监控的服务和主机资源,例如监控http服务、ftp服务、主机磁盘空间、主机系统负载等等。

contacts.cfg

contacts.cfg是一个定义联系人和联系人组的配置文件,当监控的主机或者服务出现故障,nagios会通过指定的通知方式(邮件或者短信)将信息发给这里指定的联系人或者使用者。

timeperiods.cfg

文件此文件只要用于定义监控的时间段,下面是一个配置好的实例。

cgi.cfg

此文件用来控制相关cgi脚本,如果想在nagios的web监控界面执行cgi脚本,例如重启nagios进程、关闭nagios通知、停止nagios主机检测等,这时就需要配置cgi.cfg文件了。由于nagios的web监控界面验证用户为ixdba,所以只需在cgi.cfg文件中添加此用户的执行权限就可以了。

理解Nagios宏及其工作机制

Nagios配置非常灵活,继承和引用是一大特征,另一个重要特征就是可以在命令行的定义里使用宏,通过定义宏,nagios可以灵活的获取主机、服务和其它对象的信息。宏的工作机制在执行命令之前,nagios将对命令里的每个宏替换成它们应当取得的值。这种宏替换发生在Nagios执行各种类型的宏时候。例如主机和服务的检测、通知、事件处理等。宏的分类:默认宏、按需而成的宏、用户自定制宏等。默认宏:主机IP地址宏当在命令定义中使用主机或服务宏时,宏将要执行所用的值指向主机或服务所带有值。看下面这个例子,假定在check_ping命令定义里使用了一个主机对象,例如这样:

define host{
	host_name  ixdba
	address 192.168.12.246
	check_command    check_ping...
}

define command{
	command_name  check_ping 
	command_line   /usr/local/nagios/libexec/check_ping -H HOSTADDRESS -w 100.0,90% -c 200.0,60%
}

那么执行这个主机检测命令时展开并最终执行的将是这样的:
/usr/local/nagios/libexec/check_ping -H 192.168.12.246 -w 100.0,90% -c 200.0,60%

命令参数宏同样你可以向命令传递参数,这样可以保证命令定义更具通用性。参数指定在对象(象主机或服务)中定义,用一个“!”来分隔,例如这样:

define service{
	host_name linuxbox
	service_description  PING
	check_command    check_ping!200.0,80%!400.0,40%...
}

在上例中,服务的检测命令中含有两个参数(请参考ARGn宏),而ARG1宏将是"200.0,80%",同时ARG2将是"400.0,40%"(都不带引号)。假定使用之前的主机定义并这样来定义你的check_ping命令:

define command{
	command_name  check_ping
	command_line   /usr/local/nagios/libexec/check_ping -H HOSTADDRESS -w ARG1 -c ARG2
}

那么对于服务的检测命令最终将是这样子的:
/usr/local/nagios/libexec/check_ping -H 192.168.12.246 -w 200.0,80% -c 400.0,40%

nagios的更详细的配置可参考https://www.cnblogs.com/reynold-lei/p/3143523.html,想要完全的掌握nagios,还需要在实际的操作中熟练运用才能有更深刻的理解!

nagios排错

nagios是通过nrpe组件进行通信,所以需要在被监控端nrpe配置文件中允许监控端访问。

在被监控端修改nrpe配置文件项,如下所示
$$ vim /usr/local/nagios/etc/nrpe.cfg
allowed_hosts=127.0.0.1,192.168.0.69

如果监控mysql,则需要在被监控端添加用户允许nagios进行访问。

$$ mysql -uroot -proot
> GRANT PROCESS, FILE, SUPER, REPLICATION CLIENT ON *.* TO 'nagios'@'192.168.0.69' IDENTIFIED BY 'nagios';
> flush privileges;

nagios的插件是需要perl进行支持,如果perl缺少相关的模块,则nagios插件会允许失败。安装相关的perl模块即可。

参考链接:
1、Nagios监控系统部署(源码)
http://www.cnblogs.com/liwanliangblog/p/9266772.html
2、Nagios部署与配置
https://www.cnblogs.com/bixiaoyu/p/6915763.html
3、Nagios3.2.3安装及配置
http://blog.chinaunix.net/uid-26558059-id-3211222.html
4、NRPE安装及配置
https://www.cnblogs.com/ilanni/p/4366232.html
5、深入了解nagios的各配置文件
https://www.cnblogs.com/reynold-lei/p/3143523.html

源码包下载链接:https://download.csdn.net/download/weixin_38642130/10806894

关注微信公众号“微圈网络”,回复关键字nagios,即可获取源码包!

猜你喜欢

转载自blog.csdn.net/weixin_38642130/article/details/84988470