nagios 安装配置 详解

我之前用过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/\ break;   //注释1  
        expires     30d;  
        }  
  
        location ~ .*/.(js|css)?$  
        {  
        rewrite ^/nagios/stylesheets/(.*) /stylesheets/\ break; //注释1  
        expires     1h;  
        }  
  
        location ~ .*/.cgi$ {  
        root /usr/lib64/nagios/cgi-bin;     //注释2  
        rewrite ^/nagios/cgi-bin/(.*)/.cgi /\.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

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/55185.html

(0)
上一篇 2021年8月7日
下一篇 2021年8月7日

相关推荐

发表回复

登录后才能评论