`
avery_leo
  • 浏览: 382337 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

监控利器nagios

阅读更多
我的Nagios的艰辛.....网络监控之神(一)
本贴原创,转载请注明出处
神仙的blog  www.6xuan.com
或者extmail
或者哎哟妈妈,哎哟妈妈游戏频道
网上的资料太多太多了!看的我头晕眼花!nagios真的很强大,对于监控的windows/linux/switch/printer都能很好的表示,并且可以对其中的服务进行监控。nagios最强大的就是报警功能,email/msn/飞信/网络电话。开源就是好啊!!就好像我配置mail邮件系统一般!!

过程是艰辛的, 结果是美好的!

我就他妈半个技术的命,!人家都下班了,一个人在公司搞到11点多!!!
现在才慢慢上手!!边做边临时小记!!
2008-7-17
终于废墟中拔出一条缝!临时小记!

第一。先看基本的nagios安装!
下载 nagios-3.0.3.tar.gz -----------------------主程序
nagios-plugins-1.4.12.tar.gz------------------插件
nagios-nrpe_2.8.1.orig.tar.gz -------------监控Linux需要
nsclient++0.3.3 ------------------监控windows需要

官方文档
http://nagios-cn.sourceforge.net ... ml#monitoring-linux

英文的!

开始安装
1。
yum install gcc

yum install glibc glibc-commonyum install gd gd-devel
2。自己编译安装apache2.0。安装哪里随便,(我这里是自己编译的httpd,么有用系统自带的)

3。安装nagios-3.0.3.tar.gz
=======================
/usr/sbin/useradd nagios
passwd nagios 输入密码
/usr/sbin/groupadd nagcmd
/usr/sbin/usermod -G nagcmd nagios
/usr/sbin/usermod -G nagcmd apache
=====================
tar xzf nagios-3.0.3.tar.gz
=======================
cd nagios-3.0.3
=======================
./configure --with-command-group=nagcmd (不用跟参数,默认安装在/usr/local/nagios)
================
make all
==================
make install
================
make install-init
=======================
make install-config
=====================
make install-commandmode
===============================
vi /usr/local/nagios/etc/objects/contacts.cfg
更改email地址nagiosadmin的联系人定义信息中的EMail信息为你的EMail信息以接收报警内容。
=================================
make install-webconf
=====================
/usr/local/apache/bin/htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
输入密码(这一步很重要)
========================================================

2。译并安装Nagios插件
nagios-plugins-1.4.12.tar.gz

tar xzf nagios-plugins-1.4.12.tar.gz
cd nagios-plugins-1.4.12
============================
./configure --with-nagios-user=nagios --with-nagios-group=nagios
make
make install
============================
chkconfig --add nagios
chkconfig nagios on
=====================

验证Nagios的样例配置文件

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
================================
如果没有报错,可以启动Nagios服务
service nagios start
=========================================

3。编辑apache 的httpd.conf最后面添加:
ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin"
<Directory "/usr/local/nagios/sbin">
#  SSLRequireSSL   
Options ExecCGI   
AllowOverride None  
Order allow,deny   
Allow from all
#  Order deny,allow
#  Deny from all
#  Allow from 127.0.0.1   
AuthName "Nagios Access"   
AuthType Basic  
AuthUserFile /usr/local/nagios/etc/htpasswd.users   
Require valid-user
</Directory>
Alias /nagios "/usr/local/nagios/share"
<Directory "/usr/local/nagios/share">
#  SSLRequireSSL   
Options None  
AllowOverride None  
Order allow,deny
  Allow from all
#  Order deny,allow
#  Deny from all
#  Allow from 127.0.0.1  
AuthName "Nagios Access"
  AuthType Basic   
AuthUserFile /usr/local/nagios/etc/htpasswd.users   
Require valid-user
</Directory>
=========================================


4。在验证下/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
没有出错的话!
重新启动nagios和apache
========================
5。关于selinux,如果selinux是关闭状态,可以忽略这部!如果selinux开启!
那么如果是SELinux处于强制安全模式时需要做getenforce令SELinux处于容许模式setenforce 0如果要永久性更变它,
需要更改/etc/selinux/config里的设置并重启系统。
不关闭SELinux或是永久性变更它的方法是让CGI模块在SELinux下指定强制目标模式:
chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin/
chcon -R -t httpd_sys_content_t /usr/local/nagios/share/
6。登陆web接口!
http://localhost/nagios输入你刚才设置的用户名密码!ok了!看到界面了吧


ps:如果遇到问题!!!!如果遇到关于cgi什么权限问题!察看下/usr/local/nagios的属主组权限,包括里面的内容,尤其是/usr/local/nagios/etc/htpasswd.users这个文件的权限!都应该是nagios:nagios另外尝试编辑vi /usr/local/nagios/etc/cgi.cfg把use_authentication=1修改为use_authentication=0如果出现页面无法显示之类的,去访问bbs.itnms.net里面的http://www.itnms.net/discuz/forumdisplay.php?fid=10&pageD4有关于基本的错误的解决方

第一台windows设备添加

添加第一台windows2003设备来进行检测     


接下来我们开始监控第一台windows设备!
windows服务器上要安装nsclient++0.3.3.zip

解压后,copy到c盘根目录

1。在nagios服务器上
vi /usr/local/nagios/etc/nagios.cfg
#cfg_file=/usr/local/nagios/etc/objects/windows.cfg 去掉这句话的注释

保存退出!

2。到win服务器上,打开命令窗口,cd到刚才解压的目录

在命令行界面执行 nsclient++ /install

然后 nsclient++ SysTray 如果出错不用管!

此时在“服务”里面已经有了nsclient的服务

3。编辑NES.ini
在 [modules] 选项里
去掉所有的注释符号; 除了
CheckWMI.dll和RemoteConfiguration.dll

4。the [Settings] 选项里

修改allowd_host=210.x.x.x(nagios服务器的ip)
如果这一步要修改passwd,那么nagios服务器里面command.cfg也要修改!我这里不作修改!

5。[NSClient] 里面,去掉port=12489的注释!

他靠端口12489侦听,所以防火墙要打开这个端口!

然后启动nsclient

nsclient++ /start

========================================

接下来我们开始配置nagios服务器里面的内容

vi /usr/local/nagios/etc/objects/windows.cfg
=================================
define host{
use windows-server
host_name winserver alias
My Windows Server
address 192.168.1.2

}
修改hostname和address,很重要!!

然后下面的很多定义,都可以不用改,想知道每个定义的意思,去看看官方的文档!!

下面的定义全部修改hostname 都改为自己的!一定要一样!

接下来保存!退出!!
======================
然后重新启动nagios
看看你的web图形是不是变化了!它会自动连接!

如果这个时候出错!尝试去telnet win服务器的ip 12489端口!!

自己排除原因!!

添加除了本机外 第一台linux服务器

刚才我们配置完了之后,可以监控本机,也可以监控第一台win服务器(里面自带的windows.cfg),现在我们监控第一台linux服务器!至于为什么要用nrpe,请参考官方文档,这里我就不多说了!

1。被监控端(被监控的服务器)安装nagios-nrpe_2.8.1.orig.tar.gz和插件nagios-plugins-1.4.12.tar.gz

安装过程
====================
useradd nagios
passwd nagios

tar -zxvf nagios-plugins-1.4.12.tar.gz

cd nagios-plugins-1.4.12

./configure

make

make install
=======================
这一步完成后会在/usr/local/nagios/下生成两个目录libexec和share

======================================
chown nagios.nagios /usr/local/nagios
然后

tar -zxvf nagios-nrpe_2.8.1.orig.tar.gz
cd nagios-nrpe_2.8.1
./configure
make all
make install-plugin
make install-daemon
make install-daemon-config
========================================================




vi /usr/local/nagios/etc/nrpe.cfg
将allowed_hosts=127.0.0.1
修改成你的nagios服务器的ip
=======================================
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

启动nrpe
================================================
netstat -an|grep 5666
察看是否在5666端口上监听
注意:防火墙 释放端口5666,很重要
===================================
/usr/local/nagios/libexec/check_nrpe -H localhost
察看是否能返回nrpv版本号,返回则正常!
=============================================
vi /usr/local/nagios/etcnrpe.cfg
可以看到里面监控对象

# The following examples use hardcoded command arguments...

command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10

command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20

command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20 -c 10 -p /dev/hda1

command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z

command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200



=============================================================
我们为了监控swap
在nrpe.cfg中添加

command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%


===================================================
然后再启动nrpe
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg –d

这样子,在监控端算是设置完了!!!



2。我们来设置nagios服务器端的设置!

安装nagios-nrpe_2.8.1.orig.tar.gz
这里安装过程比上面再被监控服务安装少两部
=========================================
tar -zxvf nagios-nrpe_2.8.1.orig.tar.gz
cd nagios-nrpe_2.8.1
./configure
make all
make install-plugin
================================
然后我们测试下连通性
/usr/local/nagios/libexec/check_nrpe -H 被监控端ip
如果返回nrpe版本号,那么正常!
如果返回拒绝连接!那么telnet ip 5666看是否正常
======================================================


配置:
=================================
由于nrpe外构组件,所以必须在commands.cfg中定义(我这里的nagios版本是3.0.3和2。x的版本有些不一样)
[root@localhost etc]# vi /usr/local/nagios/etc/objects/commands.cfg

最下面添加

#check nrpe
define command{
        command_name check_nrpe
        command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
        }
========================================================
[root@localhost etc]# vi /usr/local/nagios/etc/nagios.cfg

中间添加
cfg_file=/usr/local/nagios/etc/objects/aiyo-mailserver.cfg
最后面的 aiyo-mailserver.cfg你们可以自己改,或者Linux1.cfg也可以!

=================================================
新建aiyo-mailserver.cfg
[root@localhost etc]# vi /usr/local/nagios/etc/objects/aiyo-mailserver.cfg

添加
define host{
           use          linux-server
          host_name     aiyo-mailserver
          alias         aiyo-mailserver
          address               210.51.47.213
        }
define service{
        use             generic-service
        host_name       aiyo-mailserver
        service_description     HTTP
         check_command     check_http
       }
define service{
        use             generic-service
        host_name       aiyo-mailserver
        service_description     FTP
        check_command   check_ftp

define service{
        use             generic-service
        host_name       aiyo-mailserver
        service_description     SSH
        check_command   check_ssh
       }

define service{
        use             generic-service
        host_name       aiyo-mailserver
        service_description     SMTP
        check_command   check_smtp
       }

define service{
        use             generic-service
        host_name       aiyo-mailserver
        service_description     POP3
        check_command   check_pop
       }



define service{
        use             generic-service
        host_name       aiyo-mailserver
        service_description     check-swap
         check_command           check_nrpe!check_swap
               }
define service{
        use             generic-service
        host_name       aiyo-mailserver
        service_description     check-load
         check_command           check_nrpe!check_load
               }

define service{
        use             generic-service
        host_name       aiyo-mailserver
        service_description     check-disk
         check_command           check_nrpe!check_had1


define service{
        use             generic-service
        host_name       aiyo-mailserver
        service_description     zombie_procs
         check_command           check_nrpe!check_zombie_procs
               }

define service{
        use             generic-service
        host_name       aiyo-mailserver
        service_description     check-users
         check_command           check_nrpe!check_users
               }

define service{
        use             generic-service
        host_name       aiyo-mailserver
        service_description     total_procs
         check_command           check_nrpe!check_total_procs

                   }

保存,退出!
这个里面定义了对象和服务!
注意:
define host{
           use          linux-server
这个你要能在commands.cfg找到!如果是3.0.x版本,应该就对的
!如果是2。x版本,不一样定了!
=====================================================
我们来运行
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
检测下是不是都正确!
================================================

正确的话,那么我们重新启动nagios

那么在web页面里面就会出现!!

但是页面显示disk一项可能出现红色警告信息!因为linux下如果我的硬盘是sad1,那么写had1就没用了!
如果是scsi磁盘,一定是sad1,
所以请修改nrpe.cfg
添加
command[check_sda1]=/usr/local/nagios/libexec/check_disk -w 20 -c 10 -p /dev/sda1
然后再nagios服务器端,重新修改check-disk这个参数

define service{
        use             generic-service
        host_name       aiyo-mailserver
        service_description     check-disk
         check_command           check_nrpe!check_sda1
               }

添加第二台windows服务器

添加第二台windows服务器


我们要添加第二台win服务器来监控,其实也很简单!!这台服务器hostname是vhost,ip是1.x.x.x

==============================
第二台win服务器也要安装nsclient++
安装方法和第一台win服务器安装方法一样
这里就不再叙述
安装之后,需要开放12489端口!
并且netstat查看是否在侦听
并且 nagios服务器telnet到win-server 12489端口
====================================================
下面是服务器配置

1。如果是nagios3.x版本,那么/usr/local/nagios/etc/object/commands.cfg不需要修改的!

2。我们在/usr/local/nagios/etc/object/下新建一个vhost.cfg文件(其实哪里都无所谓,最后你都要修改nagios.cfg的)

vi /usr/local/nagios/etc/object/vhost.cfg

里面添加:
define host{
        use             windows-server  
        host_name       aiyo-vhost223
        alias           My Windows Server      
        address         1.x.x.x
        }

define hostgroup{
        hostgroup_name   aiyo-windows-servers        #这里要填写和windows.cfg不一样的,否则会出错
        alias                     Windows Servers
        }


define service{
        use                     generic-service
        host_name               aiyo-vhost223
        service_description     NSClient++ Version
        check_command           check_nt!CLIENTVERSION
        }


define service{
        use                     generic-service
        host_name               aiyo-vhost223
        service_description     Uptime
        check_command           check_nt!UPTIME
        }


define service{
        use                     generic-service
        host_name               aiyo-vhost223
        service_description     CPU Load

        check_command           check_nt!CPULOAD!-l 5,80,90
        }

define service{
        use                     generic-service
        host_name               aiyo-vhost223
        service_description     C:\ Drive Space
        check_command           check_nt!USEDDISKSPACE!-l c -w 80 -c 90
        }

define service{
        use                     generic-service
        host_name               aiyo-vhost223
        service_description     W3SVC
        check_command           check_nt!SERVICESTATE!-d SHOWALL -l W3SVC
        }


define service{
        use                     generic-service
        host_name               aiyo-vhost223
        service_description     Explorer
        check_command           check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe
        }


define service{
        use                     generic-service
        host_name               aiyo-vhost223
        service_description     Memory Usage
        check_command           check_nt!MEMUSE!-w 80 -c 90
        }

保存退出!


3。编辑主配置文件nagios.cfg

里面添加:cfg_file=/usr/local/nagios/etc/objects/vhost.cfg

然后检测/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

如果没有出错,!那么可以启动了!
估计这个写完了!那么对于服务器这里的监控我算告以段落,接下来就是完善报警功能!

当然我知道自己用了nagios并不是老手,对于很多其他监控,例如交换机,路由器,网卡流量,网络打印机,对于oracle/mysql服务还么有监控!
但是后期肯定会完善!

好了其实有了第一台linux服务器的加入,后面配置比较简单了!


。被监控端(被监控的服务器)安装nagios-nrpe_2.8.1.orig.tar.gz和插件nagios-plugins-1.4.12.tar.gz

安装过程
====================
useradd nagios
passwd nagios

tar -zxvf nagios-plugins-1.4.12.tar.gz

cd nagios-plugins-1.4.12

./configure

make

make install
=======================
这一步完成后会在/usr/local/nagios/下生成两个目录libexec和share

======================================
chown nagios.nagios /usr/local/nagios
然后

tar -zxvf nagios-nrpe_2.8.1.orig.tar.gz
cd nagios-nrpe_2.8.1
./configure
make all
make install-plugin
make install-daemon
make install-daemon-config
========================================================




vi /usr/local/nagios/etc/nrpe.cfg
将allowed_hosts=127.0.0.1
修改成你的nagios服务器的ip
=======================================
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

启动nrpe
================================================

netstat -an|grep 5666
察看是否在5666端口上监听
注意:防火墙 释放端口5666,很重要
===================================
/usr/local/nagios/libexec/check_nrpe -H localhost
察看是否能返回nrpv版本号,返回则正常!

如果返回错误,例如CHECK_NRPE: Error - Could not complete SSL handshake
那么尝试
/usr/local/nagios/libexec/check_nrpe -H 127.0.0.1
/usr/local/nagios/libexec/check_nrpe -H 210.x.x.x
如果还是这个错误,如果还是错误;那么解决方法
1. 确认check_nrpe 和 nrpe daemon的版本一定要一致。
2. 确认 check_nrpe和nrpe deamon端同时启用或者禁用ssl支持。
3. 确认nrep.cfg可以被nrpe(或者nagios,反正是执行nrep或者xinetd/inetd程序的)用户正常读取。
4. 有关伪随机设备的问题。这个只会在solaris 8上出现,需要一个补丁Sun patch 112438。
5. 确定nagios主机在xinetd的 only_from中,如果没有使用xinetd,则要确认nrpe.cfg中的配置。
还有防火墙打开5666端口!
很多情况都是没有安装openssl,用rpm -qa察看下是不是都有ssl
如果有的话,重新编译nrpe 加上--enable-ssl参数就ok了

=============================================
要监控swap分区,参考第一台linux服务器的加入!


2。我们来设置nagios服务器端的设置!
nagios服务器就不用再安装别的插件了,因为都安装了nrpe和plugin
commands.cfg也不用添加对nrpe的定义!

唯一作的就是配置

[root@localhost etc]# vi /usr/local/nagios/etc/nagios.cfg

里面添加
cfg_file=/usr/local/nagios/etc/objects/linux222.cfg
保存退出!
=====================================

然后
新建linux222.cfg
[root@localhost etc]# vi /usr/local/nagios/etc/objects/linux222.cfg
添加
define host{
use linux-server
host_name linux222
alias aiyo-mailserver
address 61.121.21.x
}
define service{
use generic-service
host_name linux222
service_description HTTP
check_command check_http
}
define service{
use generic-service
host_name linux222
service_description FTP
check_command check_ftp

define service{
use generic-service
host_name linux222

service_description SSH
check_command check_ssh
}

define service{
use generic-service
host_name linux222
service_description SMTP
check_command check_smtp
}

define service{
use generic-service
host_name linux222
service_description POP3
check_command check_pop
}



define service{
use generic-service
host_name linux222
service_description check-swap
check_command check_nrpe!check_swap
}
define service{
use generic-service
host_name linux222
service_description check-load
check_command check_nrpe!check_load
}

define service{
use generic-service
host_name linux222
service_description check-disk
check_command check_nrpe!check_had1


define service{
use generic-service
host_name linux222
service_description zombie_procs
check_command check_nrpe!check_zombie_procs
}

define service{
use generic-service
host_name linux222
service_description check-users
check_command check_nrpe!check_users
}

define service{
use generic-service
host_name linux222
service_description total_procs
check_command check_nrpe!check_total_procs

}


==========================
保存退出!!内容和第一个差不多!唯一的就是修改hostname
注意,里面少些一个符号,都会导致错误
=====================================================
我们来运行
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
检测下是不是都正确!
================================================

正确的话重新启动nagios


ok完成了!
分享到:
评论

相关推荐

    田逸:开源监控利器nagios实战全解

    开源监控利器nagios实战全解 pdf格式

    运维监控利器nagios(入门PPT讲解)

    运维监控利器nagios Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设备,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在...

    服务器监控利器nagios

    服务器监控利器。欢迎指教!nagios实时报警,很好用哦。

    开源监控利器nagios实战全解

    俗话说:工欲善其事,必先利其器.要做好系统管理,使自己的工作更轻松更有效的话,一个好的 监控工具是必不可少的了.在这里我向大家推荐一款我使用了4年多的、功能强大、可灵活定 制的开源监控利器---nagios。

    开源监控利器nagios

    俗话说:工欲善其事,必先利其器.要做好系统管理,使自己的工作更轻松更有效的话,一个好的监控工具是必不可少的了.在这里我向大家推荐一款我使用了4年多的、功能强大、可灵活定制的开源监控利器—nagios。

    开源监控利器nagios实战

    Nagios 号称网络监控中的“监控之王”,文档中详细介绍了如何安装和使用nagios、nagios plugins、监控windows/Linux/FreeBSD

    Linux集群应用实战视频(共43课含ppt).zip

    5.运维监控利器nagios第5讲Nagios的概念、组成及工作原理 6.运维监控利器nagios第6讲安装与配置Nagios监控系统(一) 7.运维监控利器nagios第7讲安装与配置Nagios监控系统(二) 8.运维监控利器nagios第8讲安装与...

    高俊峰Linux高端集群实战视频教程

    教程名称:高俊峰Linux高端集群实战视频教程课程目录:【】01 利用ISCSI搭建IP存储网络第1讲iSCSI系统介绍【】05 运维监控利器nagios第5讲Nagios的概念、组成及工作原理【】10 运维监控利器nagios第10讲Nagios的日常...

    利用插件扩展Nagios的监控功能.ppt

    运维监控利器nagios

    Nagios的日常维护和管理.ppt

    运维监控利器Nagios

    Nginx下配置nagios

    服务器监控利器nagios,网络管理员和服务器开发工程师必备参考

    集群好书《高性能Linux服务器构建实战》 试读章节下载

    第9章 运维监控利器Nagios 9.1 Nagios综述 9.1.1 什么是Nagios 9.1.2 Nagios的结构与特点 9.2 Nagios的安装与配置 9.2.1 安装Nagios 9.2.2 配置Nagios 9.3 Nagios的运行和维护 9.3.1 验证Nagios...

    云计算平台管理的三大利器Nagios、Ganglia和Splunk

    综合利用Nagios、Ganglia和Splunk搭建起的云计算平台监控体系,具备错误报警、性能调优、问题追踪和自动生成运维报表的功能。有了这套系统,就可轻松管理Hadoop/HBase云计算平台。云计算早已不是停留在概念阶段了,...

Global site tag (gtag.js) - Google Analytics