|
部署说明
我们这里要实现对30多台服务器、2台内部交换机、1台核心交换机以及多个硬件设备进行监测。服务器根据不同的功能连接到两台内部交换机上,两台内部交换机通过2个网口聚合连到核心交换机上。其他的硬件设备由于网路上的要求,直接连到核心交换机上。
部署完后的nagios map图为:
系统及监测项
服务器操作系统包括windows和centos。
Windows上要监测的除了基本的cpu、内存、硬盘容量之外,主要还包括windows的服务、进程、一些tomcat的tcp端口;
Centos上要监测的除了基本的cpu、内存、硬盘容量之外,主要还包括进程、http并发、dhcp、dns、tomcat的tcp端口以及处于系统上的要求,需要关心的监测项。
少数硬件设备尚未在本次监测中配置监测项,可根据这些硬件的情况(如是否支持snmp监测协议)进行增加。
Nagios软件准备
Nagios服务器,英文文档中叫Nagios Server,有些资料上称监测服务器等。安装Nagios服务器端所需的软件。
被监测机,英文文档中叫Remote Computer,或Client Computer,即待监测的服务器或待监测的终端设备。
Nagios服务器端的操作系统可以是:centos5.5 32bit 或者 centos5.8 64bit及相近版本。
64位的依赖包rpm都要安装64位的版本。
32位centos需要安装的软件包括:
nagios-3.5.0.tar.gz
nagios-plugins-1.4.16.tar.gz
nrpe-2.14.tar.gz
mrtg-2.17.4.tar.gz
net-snmp-libs-5.3.2.2-9.el5.i386.rpm
net-snmp-5.3.2.2-9.el5.i386.rpm
net-snmp-utils-5.3.2.2-9.el5.i386.rpm
httpd(apache) 服务;
待监测的Centos机器上需要安装的是:
nagios-plugins-1.4.16.tar.gz
nrpe-2.14.tar.gz
待监测的Windows机器:
32位的windows机器:NSCP-0.4.1.101-Win32.msi。需要注意的是,本人安装后期的NSCP-0.4.2.17-Win32.msi版本,出现很多监测项失败,如C分区的使用情况监测项无法监测。
64位的windows机器:NSCP-0.4.1.101-x64.msi
待监测的centos系统上的Oracle数据库除了安装nagios-plugins-1.4.16.tar.gz和nrpe-2.14.tar.gz之外,如果要监测Oracle数据库表空间,还需要安装:
check_oracle_health-1.7.8.1.tar.gz
DBD-Oracle-1.64.tar.gz
DBI-1.627.tar.gz
Nagios服务器软件安装
Nagios服务器要实现对所有的待监测服务器发送监测通知,因此,负荷会随着待监测设备的增加而增加。本次待监测设备数量也不少,而且也没有单独的服务器承担这个角色。对所有的服务器经过删选后,选取192.168.50.22这台负载比较轻的服务器,作为Nagios服务器。
1.1 端口使用情况
根据Nagios的官方文档,Nagios使用以下端口号:
确认centos系统所有的服务器端口号未被使用:
#lsof -i:5666
提醒下,在Windows待监控的机器安装NSCP程序,使用的端口号为:12489。也要确认该端口号未被使用:
C:\>netstat -a
1.2 Nagois软件安装
1.2.1 nagios-3.5.0安装
1, 下载nagios-3.5.0.tar.gz
http://sourceforge.net/projects/nagios/files/nagios-3.x/nagios-3.5.0/nagios-3.5.0.tar.gz/download
2, 检查依赖包是否都已经安装,如果尚未安装,测根据centos操作系统包安装的方法进行安装。检查httpd、php、gcc、glibc、glibc-common、gd、gd-devel,以及net-snmp、net-snmp-utils是否都已经安装上。以下命令检查httpd是否已经安装,其他包检查方法类似:
#rpm -qa|grep httpd
这里发现php没有安装,到centos安装盘中找到 php-common-5.1.6-32.el5.i386.rpm php-cli-5.1.6-32.el5.i386.rpm和 php-5.1.6-32.el5.i386.rpm,使用“rpm -ivh 文件名”进行安装,如:
rpm -ivh php-common-5.1.6-32.el5.i386.rpm
如果服务器是连到internet的话,也可以用yum安装:
yum -y install httpd php gcc glibc glibc-common gd gd-devel net-snmp net-snmp-utils mysql mysql-server mysql-devel openssl
说明下:这里安装mysql是为了下面将监测的数据写入到mysql数据库,以便cacti能够显示。如果不用cacti的话,就不需要安装mysql。本人经过尝试,发现cacti其实也没什么用。还不如安装Pnp来显示监测的趋势图。不过起先为了了解cacti,还是进行了详细的安装。
主要注意的是:
在mysql数据库中,只有nagios_hosts表以及由这个表自动生成的npc_hosts表中有数据时,cacti中的npc才能够显示nagios获取到的服务器各项监测数据。本人在安装完Ndoutils插件后,这个表的数据始终没有插入。后来安装centos5.8 64位操作系统,全部用同样的安装方法,这个表就有数据,而且cacti也能够正常显示数据了。
网上也有资料说使用mysql源代码进行安装,如果出现这个表没有数据,则可以尝试下使用源代码安装mysql。本人在centos6.4 64位操作系统上使用mysql源代码安装,nagios就能成功的将数据写入nagios_hosts表。
因为需要使用snmp协议监测交换机,因此还要安装net-snmp、net-snmp-utils。如果未安装这两个包,则nagios的插件check_snmp不会生成。如果在首次尚未安装这两个包,则需要重新编译nagios插件包并进行安装。编译并安装插件包后,check_snmp文件就会生成。
3, 创建用户
#useradd -m nagios
passwd nagios
groupadd nagcmd
usermod -a -G nagcmd nagios
usermod -a -G nagcmd apache
4, 安装nagios
#tar zxvf nagios-3.5.0.tar.gz
#cd nagios-3.5.0
#./configure --with-command-group=nagcmd --prefix=/usr/local/nagios --with-gd-lib=/usr/local/lib --with-gd-inc=/usr/local/include
#make all && make install
#make install-init && make install-commandmode && make install-config
#chown -R nagios.nagios /usr/local/nagios (这个命令可以在最后全部搞定后执行)
#make install-webconf
#htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
输入密码如:admin
#service httpd restart
在ie上使用http://192.168.50.22/nagios,输入nagiosadmin以及刚才创建的密码就能登录nagios主页了。当然,此时nagios什么都做不了。
5, 配置nagios
1) 修改contacts.cfg
将contacts.cfg文件中的最后4行注销掉,因为本次安装不需要对外发送通知信息:
#vi /usr/local/nagios/etc/objects/contacts.cfg
define contact{
contact_name nagiosadmin ; Short name of user
use generic-contact ; Inherit default values from generic-contact template (defined above)
alias Nagios Admin ; Full name of user
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,u,r
# service_notification_commands notify-service-by-email,notify-service-by-fetion
# host_notification_commands notify-host-by-email,notify-host-by-fetion
# pager 10086
# email nagios@localhost ; |
|
|