CentOS下Nagios的安装与配置
CentOS下Nagios的安装与配置
Nagios是一款开源的电脑系统和网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。
Nagios可以识别4种状态返回信息,即0(OK)表示状态正常/绿色、1(WARNING)表示出现警告/***、2(CRITICAL)表示出现非常严重的错误/红色、3(UNKNOWN)表示未知错误/深***。
一、环境
HostNameOSIPSoftware
Nagios-ServerCentOSrelease6.3(Final)192.168.1.108Apache、Php、Nagios、nagios-plugins
Nagios-LinuxCentOSrelease5.8(Final)192.168.1.111nagios-plugins、nrpe
Nagios-WindowsWindowsXP192.168.1.113NSClient++
防火墙已关闭/iptables:Firewallisnotrunning.
SELINUX=disabled
二、Nagios服务端安装
基础支持套件:gccglibcglibc-commongdgd-develxinetdopenssl-devel
2.1创建nagios用户和用户组
useradd-s/sbin/nologinnagios
mkdir/usr/local/nagios
chown-Rnagios.nagios/usr/local/nagios
2.2编译安装Nagios
wgethttp://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.4.3.tar.gz
tarzxvfnagios-3.4.3.tar.gz
cdnagios
./configure--prefix=/usr/local/nagios
makeall
makeinstall
makeinstall-init
makeinstall-commandmode
makeinstall-config
cd
chkconfig--addnagios
chkconfig--level35nagioson
chkconfig--listnagios
2.3安装Nagios插件
wgethttps://www.nagios-plugins.org/download/nagios-plugins-1.5.tar.gz
or
wget http://nagios-plugins.org/download/nagios-plugins-2.0.3.tar.gz
tarxzvfnagios-plugins-1.5.tar.gz
cdnagios-plugins-1.5
./configure--prefix=/usr/local/nagios
make&&makeinstall
2.4安装配置Apache、PHP
yum-yinstallhttpdphp//如果已经安装此步骤略过;
2.4.1配置apache主配置文件
vim/etc/httpd/conf/httpd.conf
找到
Userapache
Groupapache
更改为
Usernagios
Groupnagios
找到
DirectoryIndexindex.html
更改为
DirectoryIndexindex.htmlindex.php
在下一行新增如下内容:
AddTypeapplication/x-httpd-php.php
为了安全起见,一般情况下要让nagios的web监控页面必须经过授权才能访问,这需要增加验证配置,即在httpd.conf文件最后添加如下信息:
#settingfornagios
ScriptAlias/nagios/cgi-bin"/usr/local/nagios/sbin"
<Directory"/usr/local/nagios/sbin">
AuthTypeBasic
OptionsExecCGI
AllowOverrideNone
Orderallow,deny
Allowfromall
AuthName"NagiosAccess"
AuthUserFile/usr/local/nagios/etc/htpasswd//用于此目录访问身份验证的文件
Requirevalid-user
</Directory>
Alias/nagios"/usr/local/nagios/share"
<Directory"/usr/local/nagios/share">
AuthTypeBasic
OptionsNone
AllowOverrideNone
Orderallow,deny
Allowfromall
AuthName"nagiosAccess"
AuthUserFile/usr/local/nagios/etc/htpasswd
Requirevalid-user
</Directory>
保存退出;
2.4.2创建apache目录验证文件及启动apache服务
htpasswd-c/usr/local/nagios/etc/htpasswddavid
cat/usr/local/nagios/etc/htpasswd
servicehttpdrestart
到这里Nagios安装及基本配置已经完成了;测试访问一下:
http://ip地址/nagios
用户名
密码
2.5配置Nagios
2.5.1配置联系人信息
cp/usr/local/nagios/etc/objects/contacts.cfg/usr/local/nagios/etc/objects/contacts.cfg.bak
vim/usr/local/nagios/etc/objects/contacts.cfg
更改
contact_namedavid
email744120325@qq.com
contactgroup_namets
membersdavid
2.5.2配置主机信息
touch/usr/local/nagios/etc/objects/hosts.cfg
vim/usr/local/nagios/etc/objects/hosts.cfg
新增如下内容:
definehost{
uselinux-server
host_namehostname01
aliashostname01
address192.168.1.111
}
definehost{
uselinux-server
host_namehostname02
aliashostname02
address192.168.1.112
}
definehostgroup{
hostgroup_namebsmart-servers
aliasbsmartservers
membershostname01,hostname02
}
--------------------------------------
vim/etc/hosts
新增
ip地址hostname//192.168.122.128localhost
--------------------------------------
由于本实验也测试监控安装Nagios服务端的这台服务器,所以需要配置localhost.cfg文件;
cp/usr/local/nagios/etc/objects/localhost.cfg/usr/local/nagios/etc/objects/localhost.cfg.bak
vim/usr/local/nagios/etc/objects/localhost.cfg
在文件尾新增如下内容:
defineservice{
uselocal-service;Nameofservicetemplatetouse
host_namelocalhost
service_descriptionMYSQL
check_commandcheck_mysql
notifications_enabled0
}
defineservice{
uselocal-service;Nameofservicetemplatetouse
host_namelocalhost
service_descriptionFTP
check_commandcheck_ftp
notifications_enabled0
}
2.5.3配置时间信息
cp/usr/local/nagios/etc/objects/timeperiods.cfg/usr/local/nagios/etc/objects/timeperiods.cfg.bak
vim/usr/local/nagios/etc/objects/timeperiods.cfg
根据需要配置,一般不需要更改,默认即可;
2.5.4配置服务信息
touch/usr/local/nagios/etc/objects/services.cfg
vim/usr/local/nagios/etc/objects/services.cfg
新增如下内容:
defineservice{
uselocal-service
host_namelocalhost
service_descriptioncheck-host-alive
check_commandcheck-host-alive
}
2.5.5配置命令信息
cp/usr/local/nagios/etc/objects/commands.cfg/usr/local/nagios/etc/objects/commands.cfg.bak
vim/usr/local/nagios/etc/objects/commands.cfg
新增如下内容:
#'check_mysql'commanddefinition
definecommand{
command_namecheck_mysql
command_line$USER1$/check_mysql-H$HOSTADDRESS$$ARG1$
}
2.5.6配置模板配置信息
nagios主要用于监控主机资源以及服务,在nagios配置中称为对象,为了不必重复定义一些监控对象,Nagios引入了一个模板配置文件,将一些共性的属性定义成模板,以便于多次引用。这就是templates.cfg的作用。
更改
contact_groupsts
2.5.7配置CGI信息
想通过web监控界面执行cgi脚本,例如重启nagios进程、关闭nagios通知、停止nagios主机检测等;需要配置,否则默认即可;
cp/usr/local/nagios/etc/cgi.cfg/usr/local/nagios/etc/cgi.cfg.bak
vim/usr/local/nagios/etc/cgi.cfg
更改
default_user_name=david
authorized_for_system_information=nagiosadmin,david
authorized_for_configuration_information=nagiosadmin,david
authorized_for_system_commands=david
authorized_for_all_services=nagiosadmin,david
authorized_for_all_hosts=nagiosadmin,david
authorized_for_all_service_commands=nagiosadmin,david
authorized_for_all_host_commands=nagiosadmin,david
2.5.8配置Nagios主配置文件信息
cp/usr/local/nagios/etc/nagios.cfg/usr/local/nagios/etc/nagios.cfg.bak
vim/usr/local/nagios/etc/nagios.cfg
新增如下内容:
cfg_file=/usr/local/nagios/etc/objects/services.cfg
保存退出即可;
2.5.9验证Nagios配置文件的正确性
/usr/local/nagios/bin/nagios-v/usr/local/nagios/etc/nagios.cfg
如果最后显示出来如下信息,即表是没问题:
TotalWarnings:0
TotalErrors:0
---------------------------------------
2.6安装NRPE
cd
wgethttp://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.13.tar.gz
tarzxvfnrpe-2.13.tar.gz
cdnrpe-2.13
./configure
makeall
makeinstall-plugin
-------------------------
#/usr/local/nagios/libexec/check_nrpe-H192.168.1.235//测试一下监控机使用check_nrpe与被监控机运行的nrpedaemon之间的通信;
-------------------------
vim//usr/local/nagios/etc/objects/commands.cfg
新增如下内容:
#'check_nrpe'commanddefinition
definecommand{
command_namecheck_nrpe#定义命令名称为check_nrpe,在services.cfg中要使用这个名称.
command_line$USER1$/check_nrpe-H$HOSTADDRESS$-c$ARG1$#这是定义实际运行的插件程序.
#这个命令行的书写要完全按照check_nrpe这个命令的用法,不知道用法的就用check_nrpe–h查看.
}
2.7重启各相关的服务
servicehttpdrestart
servicenagiosrestart
servicepostfixrestart
三、客户端(被监控机)安装配置(Linux)
基础支持套件:gccglibcglibc-commongdgd-develxinetdopenssl-devel
3.1新建用户
useraddnagios
3.2安装Nagios插件
cd
wgethttps://www.nagios-plugins.org/download/nagios-plugins-1.5.tar.gz
or
wget http://nagios-plugins.org/download/nagios-plugins-2.0.3.tar.gz
tarxzvfnagios-plugins-1.5.tar.gz
cdnagios-plugins-1.5
./configure--prefix=/usr/local/nagios
make&&makeinstall
chownnagios.nagios/usr/local/nagios
chown-Rnagios.nagios/usr/local/nagios/libexec
3.3安装NRPE
cd
wgethttp://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.13.tar.gz
tarzxvfnrpe-2.13.tar.gz
cdnrpe-2.13
./configure
makeall
makeinstall-plugin
makeinstall-daemon
makeinstall-daemon-config
makeinstall-xinetd
vim/etc/xinetd.d/nrpe
在only_from后增加监控主机的IP地址;
vim/etc/services
增加NRPE服务:nrpe5666/tcp
servicexinetdrestart
netstat-an|grep5666//查看NRPE是否已经启动;
/usr/local/nagios/libexec/check_nrpe-Hlocalhost//测试NRPE是否工作正常;
注:为了后面工作的顺利进行,注意本地防火墙要打开5666能让外部的监控机访问。
3.4定义对Nagios-Linux主机的监控
下面就可以在services.cfg(服务器上的配置文件)中定义对Nagios-Linux主机的监控了:
defineservice{
uselocal-service
host_nameNagios-Linux
service_descriptionCurrentLoad
check_commandcheck_nrpe!check_load
}
defineservice{
uselocal-service
host_nameNagios-Linux
service_descriptionCheckDisk
check_commandcheck_nrpe!check_disk
}
defineservice{
uselocal-service
host_nameNagios-Linux
service_descriptionTotalProcesses
check_commandcheck_nrpe!check_total_procs
}
defineservice{
uselocal-service
host_nameNagios-Linux
service_descriptionCurrentUsers
check_commandcheck_nrpe!check_users
}
defineservice{
uselocal-service
host_nameNagios-Linux
service_descriptionCheckZombieProcs
check_commandcheck_nrpe!check_zombie_procs
}
---------------------------------------------------------
如果还需要监控其它服务的,请在上面的文件增加相应的服务项以及在被监控机上相应增加,如:
例:增加HTTP监控:
监控机:
vim/usr/local/nagios/etc/objects/services.cfg
新增如下内容:
defineservice{
uselocal-service
host_nameNagios-Linux
service_descriptionHTTP
check_commandcheck_nrpe!check_http
}
被监控机:
vim/usr/local/nagios/etc/nrpe.cfg
新增如下内容:
command[check_http]=/usr/local/nagios/libexec/check_http-I127.0.0.1
注:更改过配置的都要重启一下相应服务才能生效;
参考http://www.cnblogs.com/mchina/archive/2013/02/20/2883404.html
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。