Nagios安装及配置

    Nagiosis an open source host, service and network monitoring program. 

Whouses it? Lots of people, including many big companies and organizations.

 

       Nagios是一个用来监视系统和网络的开源应用软件,它通常运行于一个主服务器上,这个服务器运行Liunx 或 Unix 操作系统。Nagios利用其众多的插件实现对本机和远端服务的监控,当被监控对象出现异常,Nagios就会及时给管理人员告警。它是一个基于TCP/IP协议的软件包,包含有nagios主程序和它的各个插件,配置非常灵活,可以监视的项目很多,也可以通 过自定义shell脚本进行监控服务,非常适合各类企业的网络应用。

       Nagios功能非常强大,它可以监控服务和主机,但是他自身并不包括这部分功能的代码,所有的监控、检测功能都是有插件来完成的。再说报警功能,如果监控系统发现问题不能报警那就没有意义了,所以报警也是nagios很重要的功能之一。但是,同样的,nagios自身也没有报警部分的代码,甚至没有插件,而是交给用户或者其他相关开源项目组去完成。


配置必要的用户

# useradd nagios -s /sbin/nologin -M 


安装服务端(NAGIOS CORE和NAGIOS PLUGIN) 

1、nagios core

#wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.3.tar.gz

#tar zxvf nagios-3.2.3.tar.gz

#cd nagios-3.2.3 

#./configure --prefix=/usr/local/nagios

#make all

#make install

#make install-init

#make install-commandmode

#make install-config 

 

2.NAGIOS插件(nagios-plusin)

# wgethttp://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz

#tar zxvf nagios-plugins-1.4.15.tar.gz

#cd nagios-plugins-1.4.15

#./configure --prefix=/usr/local/nagios

#make

#make install

//注意这里要确保mysql-devel安装,否则无法产生这个check_mysql插件

#ls -l /usr/local/nagios/libexec/check_mysql

-rwxr-xr-x  1 root root 4325734 Apr  8 15:17 /usr/local/nagios/libexec/check_mysql


整合APACHE (可选)

生成密码文件

/usr/local/apache/bin/htpasswd-c /usr/local/nagios/etc/nagiospwd zachaway

输入2次密码:zach123

修改httpd.conf,加入:

ScriptAlias/nagios/cgi-bin /usr/local/nagios/sbin

<Directory"/usr/local/nagios/sbin">

AuthTypeBasic

OptionsExecCGI

AllowOverrideNone

Orderallow,deny

Allowfrom all

AuthName"Nagios Access"

AuthUserFile/usr/local/nagios/etc/nagiospwd

Requirevalid-user

</Directory>

Alias/nagios /usr/local/nagios/share

<Directory"/usr/local/nagios/share">

AuthTypeBasic

OptionsNone

AllowOverrideNone

Orderallow,deny

Allowfrom all

 

AuthName"nagios Access"

AuthUserFile/usr/local/nagios/etc/nagiospwd

Requirevalid-user

</Directory>


检查 

检查nagios服务器是否存在配置错误

/usr/local/nagios/bin/nagios-v /usr/local/nagios/etc/nagios.cfg

 

加入自启动 

#/etc/init.d/nagios start

# 把nagios服务增加到服务清单中并设置开机自启动

#chkconfig --add nagios

#chkconfig --level 345 nagios on

 

在浏览器中输入http://IP/nagios/,测试nagios服务器是否已经能正确安装。

会提示输入2次用户名和密码,一个是cgi的,一个是nagios的,我们设置的是一样的

输入用户名zachaway,密码zach123后,就出来了NAGIOS的主界面

安装到此完成,之后就可以做troubleshooting了


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


