• 云途科技成立于2010年 - 专注全球跨境电商服务器租赁托管!
  • 帮助中心

    您可以通过下方搜索框快速查找您想知道的问题

    nagios 安装配置 详解

      in  unix      Tags: 

    我之前用过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 安装成功



    • 外贸虚拟主机

      1GB硬盘

      2个独立站点

      1000M带宽

      不限制流量

      美国外贸专用虚拟主机,cPanel面板,每天远程备份.
      服务器配置:2*E5 32核,96GB 内存,4*2TB 硬盘 RAID10 阵列.

      ¥180/年

    • 美国/荷兰外贸VPS

      2核CPU

      1G内存

      30硬盘

      10M带宽

      美国/荷兰外贸云服务器,专注外贸服务器行业12年.
      服务器配置:2*E5 32核,96GB 内存,4*2TB 硬盘 RAID10 阵列.

      ¥99/月

    • 全球外贸服务器

      8核CPU

      32G内存

      1TB硬盘

      1000M带宽

      已部署数据中心:美国洛杉矶/亚特兰大、荷兰、加拿大、英国伦敦、德国、拉脱维亚、瑞典、爱沙尼亚
      自有机柜(全球九大数据中心),稳定在线率:99.9%

      ¥999/月 原价1380

    7*24小时 在线提交工单

    如果您的问题没有得到解决,推荐您在线提交工单,我们的客服人员会第一时间为您解决问题

    展开