nagios 安装配置 详解

张映 发表于 2012-04-20

分类目录: 服务器相关

标签:, , , , , ,

我之前用过cacti,munin这二种服务器监测工具,下面我将详细讲解一下nagios的安装配置过程,nagios安装比较简单,但是配置是比较复杂,这篇文章只是安装配置的第一篇。都放到一篇博客里面写,文章会过长。

一,cacti,munin,nagios的比较

cacti安装比较麻烦,配置也比较复杂,不过插件还是比较多的。web界面做的比较美观。有一点我不喜欢用它,就是它用到mysql数据库,数据库这一块本来就是网站性能的瓶颈所在,测控工具还要数据库,这是我所不能接受的。想了解cacti请参考linux cacti 服务器监控 安装配置

munin是我目前为止最喜欢的一种服务器监控工具,安装配置简单,不光是单服务器,还是多服务器。还有它不要用mysql数据库。唯一要的就是web服务。想了解munin,请参考linux munin 服务器监控 安装配置

nagios是我准备要用的监控工具,它不要mysql支持,它可以提供服务器警告功能,例如当服务器down机,它会发邮件通知,或者是短消息通知,这一点就比较好了。如果管理的服务器太多,就不要整天盯着监控看了。就是配置起来比较麻烦一点。发邮件是要邮件服务器支持的,请参考前几天写的postfix安装配置。

二,安装nagios及所要的安装包

[root@localhost etc]# yum install nagios-plugin nagios nrpe fcgi-devel fcgi nagios-plugins-all

fcgiwrap下载地址 http://github.com/gnosek/fcgiwrap/tarball/master

[root@localhost download]# tar zxvf 你下载的版本.tar.gz
[root@localhost download]# cd gnosek-fcgiwrap-1328862/
[root@localhost gnosek-fcgiwrap-1328862]# autoreconf -i
[root@localhost gnosek-fcgiwrap-1328862]# ./configure
[root@localhost gnosek-fcgiwrap-1328862]# make
gcc -std=gnu99 -Wall -Wextra -Werror -pedantic -O2 -g3 fcgiwrap.c -o fcgiwrap -lfcgi
[root@localhost gnosek-fcgiwrap-1328862]# cp fcgiwrap /usr/local/bin/

autoreconf -i 一下,因为里面是没有configure的,./configure的时候不用加参数的。如果./configure报以下错误configure: error: FastCGI library is missing,那是缺少了fcgi-devel这个包的。

在这里说明一下,

1,nagios-plugin这只是一个插件的外壳,里面并没有插件。

2,nagios这是服务端要装的软件

3,nrpe这是监控端要装的软件

4,nagios-plugins-all这是nagios的所有插件,你也可以选择性的装,yum list nagios-plugins*

5,fcgi-devel,fcgi,fcgiwrap是用来运行.cgi程序的

6,web服务相关的软件我都装过了,所以在上面我就没有列出来了,我用的是nginx+php-cgi+spawn-fcgi,如果是没有装过的话,这些是要装一下的。我博客里面有,可以搜一下。

三,nagios,nrpe的配置文件

[root@localhost nagios]# tree
.
├── cgi.cfg                          //控制cgi访问的配置文件
├── conf.d
│   └── internet.cfg                 //监控其他服务器的例子配置文件
├── nagios.cfg                       //nagios的主配置文件
├── nrpe.cfg                         //被监控服务器的配置文件
├── objects
│   ├── commands.cfg                 //命令定义配置文件,里面定义的命令可以被其他文件引用
│   ├── contacts.cfg                 //定义联系人和联系人组的配置文件,用于发邮件和短信
│   ├── localhost.cfg                //本机监控的配置文件
│   ├── printer.cfg                  //监控打印机的配置文件
│   ├── switch.cfg                   //监控路由器,交换机的配置文件
│   ├── templates.cfg                //配置的模块文件
│   ├── timeperiods.cfg              //定义nagios时间段的配置文件
│   └── windows.cfg                  //定义监控windows的的配置文件
├── passwd                           //用户访问控制文件
└── private
    └── resource.cfg                 //定义$USERx$的配置文件

这些配置文件我都没有改变的,这篇只是简单的安装和配置

三,启动nagios,nrpe,并查看

//启动
/etc/init.d/nrpe start
spawn-fcgi -f /usr/local/bin/fcgiwrap -a 127.0.0.1 -p 9001 -F 3 -P /var/run/fastcgi-c.pid
/etc/init.d/nagios start

//查看
[root@localhost private]# netstat -tpnl |grep nagios
[root@localhost private]# ps -e|grep nagios
 2939 ?        00:00:02 nagios
[root@localhost private]# ps -e|grep nrpe
 2924 ?        00:00:00 nrpe
[root@localhost private]# ps -e|grep fcgiwrap
 2927 ?        00:00:00 fcgiwrap
 2928 ?        00:00:00 fcgiwrap
 2929 ?        00:00:00 fcgiwrap

四,配置nginx

[root@localhost conf.d]# pwd
/etc/nginx/conf.d
[root@localhost conf.d]# cat nagios.conf
#
# A virtual host using mix of IP-, name-, and port-based configuration
#
server
{
        listen       10001;
        server_name  www.test.com;
        index  index.php;
        root   /usr/share/nagios/html;

        location ~ .*\.(php|php5)?$
        {
        fastcgi_pass  127.0.0.1:9000;
        fastcgi_index index.php;
        include fastcgi.conf;
        }

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
        rewrite ^/nagios/images/(.*) /images/$1 break;   //注释1
        expires     30d;
        }

        location ~ .*\.(js|css)?$
        {
        rewrite ^/nagios/stylesheets/(.*) /stylesheets/$1 break; //注释1
        expires     1h;
        }

        location ~ .*\.cgi$ {
        root /usr/lib64/nagios/cgi-bin;     //注释2
        rewrite ^/nagios/cgi-bin/(.*)\.cgi /$1.cgi break; //注释3
        fastcgi_pass   127.0.0.1:9001;
        fastcgi_index index.cgi;
        include fastcgi.conf;
        }
}

注释1,在这里为什么我要加一个重写呢,加载css和图片的路径不对

<LINK REL='stylesheet' TYPE='text/css' HREF='/nagios/stylesheets/common.css'>
<LINK REL='stylesheet' TYPE='text/css' HREF='/nagios/stylesheets/notifications.css'>

web目录 /usr/share/nagios/html;的根目录下面根本就没有nagios这个目录,css样式和图片根本加载不上,页面很丑。

注释2,/usr/lib64/nagios/cgi-bin这个目录是cgi的可执行文件

[root@localhost conf.d]# ls /usr/lib64/nagios/cgi-bin/
avail.cgi  config.cgi   histogram.cgi  notifications.cgi  showlog.cgi  statusmap.cgi  statuswrl.cgi  tac.cgi
cmd.cgi    extinfo.cgi  history.cgi    outages.cgi        status.cgi   statuswml.cgi  summary.cgi    trends.cgi

注释3,当是cgi文件时,root路径是发生改变的,并且上面我是把这个root直接指定到cgi-bin这个目录,在/usr/share/nagios/html/config.inc.php过个文件里面,有下面这个配置,又是带目录的,所以我又加了一个重写,

$cfg['cgi_base_url']='/nagios/cgi-bin';

nginx配置好后,重新加载一下配置/etc/init.d/nginx reload

这样我们就可以能过url来访问了 http://www.test.com:10000,看下图

nagios 安装成功

nagios 安装成功



转载请注明
作者:海底苍鹰
地址:http://blog.51yip.com/server/1389.html