IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    nagios 安装配置 详解

    铁匠发表于 2017-02-20 06:31:24
    love 0

    我之前用过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='<a href="view-source:http://tg.6fan.com:10001/nagios/stylesheets/common.css">/nagios/stylesheets/common.css</a>'>  
    <LINK REL='stylesheet' TYPE='text/css' HREF='<a href="view-source:http://tg.6fan.com:10001/nagios/stylesheets/notifications.css">/nagios/stylesheets/notifications.css</a>'>

    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 安装成功

     



沪ICP备19023445号-2号
友情链接