手把手实现企业级开源监控软件cacti+nagios+ntop整合
Cacti的实例应用
1)网络设置
2)主机系统 (1)网络接口流量(进与出的带宽) (2)监控CPU的负载、内存等等 (3)监控磁盘的空间、进程数等等 …………………………………..等等 3)cacti常见的监测对象
|
1)
监控网络服务(SMTP
、POP3
、HTTP
、NNTP
、PING
等)
2 )监控主机资源(处理器负荷、磁盘利用率等) 3 )简单地插件设计使得用户可以方便地扩展自己服务的检测方法 4 )并行服务检查机制 5 )具备定义网络分层结构的能力,用"parent" 主机定义来表达网络主机间的关系,这种关系可被用来发现和明晰主机宕机或不可达状态 6 )当服务或主机问题产生与解决时将告警发送给联系人(通过EMail 、短信、用户定义方式)
可以通过飞信,等方式实现时,既可传递给管理员,可高效的保证服务器的维护。
7 )具备定义事件句柄功能,它可以在主机或服务的事件发生时获取更多问题定位 8 )自动的日志回滚 9 )可以支持并实现对主机的冗余监控 10 )可选的WEB 界面用于查看当前的网络状态、通知和故障历史、日志文件等
|
(1)NRPE:用来在监控的远程Linux/Unix主机上执行脚本插件以实现对这些主机资源的监控
(2)NSCA:用来让 被监控的远程Linux/Unix主机主动将监控信息发送给Nagios服务器(这在冗余监控模式中特别要用到)
(3)NSClient++:用来监控 Windows主机时安装在Windows主机上的组件
(4)NDOUtils:则用来将Nagios的配置信息和各event产生的数据存入数据库,以实现 这些数据的快速检索和处理
这四个ADDON(附件)中,NRPE和NSClient++工作于客户端 ,NDOUtils工作于服务器端,而NSCA则需要同时安装在服务器端和客户端
NTOP提供以下一些功能:
① 自动从网络中识别有用的信息;
② 将截获的数据包转换成易于识别的格式;
③ 对网络环境中的通信失败进行分析;
④ 探测网络环境下的通信瓶颈;
⑤ 记录网络通信时间和过程;
⑥ 自动识别客户端正在使用的操作系统;
⑦ 可以在命令行和Web两种方式下运行。
|
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
|
登录数据库
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;
|
(4)配置SNMP
在net-snmp的主配置文件/etc/snmp/snmpd.conf中,默认的community为public,建议将public修改为您需的密码项,笔者在此就不做修改了,使用默认密码public
接着,启动snmp进程
service snmpd restart #如果修改过snmpd.conf 则需要重启服务
|
首先要去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配置画面
如果看到以下画面,则可以进行之后的配置
点击下一步。
如果上面全是[FOUND],
则可以点击Finish 完成,中间的路径可能与图片不同。
Finish后就会出现登陆画面
用户名admin 密码admin 即可登陆 (第一次登陆后会强行让修改密码)
进入后点击graphs 会显示流量图
如果不出现图片执行以下命令让其手动绘图即可.
su - cactier
php /var/www/html/cacti/poller.php > /dev/null 2>&1
exit
数据部分启动较慢,请耐心等待,如显示如上图片数据,则成功安装配置。
##cacti的具体使用笔者不做过多介绍,有意者可去官方网站阅读官方文档。
|
Nagios通常由一个主程序(Nagios) 、一个插件程序(Nagios-plugins) 和四个可选的ADDON(NRPE、NSCA、 NSClient++和NDOUtils) 组成。Nagios的监控工作都是通过插件实现的,因此,Nagios和Nagios-plugins是服务器端工作所必须的组件
下面在服务端安装Nagios和Nagios-plugins.
先下载源码包,目前官方的最新版本如下图 插件版本 下载之.笔者放在了 /root/nagios目录下 nagios 需要一些基础支持套件才能运行,如apache,gcc,glibc,gd库等。 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 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 vim /etc/httpd/conf/httpd.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版本 为4.0.1下载之 1、下载安装所需要的环境:
make 3、配置并启动ntop
用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.
- 首先去下载cacti的ntop插件,而后解压至cacti的插件目录:
- # tar zxvf ntop-0.1.tar.gz -C /var/www/html/cacti/plugins/
- 接着配置cacti的主配置文件,启用此插件:
- # vim /var/www/html/cacti/include/config.php
- 添加如下内容:
- $plugins[] = 'ntop';
- 接下来到cacti的控制台中"settings"中配置此插件,将其指向实际的ntop服务器所在的URL;然后再到cacti控制台的"user Management"中的admin用户中启用此插件即可。
设置完成后如图所示:
发现上面是不是多了一个标签Ntop,有些版本web浏览器不会显示里面内容,笔者建议用firefox,效果图如下。
下面是对nagios与cacti的整合
安装
Nagios Plugin for Cacti(NPC)插件
(
http://trac2.assembla.com/npc
)
先下载npc源码包 ,官网不知为何不让下载了,直接google搜索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()"后增加如下一行内容 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()"后增加如下一行内容 |
转载请注明出处: http://freeze.blog.51cto.com/
相关推荐
做一名运维工程师,监控恐怕是日常生活中必不可少的活了,在企业中的监控,大多是用开源软件来实现的,(为什么要用开源?省钱呗..呵呵) 而且开源软件也有着非常优秀的表现,其中著名的有cacti,nagios,ntop,Ganglia...
"企业级开源监控软件cacti+nagios+ntop整合" cacti 是一款基于 PHP 语言的开源网络监控软件,能够对主机负载、网络流量等信息进行监控。cacti 的出现是为了解决 MRTG 的一些缺点,如使用文本式的数据库、数据不能...
通过将Cacti、Nagios和Ntop整合,企业可以构建一套全面的网络监控体系,覆盖从网络设备性能、服务器资源到应用程序状态的全方位监控,确保及时发现和处理潜在问题,提高IT基础设施的稳定性和可用性。
### 实现企业级开源监控软件cacti+nagios+ntop整合 #### Cacti 简介 Cacti是一款开源的网络流量监控工具,它基于Web界面,使用PHP编写,并依赖于RRDTool来进行数据存储和图表绘制。Cacti的主要特点在于其强大的...
### 实现企业级开源监控软件cacti+nagios+ntop整合的知识点 #### 一、Cacti概述 **Cacti** 是一款基于Web的网络流量监控工具,它利用 **RRDTool** 来存储和绘制图表。Cacti 的优势在于: - **数据管理**:Cacti ...
cacti、nagios和ntop的整合应用,可以为企业提供一个全面的监控解决方案。cacti负责图形化的性能数据展示,nagios关注服务和主机的可用性,ntop则侧重于网络流量的实时监控。这种组合可以确保企业对系统、网络和应用...
### 开源监控软件cacti+nagios整合详解 #### Cacti简介 **Cacti** 是一款基于Web的网络流量监控工具,主要用于收集、分析网络设备的性能数据,并生成图表供网络管理员查看。该工具是用PHP编写的,需要Apache Web...
### Linux企业级开源监控软件cacti、nagios及ntop整合 #### cacti:网络监控的强大工具 cacti是一款广泛应用于Linux环境下的网络监控系统,它基于Web前端,利用PHP作为主要编程语言,并依赖于MySQL数据库来存储...
### 企业级开源监控软件 cacti nagios ntop 整合 #### 一、Cacti 的简介 网络管理是系统管理员工作中不可或缺的一部分,尤其是针对主机负载、网络流量等关键指标的监控尤为重要。早期的开源网络管理软件中,MRTG ...
Nagios 和 Cacti 安装部署指南 Nagios 是一个开源的应用软件,用于监控系统和网络。它通常运行于一个主服务器上,这个服务器运行 Linux 或 Unix 操作系统。...Cacti+Nagios 完全攻略整合 Cacti 与 Nagios 安装部署。
使用网络监控工具cacti+nagios监控物流中心无线AP终端在线数目并实现AP掉线报警
Cacti和Nagios是两个著名的开源网络监控系统,它们在IT运维管理中起着至关重要的作用。Cacti主要用于网络流量监控和图形化展示,而Nagios则侧重于服务状态监控和报警通知。这里我们将深入探讨这两个工具的整合,以及...
### Cacti+Nagios构建网络监控平台知识点详解 #### 一、Cacti与Nagios概述 ##### 1.1 Cacti ...Cacti+Nagios组合方案因其高度的灵活性和可扩展性,在中小型企业网络监控领域中得到了广泛的应用。
Cacti+nagios详细版 超级详细,让你一步到位的完成安装配置
【Cacti与Nagios整合安装教程】 Cacti是一款基于Web的网络监控和图形绘制工具,主要用于网络流量监控。而Nagios则是一款强大的网络监控系统,它可以监控网络服务、主机、网络设备以及各种应用程序的状态。将两者...
Cacti+Nagios 完美部署 本文将详细介绍 Cacti 和 Nagios 的完美部署,包括 Cacti 和 RRDTool 的安装部署、Cacti 的架构图、Cacti 的工作原理图、Cacti 的优点和缺点等。 一、Cacti 和 RRDTool 的安装部署 Cacti ...
首先,Nagios是一款开源的企业级系统、网络和服务监控工具。它能够实时监控系统状态,如服务器的CPU负载、内存使用情况、网络服务(如HTTP、SMTP等)的运行状态,并在出现问题时及时发出警报。安装Nagios通常需要...