linux下有有两大监控神器,就是众所周知的cacti以及nagios,cacti偏向于数据收集并利用rrdtool绘制图像,而nagios则偏向于报警,下面开始介绍nagios,以后会依次提到cacti

Nagios检测机制

检测方式

主动检测:监控端主动执行检测脚本获取数据

被动检测:被监控端执行检测脚本发送给检测端

检测对象

主机检测:对网络设备的检测,比如交换机、路由器、服务器、pc

服务检测:检测主机提供的服务,例如web、数据库、mail

状态类型

主机状态:UPDOWNUNREACHABLE

服务状态:OKWARNINGCRITICALUNKNOWN

这里插一句话,插件检测的状态是OKWARNINGCRITICALUNKNOWN,但是细心的你可能发现主机状态是三种,这就需要转换,nagios本身就可以转换,下面是对照表

插件返回结果

主机状态

OK

UP

WARNING

UP或者DOWN*

UNKNOWN

DOWN

CRITICAL

DOWN


Nagios的工作主要靠插件来完成,这是它的一个很大的优点,用户可以随意的编写自己想要监控的对象,插件的编写也是很简单的,插件的编写下一篇博客介绍。


Nagios本身依赖关系比较少,一般系统最小化安装也可以安装,但是想要在web前端看到实时的监控结果就需要安装web服务,nagios显示在网站前端的页面是php的,所以要安装php,另外还要加载cgi模块。


下面开始安装,首先安装lamp,这里就不多进行介绍了,这方面的资料都是很多的。

首先介绍一下要安装软件的作用,nagios为服务器监控端的服务,nagios-plugin则是插件,里面包含了很多的plugin,如果要监控本机则不用安装nrpenrpe主要功能是监控远程服务器,这个软件在监控端是不需要启动服务的,但是要安装,被监控端则开启nrpe服务,默认监听5666端口。

先下载软件

wget http://optimate.dl.sourceforge.net/project/nagios/nagios-3.x/nagios-3.5.0/nagios-3.5.0.tar.gz

wget https://www.nagios-plugins.org/download/nagios-plugins-1.4.1.tar.gz

wget http://optimate.dl.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz

下面开始安装

添加nagios用户,用户组

groupadd nagcmd

useradd nagios

usermod -a -G nagcmd nagios

usermod -a -G nagcmd daemon


开始编译

./configure --prefix=/etc/nagios \

--with-nagios-user=nagios \

--with-nagios-group=nagios \

--enable-event-broker

make all

make install

make install-init(安装启动脚本)

make install-commandmode

make install-config

make install-webconf(编译安装的httpd会出现错误,新建一个目录就可以了)

安装nagios-plugins

./configure --prefix=/etc/nagios \

--with-nagios-user=nagios \

--with-nagios-group=nagios \

--with-mysql=/opt/mysql

make && make install

下面开始安装nrpe

首先确定开发环境

yum grouplist

确定有Development tools和DevelopmentLibraries

如果没有就安装

yum groupinstall -y "Developmenttools" "Development Libraries"

开始安装nrpe

./configure --with-nagios-user=nagios \

--with-nagios-group=nagios \

--with-nrpe-user=nagios \

--with-nrpe-group=nagios \

--enable-command-args \

--enable-ssl

make all

make install-plugin

服务器端不需要开始nrpe服务

以上配置服务器端就可以简单的工作了

检测配置文件的是否正确

/etc/nagios/bin/nagios -v /etc/nagios/etc/nagios.cfg

启动服务

service nagios start


下面开始配置被监控端

nrpe依赖于nagios-pluginsnrpe远程连接需要用到ssl,所以要安装openssl,用yum安装就可以

首先安装nagios-plugins

./configure --with-nagios-user=nagios \

--with-nagios-group=nagios \

make && make install

下面开始安装nrpe

./configure--with-nagios-user=nagios \

--with-nagios-group=nagios \

--with-nrpe-user=nagios \

--with-nrpe-group=nagios \

--enable-command-args \

--enable-ssl

make all

make install-plugin

make install-daemon(安装守护进程)

make install-daemon-config(安装守护进程配置文件)

下面开始配置nrpe

修改nrpe.cfg文件

找到allowed_hosts添加你的服务器的IP,这里需要注意一点双网卡的问题,最好把2块网卡的ip都写上,还有监控端的IP

启动nrpe

/usr/local/nagios/bin/nrpe -c/usr/local/nagios/etc/nrpe.cfg –d

下面就可以在服务器端定义主机,定义命令开始监控

定义命令

define command{

command_namecheck_nrpe

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

}

定义主机

define host {

uselinux-server(模板,可以自己定义)

host_name定义主机名

alias定义别名

addressyour ip address

}

定义服务

define service {

uselinux-service(模板,可以自己定义)

host_name你定义的主机名

service_descriptionPING(描述)

check_commandcheck_nrpe!check_ping

}

想要监控什么就在客户端上定义命令,在服务器上填写检测内容就可以了,需要注意的是想要通过nrpe监控远程主机。被监控端的Nrpe的配置文件中必须定义command,如果有防火墙,需要开启nrpe监听的端口。

这样简单的一个nagios监控系统就搭建好了,由于篇幅的问题,所以写的比较少,详细的配置在接下来的博文中会依次写出。