安装前的装备工作
(1)解决安装Nagios的依赖关系:
Nagios基本组件的运行依赖于httpd、gcc和gd。可以通过以下命令来检查nagios所依赖的rpm包是否已经安装完成:
#yum -y install httpd gcc glibc glibc-common *gd* php php-mysql mysql mysql-server --skip-broken
(2)所需要安装组件:
服务端所用的安装包为 nagios nagios-plugins ndoutils(非必须)
linux客户端 nrpe
windows客户端NSClient++
(3)运行selinux设置,或者关闭selinux
开始搭建:
(1)添加nagios运行所需要的用户和组:
# groupadd nagcmd
# useradd -m nagios
# usermod -a -G nagcmd nagios
把apache加入到nagcmd组,以便于在通过web Interface操作nagios时能够具有足够的权限:
# usermod -a -G nagcmd nagios
2、编译安装nagios:
# tar zxf nagios-3.1.2.tar.gz (英文)
# tar jxf nagios-cn-3.2.3.tar.bz2 (中文)
cd nagios-cn-3.2.3
./configure --with-command-group=nagcmd --enable-event-broker()
# make all
# make install
# make install-init
# make install-commandmode
# make install-config
为email指定您想用来接收nagios警告信息的邮件地址,默认是本机的nagios用户:
#vi /user/local/nagios/etc/objects/contacts.cfg
email nagios@localhost #这个是默认设置
在httpd的配置文件目录{conf.d}中创建Nagios的Web程序配置文件:
# make install-webconf
创建一个登陆nagios web程序的用户,这个用户账号在以后通过web登陆nagios认证时所用:
# htpasswd -c /usr/local/nagios/etc/htpasswd.user nagiosadmin
密码 123456
以上过程配置结束以后需要重新启动httpd:
# service httpd restart
3、编译安装nagios-plugins
nagios的所有监控工作都是通过插件完成的,因此在启动nagios之前还需要为其安装官方提供的插件。
# tar zxf nagios-plugins-1.4.15.tar.gz
# cd nagios-plugins-1.4.15
# ./configure --with-nagios-user=nagios --with-nagios-group=nagios
# make
# make install
4、配置并启动Nagios
(1)把nagios添加为系统服务并将加入到自动启动服务队列:
# chkconfig --add nagios
# chkconfig nagios on
(2)检查其主配置文件的语法是否正确:
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
注释:CTM路径太长
vim .bashrc
PATH=$PATH:/usr/local/nagios/bin
. .bashrc
echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/nagios/bin
ln -sv /usr/local/nagios/etc/nagios.cfg /etc/nagios.cfg
(3)如果上面的语法检查没有问题,接下来就可以正式启动nagios服务了:
#service nagios start
Starting nagios: done.
(4)配置selinux
如果您的系统开启了selinux服务,则默认为拒绝nagios web cgi程序的运行,您可以通过下面的命令来检查您的系统是不是开启了selinux:
#getenforce
如果上面命令的结构显示开启了selinux服务,您可以通过下面的命令暂时性的将其关闭:
#getenforce 0
如果您想在以后完全关闭selinux,可以通过编辑/etc/sysconfig/selinux文件,将其中的selinux后面的值"force"修改为"disable"即可。
当然您也可以通过以下方式将nagios的CGI程序运行于SELinux/targeted模式而不用关闭selinux:
#chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin
#chcon -R -t httpd_sys_content_t /usr/local/nagios/share
(5)通过web界面查看nagios:
http://your_nagios_IP/nagios
登陆时需要制定前面设定的web认证账号和密码.
我在web下能访问,但是输入密码后提示
Authorization Required
This server could not verify that you are authorized to access the document requested.
Either you supplied the wrong credentials (e.g., bad password), or your browser doesn't understand how to supply the credentials required.
mv /usr/local/nagios/etc/htpasswd.user /usr/local/nagios/etc/htpasswd.users
###########################################################################################
windows端
1、被监控端安装NSClient++-0.3.8-win32.msi
2、安装完成后修改配置文件NSC.ini把需要的库都打开
FileLogger.dll
CheckSystem.dll
CheckDisk.dll
NSClientListener.dll
NRPEListener.dll
SysTray.dll
CheckEventLog.dll
CheckHelpers.dll
CheckWMI.dll
CheckExternalScripts.dll
NSCAAgent.dll
LUAScript.dll
NRPEClient.dll
CheckTaskSched.dll
[NSClient]
;# ALLOWED HOST ADDRESSES
allowed_hosts=10.0.0.0/24
;# USE THIS FILE
allowed_hosts=10.0.0.12
检测服务
netstat -a
TCP amdin-deed192de:5666 amdin-deed192de:0 LISTENING
3、在监控服务器上修改nagios配置文件nagios.cfg
去掉注释cfg_file=/usr/local/nagios/etc/object/windows.cfg
定义windows.cfg
define host{
use windows-server ; Inherit default values from a template
host_name winserver ; The name we're giving to this host
alias My windows Server; A longer name associated with the host
address 10.0.0.13 ; 你主机的IP
}
################################################################################
linux端
被监控端
先添加nagios用户
useradd nagios
为了安装nrpe,先安装nagios-plugins-1.4.15.tar.gz
#tar zxf nagios-plugins-1.4.15.tar.gz
#cd nagios-plugins-1.4.15
#./configure --with-nagios-user=nagios --with-nagios-group=nagios
#make
#make install
tar -zxvf nrpe-2.1.2.tar.gz
cd nrpe-2.1.2.tar.gz
./configure (会自动加载SSL)
openssl openssl-devel
#如果后面make报错,加如下参数
./configure --enable-ssl --with-ssl-lib=/usr/lib/(当然前提要有openssl)
make all
make install-plugin
make install-daemon
make install-daemon-config
4、配置nrpe信息
vim /usr/local/nagios/etc/nrpe.cfg
allowed_hosts=127.0.0.1 //允许监控的IP
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
服务端
3、安装NRPE
cd nagios-nrpe-2.1.2
./configure #默认自动添加了openssl
#因为传送过程要加密,如果后面make报错,加如下参数
rpm -qa|grep ssl
openssl-devel-0.9.7a-43.17.e14_6.1
rpm -ql openssl-devel-0.9.7a-43.17.e14_6.1 | more
./configure --enable-ssl --with-ssl-lib=/usr/lib/(当然前提要有openssl)
make all
make install-plugin
4、commands.cfg定义外部构件nrpe
vi /usr/local/nagios/etc/object/commands.cfg
#添加
#check nrpe
define command{
command_name check_nrpe
command_line $USER$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
定义 mylinux.cfg
define host{
use linux-server
host_name mylinux
alias mylinux
address 192.168.0.13(客户端IP既被监控的IP)
}
define service{
use generic-service
host_name mylinux
service_description check-swap
check_command check_nrpe!check_swap
}
define service{
use generic-service
host_name mylinux
service_description check-load
check_command check_nrpe!check_load
}
define service{
use generic-service
host_name mylinux
service_description check-disk
check_command check_nrpe!check_had1
}
define service{
use generic-service
host_name mylinux
service_description check-users
check_command check_nrpe!check_users
}
define service{
use generic-service
host_name mylinux
service_description otal_procs
check_command check_nrpe!check_total_procs
}
chown nagios.nagios *
##########################################################################################
define service{
use generic-service
host_name mylinux
service_description httpd
check_command check_http! -H 192.168.0.13
}
###########################################################################################
飞信报警
1、修改模板文件
修改comncont.cfg
2.
修改
commands.cfg
define command{
command_name notify-service-by-fetion
command_line /usr/bin/fetion --mobile 手机号 --pwd 123qweQWE --to 手机号码 --msg-type=0 --msg-utf8 $HOSTNAME