linux下有有两大监控神器,就是众所周知的cacti以及nagios,cacti偏向于数据收集并利用rrdtool绘制图像,而nagios则偏向于报警,下面开始介绍nagios,以后会依次提到cacti
Nagios检测机制
检测方式
主动检测:监控端主动执行检测脚本获取数据
被动检测:被监控端执行检测脚本发送给检测端
检测对象
主机检测:对网络设备的检测,比如交换机、路由器、服务器、pc机
服务检测:检测主机提供的服务,例如web、数据库、mail等
状态类型
主机状态:UP、DOWN、UNREACHABLE
服务状态:OK、WARNING、CRITICAL、UNKNOWN
这里插一句话,插件检测的状态是OK、WARNING、CRITICAL、UNKNOWN,但是细心的你可能发现主机状态是三种,这就需要转换,nagios本身就可以转换,下面是对照表
插件返回结果 |
主机状态 |
OK |
UP |
WARNING |
UP或者DOWN* |
UNKNOWN |
DOWN |
CRITICAL |
DOWN |
Nagios的工作主要靠插件来完成,这是它的一个很大的优点,用户可以随意的编写自己想要监控的对象,插件的编写也是很简单的,插件的编写下一篇博客介绍。
Nagios本身依赖关系比较少,一般系统最小化安装也可以安装,但是想要在web前端看到实时的监控结果就需要安装web服务,nagios显示在网站前端的页面是php的,所以要安装php,另外还要加载cgi模块。
下面开始安装,首先安装lamp,这里就不多进行介绍了,这方面的资料都是很多的。
首先介绍一下要安装软件的作用,nagios为服务器监控端的服务,nagios-plugin则是插件,里面包含了很多的plugin,如果要监控本机则不用安装nrpe,nrpe主要功能是监控远程服务器,这个软件在监控端是不需要启动服务的,但是要安装,被监控端则开启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-plugins,nrpe远程连接需要用到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监控系统就搭建好了,由于篇幅的问题,所以写的比较少,详细的配置在接下来的博文中会依次写出。