Nagios Addon( 使用常用的 NRPE


什么是NRPE

         NRPE是nagios的一个扩展,它被用于被监控的服务器上,向nagios监控平台提供该服务器的一些本地的情况。例如,cpu负载、内存使用、硬盘使用等等。NRPE可以称为nagios的for linux 客户端。

        为什么要使用这个客户端呢?在nagios的插件中,有一个名为“check_ssh”的插件,它也可以实现对于远程服务器中local信息的监控。但是,相对NRPE,“check_ssh”占用的系统资源就略多了一点。

         监控少量的服务时可能不会察觉,但是如果监控对象比较多,那么差距就非常明显了。但是还有一点要说明,虽然NRPE也是使用SSL安全通道,但是“check_ssh”的安全性要高于NRPE,安全性总是和易用性成反比的。


NRPE总共由两部分组成:

(1)check_nrpe:它是运行在监控主机上

(2)NRPE daemon:它是运行在远程的linux主机上(通常就是被监控机)


在nagios服务器端安装NRPE

 

#wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz

#tar zxvf nrpe-2.12.tar.gz

#cd nrpe-2.12

#./configure --enable-ssl --with-ssl-lib (前提是已经安装了openssl与openssl-devel)

注释:NRPE默认是装在/usr/local/nagios目录下,服务器端我特别设置了一个不一样的目录

 

#make all

#make install-plugin

#make install-daemon

#make install-daemon-config

 

配置nrpe

#在commands.cfg中定义nrpe这个外部构件

vi/usr/local/nagios/etc/objects/commands.cfg,增加如下一行

 

#checknrpe

definecommand{

command_namecheck_nrpe

command_line$USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$

}

 

配置nrpe,在commands.cfg中定义nrpe这个外部构件

vi/usr/local/nagios/etc/objects/commands.cfg,增加如下一行

 

#checknrpe

definecommand{

command_namecheck_nrpe

command_line$USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$

}

 

再次检查nagios服务器是否存在配置错误

/usr/local/nagios/bin/nagios-v /usr/local/nagios/etc/nagios.cfg

 

启动NRPE

#/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

#netstat -an|grep 5666

tcp        0     0 0.0.0.0:5666               0.0.0.0:*                   LISTEN     


在客户端端安装NRPE

 

useraddnagios -s /sbin/nologin -M

 

##先安装nagios插件

# wget  http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz

#tar -zxzf nagios-plugins-1.4.15.tar.gz

#cd nagios-plugins-1.4.15

 

#./configure--prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios

#make && make install

#chown nagios.nagios /usr/local/nagios/

#chown -R nagios.nagios /usr/local/nagios/libexec/

 

##再安装NRPE

#tar -zxvf nrpe-2.12.tar.gz

#cd nrpe-2.12

#./configure --enable-ssl --with-ssl-lib(前提是已经安装了openssl与openssl-devel)

#make all && make install-plugin && make install-daemon&& make install-daemon-config

 

 

此时什么都不要改,先启动NRPE

 

/usr/local/nagios/bin/nrpe-c /usr/local/nagios/etc/nrpe.cfg -d

#netstat -an|grep 5666

tcp        0     0 0.0.0.0:5666               0.0.0.0:*                   LISTEN     

 

###cat"/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d">> /etc/rc.local

###可以把以上命令写入rc.local,开机自动启动,注意,如果有iptable的话,要开放5666端口


监控

在Nagios服务器的 /usr/local/nagios/etc/ 下新建servers目录,在该目录下新建一个被监控端主机的配置文件mylinux.cfg

mkdir/usr/local/nagios/etc/server

 

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

在cfg_file=/usr/local/nagios/etc/objects/templates.cfg下添加一行

cfg_file=/usr/local/nagios/etc/mylinux.cfg

 

文件位置并不重要,也可以放在/etc/object/下,注意要和nagios.cfg里面的路径一致即可

 

复制如下配置文件到此文件中

vi/usr/local/nagios/etc/mylinux.cfg

 

definehost{

uselinux-server

host_namemytest237

aliasmytest237

address10.0.3.237

 

max_check_attempts5

 

}

 

defineservice{

usegeneric-service

host_namemytest237

service_descriptionHTTP

check_commandcheck_http

}

 

改变文件属组为nagios

 

chown nagios.nagios /usr/local/nagios/etc/mylinux.cfg

 

重新启动NAGIOS

/etc/init.d/nagiosrestart

 

到web页面查看效果

 

如果监控更多的服务如httpd ssh等等的话,只需要在配置文件中做相应的添加即可

 

Nagios报警邮件设置-1

 

以我的公司邮件账户为例

 

#vi /usr/local/nagios/etc/objects/contacts.cfg

修改这一段为实际收件人,只修改email对应的邮件地址即可,其他无需修改,红字加粗的部分

 

definecontact{

         contact_name       nagiosadmin        ; Short name of user

         use             generic-contact ; Inherit default values fromgeneric-contact template (defined above)

         alias               Nagios Admin            ; Full name of user

 

        email            zachaway@×××.com  ; <<***** CHANGE THIS TO YOUR EMAILADDRESS ******

        }




安装一个叫sendEmail的软件

 

说明:sendEmail是一个十分小巧的通过命令来发smtp邮件的程序

# wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz

#tar zxvf sendEmail-v1.56.tar.gz

#cp -a sendEmail-v1.56/sendEmail /usr/local/bin/

#chmod +x /usr/local/bin/sendEmail

 

sendEmail使用范例:

 

/usr/local/bin/sendEmail -f  zachaway@163.com -t zachaway@×××.com -s smtp.163.com -u "nagios testemail" -xu ***@163.com -xp ****** -m happy     

解释:

-f 表示发送者的邮箱

-t 表示接收者的邮箱

-s 表示SMTP服务器的域名或者ip

-u 表示邮件的主题

-xu表示SMTP验证的用户名

-xp表示SMTP验证的密码(注意,这个密码貌似有限制,例如我用d!5neyland就不能被正确识别)

-m 表示邮件的内容

如果你不带-m参数的话,就会提示你自行输入

 

当然我们也可以将一个文件的内容作为邮件的正文发出去的

那么就可以使用:

cat文件名 | /usr/local/bin/sendEmail-f zachaway@163.com -t  zachaway@×××.com -s smtp.163.com -u "nagios testemail" -xuzachaway@163.com -xpzachaway123

 

 

修改commands.cfg中关于发邮件的命令的定义,使用sendEmail来发邮件

 

#vi /usr/local/nagios/etc/objects/commands.cfg

修改notify-host-by-email和notify-service-by-email这2个段的mail命令

 

红字加粗的部分

 

#'notify-host-by-email' command definition

definecommand{

        command_name    notify-host-by-email

        command_line   /usr/bin/printf "%b" "*****Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost:$HOSTNAME$\nState: 

$HOSTSTATE$\nAddress:$HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" |/usr/local/bin/sendEmail-fzachaway@163.com -t $CONTACTEMAIL$ -s smtp.163.com -u "**$NOTIFICATIONTYPE$ Host A lert: $HOSTNAME$ is $HOSTSTATE$ **"-xu zachaway@163.com -xp zachaway163

        }

 

#'notify-service-by-email' command definition

definecommand{

        command_name    notify-service-by-email

        command_line   /usr/bin/printf "%b" "*****Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService:$SERVICEDESC$\

$HOSTSTATE$\nAddress:$HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" |/usr/local/bin/sendEmail-fzachaway@163.com -t $CONTACTEMAIL$ -s smtp.163.com -u "**$NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$**" -xuzachaway@163.com -xpzachaway163

        }


PS:注册了一个163,为专发nagios报警邮件的公用账户,信息为

zachaway@163.com

密码: zachaway163

(此为杜撰,并不存在)



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值