`

手把手实现企业级开源监控软件cacti+nagios+ntop整合

 
阅读更多
我在操作的过程中遇到的一些问题,在转载的过程将的一些理解添加进了文章,全部用红底字 标出,以示区分。 
 
做 一名运维工程师,监控恐怕是日常生活中必不可少的活了,在企业中的监控,大多是用开源软件来实现的,(为什么要用开源?省钱呗..呵呵) 而且开源软件也有着非常优秀的表现,其中著名的有cacti,nagios,ntop,Ganglia,等等..而cacti+nagios+ntop的 结合应用,能为企业做到更细微的保证。下面笔者先逐一介绍下:
 
一、cacti的简介
 
网 络管理(如主机负载、网络流量等的监控)是系统管理岗工作人员日常工作的一个重要组成部分,许多厂商为此提供了各自的解决方案。早期开源网管软件中比较著 名的其中之一的MRTG,是一款使用perl开发的,通过SNMP协议实现管理工作站与设备代理进程间的通讯,以完成对设备的管理和运行状态的监视。 MRTG安装配置简单、图形界面直观,因为广受当时网络管理人员的喜爱,也为笔者早期的网络管理工作立下了汗马功劳。
 
但MRTG也有许多固有的缺点,如:使用文本式的数据库,数据不能重复使用;只能按日、周、月、年来查看数据;每图只能画两个DS(一条线、一个块);每取一次数据即需要绘图一次,浪费系统资源;同时,它也没有提供管理功能。
 
有鉴于此,MRTG的作者后来另外又开发了一个工具,即rrdtool。rrdtool是一个性能优良的数据记录器同时也是一个功能强大的绘图引擎 。它 使用rrd的数据存储格式,使用得数据可以重复使用;在绘图方面,它可以定义任意时间段进行绘图,能绘出多个DS。但它也有自己的缺点:虽然提供了强大的 数据存储及绘图功能,但rrdtool却没有提供类似于MRTG中集成的数据采集功能;同时,它提供了过多的参数,以至于在命令行界面使用起来极为不便; 此外,rrdtool也没有提供管理功能。于是cacti应运而生。
 
 
简 单来说,Cacti就是rrdtool的一个forefront,它内置了快速的获数据取工具、优秀的绘图模板以及许多设计精良的数据获取脚本,从而可以 通过结合rrdtool强大的数据抓取、数据存储和绘图功能,轻松实现主机负载、网络流量等信息的走势图的绘制。目前其最新的软件版本是0.8.7g。
 
 
cacti是用php语言实现的一个软件,它的运行需要网站服务器(如apache)及PHP环境的支持。同时,cacti还需要Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模板信息等变量。
 
rrdtool 的对主机负载、网络流量等信息的统计需要通过SNMP协议实现。经过SNMP抓取到的数据存储于由rrdtool生成的rrd文件中,这些文件通常位于 cacti的rra目录中。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的归档文件(Round Robin Archive),它能够存储的数据笔数在创建时就已经定义。
这副图片简述了cacti的工作原理.
 
 Cacti的实例应用
1)网络设置

2)主机系统


(1)网络接口流量(进与出的带宽)

(2)监控CPU的负载、内存等等

(3)监控磁盘的空间、进程数等等

…………………………………..等等

3)cacti常见的监测对象

(1)服务器资源:CPU、内存、磁盘、进程、连接数等

(2)服务器类型:WEB、Mail、FTP、数据库、中间件

(3)网络接口:流量、转发速度、丢包率

(4)网络设备性能、配置文件(对比与备份)、路由数

(5)安全设备性能、连接数、攻击数

(6)设备运行状态:风扇、电源、温度

(7)机房运行环境:电流、电压、温湿度


好了 简单介绍完cacti后,下面我们一起来看下nagios.
二.nagios的简介
Nagios是一款用于系统和网络监控的应用程序。 它可以在你设定的条件下对主机和服务进行监控,在状态变差和变好的时候给出告警信息 


Nagios最初被设计为在Linux系统之上运行,然而它同样可以在类Unix的系统之上运行 

Nagios更进一步的特征包括: 

 
1) 监控网络服务(SMTPPOP3HTTPNNTPPING 等)

2 )监控主机资源(处理器负荷、磁盘利用率等)

3 )简单地插件设计使得用户可以方便地扩展自己服务的检测方法

4
)并行服务检查机制

5
)具备定义网络分层结构的能力,用"parent" 主机定义来表达网络主机间的关系,这种关系可被用来发现和明晰主机宕机或不可达状态

6
)当服务或主机问题产生与解决时将告警发送给联系人(通过EMail 、短信、用户定义方式)
 可以通过飞信,等方式实现时,既可传递给管理员,可高效的保证服务器的维护。



7
)具备定义事件句柄功能,它可以在主机或服务的事件发生时获取更多问题定位

8
)自动的日志回滚

9
)可以支持并实现对主机的冗余监控

10
)可选的WEB 界面用于查看当前的网络状态、通知和故障历史、日志文件等

 

 


Nagios通常由一个主程序(Nagios) 、一个插件程序(Nagios-plugins) 和四个可选的ADDON(NRPE、NSCA、 NSClient++和NDOUtils) 组成。Nagios的监控工作都是通过插件实现的,因此,Nagios和Nagios-plugins是服务器端工作所必须的组件。而四个ADDON中

(1)NRPE:用来在监控的远程Linux/Unix主机上执行脚本插件以实现对这些主机资源的监控

(2)NSCA:用来让 被监控的远程Linux/Unix主机主动将监控信息发送给Nagios服务器(这在冗余监控模式中特别要用到)

(3)NSClient++:用来监控 Windows主机时安装在Windows主机上的组件

(4)NDOUtils:则用来将Nagios的配置信息和各event产生的数据存入数据库,以实现 这些数据的快速检索和处理

这四个ADDON(附件)中,NRPE和NSClient++工作于客户端NDOUtils工作于服务器端,而NSCA则需要同时安装在服务器端和客户端
 
在用一幅图片宏观上展示nagios在企业级应用的位置
 
 
 
有朋友疑问,既然cacti,和nagios都是网络监控工具,选用其一不是减少很多麻烦,在这里笔者建议两者结合使用,还要结合后文所提到的ntop,以作者的理解,简单阐述下cacti和nagios的优缺点:
cacti:在监控方面有良好的绘图,cacti在流量和图型塑造上要强于nagios,但是在故障分析上有些略逊,而且报警机制也有待完善,这时nagios就派上用场了。
nagios :适合监视大量服务器上面的大批服务是否正常, 重点并不在图形化的监控, 其集成的很多功能例如报警,都是 cacti 没有或者很弱的。但在绘图以及图型塑造方面精细度比cacti要弱。
通过两者比较,可以很清晰的了解各自的用途。
下面笔者在简单介绍下ntop
三.Ntop简介
一.     MRTG基于SNMP获取信息,对于端口的流量,MRTG能提供精确统计,但对于三层以上的信息则无从得知了。而这正是NTOP的强项。 NTOP能够更加直观地将网络使用量的情况和每个节点计算机的网络带宽使用详细情况显示出来。NTOP是一种网络嗅探器,嗅探器在协助监测网络数据传输、 排除网络故障等方面有着不可替代的作用。可以通过分析网络流量来确定网络上存在的各种问题,如瓶颈效应或性能下降;也可以用来判断是否有黑客正在攻击网络 系统。如果怀疑网络正在遭受攻击,通过嗅探器截获的数据包可以确定正在攻击系统的是什么类型的数据包,以及它们的源头,从而可以及时地做出响应,或者对网 络进行相应的调整,以保证网络运行的效率和安全。
  二.   管理人员通过NTOP还可以很方便地确定出哪些通信量属于某个特定的网络协议、占主要通信量的是哪个主机、 各次通信的目标是哪个主机、数据包发送时间、各主机间数据包传递的间隔时间等。这些信息为网管员判断网络问题及优化网络性能,提供了十分宝贵的信息。
  NTOP提供以下一些功能:
  ① 自动从网络中识别有用的信息;
  ② 将截获的数据包转换成易于识别的格式;
  ③ 对网络环境中的通信失败进行分析;
  ④ 探测网络环境下的通信瓶颈;
  ⑤ 记录网络通信时间和过程;
  ⑥ 自动识别客户端正在使用的操作系统;
  ⑦ 可以在命令行和Web两种方式下运行。


  简单介绍完ntop后,笔者在网上找了一张图片,很清晰的解释了ntop的工作位置,从工作位置也可以看出ntop的主要功能.
 
通过笔者简单介绍,也可以看出来ntop作为监控工具与前两者cacti和nagios的区别,ntop在监控方面,它的角度是从分析网络流量来确定网络上存在的各种问题,说白了就类似个抓包监控工具,只不过通过归纳绘图实现更多的功能。
笔者这样解释相信不少朋友已经明白这三款开源界的元老级监控软件的各自职责,笔者建议朋友们在总结下各自的功能,达到更深刻的理解.也算笔者给朋友们留个话题,好了,接下来开始全源码实现这三者的整合和应用。
笔者所用的系统是rhel5.4版本,内核版本号为2.6.18
 首先先编译安装cacti.
在开始之前老规矩,先安装编译环境,要想实现cacti的网络监控,还要借助其他一些如mysql,httpd,php等来其原理请参照笔者上一篇博文LEMP架构,为了节省时间,笔者在这里就用yum来装这些包了。
配置好yum环境后
 yum install httpd php php-mysql mysql mysql-server php-snmp -y
 
根据不同主机的环境的不同,这里装的包也不尽相同,我用的是新装的机器,需要装如下包

Ü

yum -y install httpd php php-mysql php-snmp mysql mysql-server perl-DBD-MySQL php-pdo net-snmp net-snmp-libs net-snmp-utils net-snmp-devel ruby ruby-devel


 安装完成后让服务都启动并调整之间的连接关系.
service mysqld start       # 启动mysql服务
chkconfig mysqld on      #使其开机自动启动
 启动完mysql后,如果出现以下画面,并能通过mysql进入,说明成功安装。
 
之后编辑httpd服务的配置文件,使其支持mod_status.so模块.,
只要在/etc/httpd/conf/httpd.conf的配置文件中找到
LoadModule  status_module  modules/mod_status.so
有这一项表示已经支持状态检测模块,所以无需额外添加,直接启动web服务即可.
service httpd start                   #启动http服务
chkconfig httpd on                 #开机自动启动httpd 服务
启动OK后,编辑
vim /var/www/html/index.php                 在其中添加以下内容#
<?php

phpinfo();

?>
#                  保存退出
用web浏览器访问,如果出现以下画面,则表示http支持动态php.并能与php成功连接.
 
 
接着测试与mysql的连接,先给mysql设置个管理员密码
mysqladmin -uroot password ’123456′                            #密码设置为123456
编辑刚才的web页面
vim /var/www/html/index.php   
把里面的内容改为

 

<?php


$link

=

mysql_connect

(

"localhost"

,

"root"

,

"123456"

)

;


if

(

!

$link

)

 echo

 "FAILD!"

;


else

 echo

 "OK!"

;


?>

 

刷新刚才的web浏览器页面,如果出现OK!字样,则表示成功连接.

 
 
 
 
 
 其 中主要用到的是rrdtool-1.2.27-3.el5.i386.rpm 和rrdtool-devel-1.2.27-3.el5.i386.rpm和rrdtool-php-1.2.27-3.el5.i386.rpm这三 个包,其余的包是其他扩展功能和其他脚本语言结合的.笔者就不过多演示了.

安装以上三个包
cd /root/rrdtool/                 #笔者rpm包所在的地方,可以做修改
yum -y localinstall –nogpgcheck rrdtool-1.2.27-3.el5.i386.rpm
yum -y localinstall –nogpgcheck rrdtool-devel-1.2.27-3.el5.i386.rpm
yum -y localinstall –nogpgcheck rrdtool-php-1.2.27-3.el5.i386.rpm
 
 
1.配置mysql 
接着登录mysql,创建cacti的数据库,并为其指定cactier用户和密码(123456)。数据库名字可根据需要指定,这里指定为cactidb,创建并授权:
 登录数据库

mysql -uroot -p
##会提示你输入密码,笔者在前面设置的密码为 123456
 
mysql> create database cactidb;
mysql> GRANT all privileges ON cactidb.* TO cactier@localhost  IDENTIFIED BY ’123456′;
mysql> GRANT all privileges ON cactidb.* TO cactier@127.0.0.1  IDENTIFIED BY ’123456′;
mysql> GRANT all privileges ON cactidb.* TO cactier@192.168.0.0  IDENTIFIED BY ’123456′;
 ##说明 笔者指定了一个网段的授权,是将来做监控时数据库和监控工具不在同一台主机上,网段可根据自己需要进行授权。
mysql> flush privileges;                               

 
2.配置SNMP
 
 
(4)配置SNMP
 
在net-snmp的主配置文件/etc/snmp/snmpd.conf中,默认的community为public,建议将public修改为您需的密码项,笔者在此就不做修改了,使用默认密码public
 
接着,启动snmp进程
service snmpd restart   #如果修改过snmpd.conf 则需要重启服务


呵呵,是不是等不及了,终于该到cacti的编译安装了,准备工作已经全部做好,下面就开始对cacti的安装配置


首先要去cacti官网下载cacti的gz源码包,目前最新的版本是0.8.7.g
 
从官方网站的说明and a webserver that supports PHP such as Apache  or IIS.就知道以上的准备工作是必须要做的.
重要说明:如果用0.8.7g版本的cacti,在后面整合nagios时可能出现bug,笔者推荐用0,8.7e版本的,笔者演示用的是0.8.7g原理一样.
下载完成后就可以解压缩了,笔者放在了/root/目录下
cd /root
tar zxvf cacti-0.8.7g.tar.gz
mv cacti-0.8.7g  /var/www/html/cacti    
##因为cacti的配置是在web页面下进行的,所以笔者直接把cacti-0.8.7g 移至/var/www/html/cacti 
cd  /var/www/html/cacti
mysql -uroot -p cactidb < cacti.sql          
##将cacti.sql数据库文件导入,会提示输入密码输入前面设置的root 的密码即可  
 
编辑cacti的主配置文件,为其指定对应的数据库参数:
vim /var/www/html/cacti/include/config.php
 
将下列各参数的值修改为您前面所设定的:
$database_type = "mysql";
$database_default = "cactidb";
$database_hostname = "localhost";
$database_username = "cactier";
$database_password = "123456";
$database_port = "3306";
修改完成后保存退出。
添加cactier用户 并给其设置密码
 useradd cactier

 passwd cactier
cd   /var/www/html/cacti/
chown -R cactier rra/ log/     #指定rra/ log/的属组属主为cactier用户
vim /etc/crontab
##编辑crontab文件 在空白行添加以下内容
*/5 * * * * cactier php /var/www/html/cacti/poller.php  > /dev/null &
#每5分钟以cactier去抓取数据绘图,这个时间5分钟应该是最小间隔了,笔者不建议修改为更小值。
 
记的要把selinux 关闭,不然不能从web页面访问的,关闭方法如下
setenforce 0                              #只是临时关闭
好了,下面就可以用web浏览器访问cacti进行配置管理了。
笔者所用虚拟机ip为192.168.0.39                              ## IP根据自己实际情况可做相应修改
从浏览器直接访问以下地址 即可看到cacti配置画面
http://192.168.0.39/cacti/install/                    
如果看到以下画面,则可以进行之后的配置
       点击下一步。
 
 
如果上面全是[FOUND], 则可以点击Finish 完成,中间的路径可能与图片不同。
Finish后就会出现登陆画面
 
 
用户名admin 密码admin 即可登陆 (第一次登陆后会强行让修改密码)
进入后点击graphs 会显示流量图
 
 
如果不出现图片执行以下命令让其手动绘图即可.  
su -  cactier
php  /var/www/html/cacti/poller.php > /dev/null 2>&1
exit
数据部分启动较慢,请耐心等待,如显示如上图片数据,则成功安装配置。
##cacti的具体使用笔者不做过多介绍,有意者可去官方网站阅读官方文档。
 

 
下面是源码安装配置nagios

Nagios通常由一个主程序(Nagios) 、一个插件程序(Nagios-plugins) 和四个可选的ADDON(NRPE、NSCA、 NSClient++和NDOUtils) 组成。Nagios的监控工作都是通过插件实现的,因此,Nagios和Nagios-plugins是服务器端工作所必须的组件

下面在服务端安装Nagios和Nagios-plugins.

 先下载源码包,目前官方的最新版本如下图

 

插件版本

 

下载之.笔者放在了 /root/nagios目录下 

nagios  需要一些基础支持套件才能运行,如apache,gcc,glibc,gd库等。

useradd -m nagios        #添加一个名为nagios的用户来运行nagios           

groupadd nagios                              #添加nagios用户组,用以通过web页面提交外部控制命令

usermod -a -G nagios daemon             #将运行apache用户daemon加入nagios组

cd /root/nagios                                 #该目录是你下载的nagios源码包所在位置

tar zxvf nagios-3.2.2.tar.gz                            #解压

cd nagios-3.2.2    

注意下面–with-httpd-conf 的路径,取决与你apache的,如果是yum安装的apache,则路径为:

/configure –with-command-group=nagios –with-httpd-conf=/etc/httpd/conf/extra/

##如果没有报错,就进行一下步骤

make all

make install

make install-init   

make install-config

make install-commandmode
             #安装完成没有报错开始以下配置

vim  /usr/local/nagios/etc/objects/contacts.cfg 

##修改nagiosadmin这行其中的邮件地址为你的email地址,以将报警邮件发到你的邮箱

make install-webconf

htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

##设置登陆web界面时HTTP验证的账号密码如果apache是用源码编译安装的话,该指令改为如下所示:

#/usr/local/apache/bin/htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

下面修改httpd.conf ,笔者是yum装的apache ,配置文件的路径为如下所示:

vim /etc/httpd/conf/httpd.conf

在空白地方添加一下两行

# nagios  default settings

Include conf/extra/nagios.conf

 

以上过程配置结束以后需要重新启动httpd:
# service httpd restart

 

 如果可以正常启动,下面就可以开始编译、安装nagios-plugins

nagios的所有监控工作都是通过插件完成的,因此,在启动nagios之前还需要为其安装官方提供的插件。

tar zxvf 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

 ##下面是一些配置

(1)把nagios添加为系统服务并将之加入到自动启动服务队列:
chkconfig –add nagios
 chkconfig nagios on

(2)检查其主配置文件的语法是否正确:
 /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

(3)如果上面的语法检查没有问题,接下来就可以正式启动nagios服务了:
service nagios start

(4)配置selinux
如果您的系统开启了selinux服务,则默认为拒绝nagios web cgi程序的运行。您可以通过下面的命令来检查您的系统是否开启了selinux:
getenforce

如果上面命令的结果显示开启了selinux服务,您可以通过下面的命令暂时性的将其关闭:
setenforce 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认证帐号和密码。

注意:为了nagios系统的安全,建议您使用信息摘要强认证模式(如MD5),强制使用web的TSL/SSL安全通讯模式,并且通过访问控制列表设定能访问nagios的web界面的客户端地址。
登录后看到以下画面则表示成功安装。
 

 
##说明##
3.2.2版本的nagios有个bug .安装完在/usr/local/nagios/sbin目录下没有原来的statusmap.cgi执行脚本
点击左边的current status 中的Map会显示找不到页面,解决方法只能从老版本中拷贝一个statusmap.cgi到/usr/local/nagios/sbin目录下了,并赋予执行权限。
 
下面编译安装NDOUtils,NDOUtils则用来将Nagios的配置信息和各event产生的数据存入数据库,以实现这些数据的快速检索和处理。
一、解压、编译、安装、
 tar zxf ndoutils-1.4b9.tar.gz
 cd ndoutils-1.4b9
./configure –enable-mysql –with-mysql-lib=/usr/lib/mysql –with-mysql-inc=/usr/include/mysql  –disable-pgsql
make
cp -v src/{ndomod-3x.o,ndo2db-3x,file2sock,log2ndo}  /usr/local/nagios/bin
##以上复制的文件中前两项是版本相关的,即如果您的nagios主版本号是2系列,则需要拷贝名为ndomod-2x.o和ndo2db-2x的两个文件。后两项是通用文件,无论哪个版本都需要复制。
二、为NDOUtils创建数据库

 mysql -uroot -p
mysql> create database ndodb;
mysql> GRANT ALL PRIVILEGES ON ndodb.* TO ndouser@localhost IDENTIFIED BY ’123456′;
mysql> flush privileges;
下面两条命令用来生成ndoutils所需要的数据库表等,这些表默认以“nagios_”为前缀;install脚本命令必须在db子目录内执行:
 cd db
./installdb -u ndouser -p 123456 -h localhost -d ndodb
其中各选项的意义如下:
-u用来指定导入时所用的mysql用户帐号
-p表示前面mysql用户的密码
-h表示mysql服务器地址,如果是localhost,则可以省略
-d表示目标数据库
 
说明:如果与cacti整合的话,npc插件会在cacti的数据库自动生成ndoutils所需要表,这些表均以“npc_”为前缀。后面讲到整合的文章中会继续对些做出说明。
三、复制、编辑配置文件
 
 cd ..
cp -v config/{ndo2db.cfg-sample’,ndomod.cfg-sample’} /usr/local/nagios/etc
mv /usr/local/nagios/etc/ndo2db.cfg-sample /usr/local/nagios/etc/ndo2db.cfg
mv /usr/local/nagios/etc/ndomod.cfg-sample /usr/local/nagios/etc/ndomod.cfg
chmod 644 /usr/local/nagios/etc/ndo*
chown nagios:nagios /usr/local/nagios/etc/*
chown nagios:nagios /usr/local/nagios/bin/*

注:以上config目录中的ndo2db.cfg和ndomod.cfg在ndoutils-1.4b9中是以ndo2db.cfg-sample和 ndomod.cfg-sample命名的,如果您使用的是这个版本的ndoutils,请在复制时做出如上相应的修改;
 vim /usr/local/nagios/etc/nagios.cfg
在文件中添加:
broker_module=/usr/local/nagios/bin/ndomod-3x.o config_file=/usr/local/nagios/etc/ndomod.cfg
 
此外,请确保您的/usr/local/nagios/etc/nagios.cfg中有如下行出现,否则,请自行添加:
event_broker_options=-1                //为Nagios开启event broker
 
四、编辑ndo2db守护进程和ndomod的配置文件
 
 vim /usr/local/nagios/etc/ndo2db.cfg
socket_type=tcp
db_servertype=mysql
db_host=localhost
db_port=3306

db_name=ndodb

db_prefix=nagios_
db_user=ndouser
db_pass=123456
 
说明:
i) 以上"db_"开头的选项用来指定连接数据库的属性;
ii)其默认用来接收数据的方式为Unix域套接字,这里修改成了TCP套接字;同时,ndomod.cfg配置文件中指定的输出方式也应该做相应的修改;
 
接下来我们去编辑ndomod的配置文件,为其指定数据的输出方式和输出目标主机:
 vim /usr/local/nagios/etc/ndomod.cfg
output_type=tcpsocket
output=127.0.0.1
 
五、启动ndo2db守护进程
 
 /usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg
 
建议此时查看系统日志(/var/log/messages)中是否有错误出现。
 
如果此时Nagios进程已启动,则需要停止并重新启动nagios:
# killall -SIGHUP nagios
# rm -f /usr/local/nagios/var/nagios.lock
# /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
可进入nagios的web管理页面查看log,如果出现以下字样,则表示正常运行。
 

 
说明:
i)此处停止Nagios必须通过向Nagios发送SIGHUP信号的方式进行;
ii)建议此时查看nagios日志文件中是否表明ndomod的模块加载是否正常,以及其是否能正常连接到data sink;查看日志,可以使用如下命令实现:# tail -30 /usr/local/nagios/var/nagios.log
 
排错信息:
i)  如果ndomod模块没能正常加载的话,建议重新检查nagios的配置文件中是否添加了所需的broker module条目;
ii) 同时,如果ndomod没有正常连接到data sin,建议查看ndo2db.cfg文件中关于mysql连接项目的指定是否正确;
iii)确认一下在编译NDOUtils时是否指定了关于mysql库文件位置的选项;

 

好了 nagios已经成功安装,下面编译、安装ntop

 

在官网找了副图片,简单的介绍了ntop的工作流程。

 

图片右边显示的是目前官方最新的ntop版本 为4.0.1下载之

1、下载安装所需要的环境:

需要事先下载并安装GeoIP和GetIP-devel两个rpm包;

yum -y –nogpgcheck localinstall GeoIP-*.el5.i386.rpm

接着是ettercap相关的rpm包(ettercap,ettercap-common,需要下载,这里没指定具体的版本号,你可以根据自己的实际情况进行安装):

yum -y –nogpgcheck localinstall ettercap-*.rpm

而后安装开发环境,尤其是以下几个rpm包:

yum install libpcap libpcap-devel gdbm gdbm-devel zlib zlib-devel

2、安装ntop

 useradd -M -s /sbin/nologin -r ntop

 tar zxvf ntop-4.0.1.tar.gz

 cd ntop-4.0.1

 ./autogen.sh

make

make install

chown -R ntop:ntop /usr/local/share/ntop

chown -R ntop:root /usr/local/var/ntop


3、配置并启动ntop

首先为ntop的admin用户设置密码:

ntop -A

接下来启动ntop:

ntop -i eth0 -d -L -u ntop

使之开机自动启动:

echo ‘ntop -i eth0 -d -L -u ntop &> /dev/null’ >> /etc/rc.d/rc.local

用web页面访问http://yourIP:3000  如果出现以下换面 则表示运行正常

 

 

★★下面是对这三者的整合.把nagios和ntop 整合到cacti中

先让cacti支持插件功能

 笔者在上文所安装的cacti版本为0.8.7g,支持插件的补丁就选用cacti-plugin-0.8.7g-PA-v2.8.tar.gz

下载后进行解压缩

tar zxvf cacti-plugin-0.8.7g-PA-v2.8.tar.gz

cd cacti-plugin-arch

cp -R * /var/www/html/cacti/

mysql -uroot -p cactidb <pa.sql

此处修改原作者一个错误:这个补丁应在cacti目录下打才管用,所以应该先切换目录:

cd  /var/www/html/cacti/

patch -p1 -N  < cacti-plugin-0.8.7g-PA-v2.8.diff

打完补丁后图片有时不会显示,这是需要修改下/var/www/html/cacti/include目录下的config.php文件

修改$url_path后面的值:

$url_path = "/cacti/";

修改完成直接web页面登陆,http://yourIP/cacti

选择左下的User Managenment 之后点击admin

在其中最后一项打钩,并保存

 

好了,现在cacti就支持其他插件功能了,下面把ntop和nagios加进去就可以了

先整合ntop.

  1. 首先去下载cacti的ntop插件,而后解压至cacti的插件目录:  
  2. # tar zxvf ntop-0.1.tar.gz -C /var/www/html/cacti/plugins/  
  3.  
  4. 接着配置cacti的主配置文件,启用此插件:  
  5. # vim  /var/www/html/cacti/include/config.php  
  6. 添加如下内容:  
  7. $plugins[] = 'ntop';  
  8.  
  9. 接下来到cacti的控制台中"settings"中配置此插件,将其指向实际的ntop服务器所在的URL;然后再到cacti控制台的"user Management"中的admin用户中启用此插件即可。  

 设置完成后如图所示:

发现上面是不是多了一个标签Ntop,有些版本web浏览器不会显示里面内容,笔者建议用firefox,效果图如下。

 下面是对nagios与cacti的整合

安装 Nagios Plugin for Cacti(NPC)插件 http://trac2.assembla.com/npc

作用:将nagios的数据通过ndo2db导入到mysql数据库,然后cacti读取数据库信息将nagios的结果通过NPC展示出来。
 

先下载npc源码包 ,官网不知为何不让下载了,直接google搜索npc-2.0.4.tar.gz,有个论坛有下载的。

下载完成后来到所npc-2.0.4.tar.gz 所在的目录

tar zxvf npc-2.0.4.tar.gz

mv npc /var/www/html/cacti/plugins/

vi /var/www/html/cacti/include/config.php      ##   在该文件中的"$plugins = array()"后增加如下一行内容

$plugins[] = ‘npc’;

tar zxvf json-1.2.1.tgz &&  cd json-1.2.1               #npc需要json来支持某些功能

/usr/bin/phpize    如果此处没有phpize命令,则用yum安装php-devel即可

./configure

make 

make install

之后用web测试 ,index.php(前文有测试方法)如果有图片所示的这一项,则表示正常json正常安装

## 如果phpize 没有此指令,请yum安装php-devel包

说 明:如果您是使用RPM方式安装php,那么一些动态的扩展是自动被加入的,这些动态扩展 在:/etc/php.d/*.ini这些文件,这里确认一下json.ini文件有这一行内容:extension=json.so;同时还要确认一下 /usr/lib/php/modules目录下有没有json.so文件,如果没有的话,要手动复制一份到这个目录,这样才能确保json.ini起作 用。

全部装完在cacti中设置如图所示

 

这里Nagios Command File Path 一空应该填:/usr/local/nagios/var/rw/nagios.cmd

npc的安装:先将相应插件文件放到plugin,然后需要:

vi /var/www/html/cacti/include/config.php     ## 在该文件中的"$plugins = array()"后增加如下一行内容

//$plugins[] = ‘npc’; 

这样先注释掉,才可以安装上npc的.否则,不能在web页面的插件管理页面看到npc插件.


应当将ndo2db.cfg里面的

db_name=cacti;

db_prefix=npc_;

 

 转载请注明出处: http://freeze.blog.51cto.com/

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics