生产环境开源监控系统整合Nagios+Cacti+Nconf



生产环境开源监控系统整合Nagios+Cacti+Nconf

 

公司要换监控系统了,以前采用的是Nagios+Centreon这两款软件的整合然后做出来的,但是Centreon的画图是在令人感觉惨不忍睹,而且统计出来的数据,也不是非常准确和人性化……所以,在研究了之后我们决定换监控系统,而最终的方案就是使用Naigos来捕获数据和报警,使用Cacti来画图,使用Nconf来配置多台主机,方便管理。

 

那么ok,先说一下我们的环境平台。

监控机采用的是R410的服务器,8G内存和16cpu,采用CentOS 5.5x86_64的操作系统。好的,配置好网络之后,我们开始!

注意:这里默认关闭了Selinux(生产环境也是关的,放心吧。)以及关闭了iptables。如有开启的需要,请根据网络酌情添加相关内容。

 

准备环境:

为以后的配置搭建安装环境

1.  yum install -y http* 

2.  yum install -y mysql* 

3.  yum install -y php-* 

4.  yum install -y net-snmp* 

5.  yum install -y httpd gcc glibc glibc-common gd gd-devel php php-gd ntp 

一:Nagios环境的搭建

1.安装nagios

1.  wget http://sourceforge.net/projects/nagios/files/nagios-3.x/nagios-3.3.1/nagios-3.3.1.tar.gz 

2.  tar zxf nagios-3.3.1.tar.gz 

3.  cd nagios 

4.  ./configure --prefix=/var/www/html/nagios 

5.  make all 

6.  useradd nagios 

7.  make install && make install-init && make install-commandmode && make install-config && make install-webconf 

 

2.增加nagios登陆认证文件,一定要用默认的nagiosadmin作为用户,否则需要修改其他文件。 

1.  htpasswd -c /var/www/html/nagios/etc/htpasswd.users nagiosadmin  

3. 安装插件:

1.  wget http://sourceforge.net/projects/nagiosplug/files/nagiosplug/1.4.15/nagios-plugins-1.4.15.tar.gz 

2.  tar -zvxf nagios-plugins-1.4.15.tar.gz 

3.  cd nagios-plugins-1.4.15 

4.  ./configure --prefix=/var/www/html/nagios/ 

5.  make 

6.  make install  

4.将运行Apache的用户添加到nagios组里,这样Apache才有权限读取文件

1.  usermod -G nagios apache    ##apache用户加到nagios组。 

5.阶段测试 

1.  chown nagios.nagios /var/www/html/nagios/ -R 

2.  service httpd restart  

3.  chkconfig httpd on   

4.  /etc/init.d/nagios start 

 

二:cacti环境的搭建

1.rrdtool的安装,这里需要安装的是:rrdtool,rrdtool-devel.rrdtool-perl,rrdtool-php,我用的rrdtools的版本是1.4.4.1_x86_64

在这里没有提供rrdtool的工具,需要下载可以去这里下载上述的3个软件包

rrdtoolrrdtool-devel的地址:http://packages.express.org/rrdtool/

rrdtool-php的地址:http://pkgs.org/download/rrdtool-php

 

注意,rrdtool的组件和附加组件版本尽量一致,而由于rrdtool-php这个包非常稀有,所以,尽量请以rrdtool-php的版本来决定rrdtool以及rrdtool-devel的版本。还有一定要对应环境,别安装成了fedora的版本了==

下载完成后,本地yum安装 

1.  yum localinstall -y --nogpgcheck rrdtool-* 

2.  service mysqld start 

2.配置snmp 

1.  vim /etc/snmp/snmpd.conf 

2.        修改3  127.0.0.1  all、启用项(修改的内容详见我Cacti的安装文档,上面有非常详细的内容介绍) 

3.  service snmpd restart 

http://img1.51cto.com/attachment/201109/153200681.jpg 

3.安装cacti

1.  wget http://www.cacti.net/downloads/cacti-0.8.7h.tar.gz 

2.  tar zxvf cacti-0.8.7h.tar.gz 

3.  mv cacti-0.8.7h /var/www/html/cacti 

4.创建cacti数据库 

1.  mysql> create database cacti; 

2.  mysql> grant all on cacti.* to 'cacti'@'localhost' identified by 'cacti'; 

3.  mysql> flush privileges; 

5.cacti的表内容导入创建的数据库

 

1.  cd /var/www/html/cacti 

2.  mysql -ucacti -pcacti cacti < /var/www/html/cacti/cacti.sql 

6.分别编辑两个.php文件,以适应环境,修改内容相同。

1.  vim /var/www/html/cacti/include/config.php 

2.  vim /var/www/html/cacti/include/global.php  

$database_default = "cacti";       //默认数据库名

$database_hostname = "localhost";         //主机名

$database_username = "cacti";              //登陆数据库用户名

$database_password = "cacti";              //登陆数据库密码

$database_port = "3306";

 

 

1.  useradd –r –M cacti 

2.  chown –R cacti /var/www/html/cacti/rra/ 

3.  chown –R cacti /var/www/html/cacti/log/ 

7.cacti用户下创建计划任务以画图

 

1.  su cacti 

2.  crontab –e 

3.         */5 * * * * php /var/www/html/cacti/poller.php > /dev/null 2>&1 

4.  php /var/www/html/cacti/poller.php > /dev/null 2>&1 

5.  exit  

8.web页面启动cacti,安装,并查看图形化界面

 

三:整合NagiosCacti

1.下载并安装ndoutils 

1.  wget http://sourceforge.net/projects/nagios/files/ndoutils-1.x/ndoutils-1.4b9/ndoutils-1.4b9.tar.gz/download 

2.  tar zxvf ndoutils-1.4b9.tar.gz  

3.  cd ndoutils-1.4b9 

4.  ./configure --prefix=/var/www/html/nagios --enable-mysql --disable-pgsql --with-mysql-inc=/usr/include/mysql --with-mysql-lib=/usr/lib/mysql 

5.  make 

2.准备配置文件

1.  cp -v src/{ndomod-3x.o,ndo2db-3x,file2sock,log2ndo} /var/www/html/nagios/bin 

2.  cd db 

3.  ./installdb -ucacti -pcacti -hlocalhost -d cacti 

4.  cd .. 

5.  cp -v config/{ndo2db.cfg-sample,ndomod.cfg-sample} /var/www/html/nagios/etc 

6.  mv /var/www/html/nagios/etc/ndo2db.cfg-sample /var/www/html/nagios/etc/ndo2db.cfg 

7.  mv /var/www/html/nagios/etc/ndomod.cfg-sample /var/www/html/nagios/etc/ndomod.cfg 

8.  chmod 644 /var/www/html/nagios/etc/ndo* 

9.  chown nagios:nagios /var/www/html/nagios/etc/* 

10. chown nagios:nagios /var/www/html/nagios/bin/* 

3.修改nagios.cfg配置文件以适应当前环境

1.  vim /var/www/html/nagios/etc/nagios.cfg 

2.     在文件中添加: 

3.       broker_module=/var/www/html/nagios/bin/ndomod-3x.o config_file=/var/www/html/nagios/etc/ndomod.cfg 

4.     检查  

5.       event_broker_options=-1     ## Nagios开启event broker 

4.修改ndo2db.cfg以适应当前环境

1.  vim /var/www/html/nagios/etc/ndo2db.cfg 

2.   # 确保下列内容为唯一项 

3.       socket_type=tcp 

4.       db_servertype=mysql 

5.       db_host=localhost 

6.       db_port=3306 

7.    

8.       db_name=cacti 

9.    

10.      db_prefix=nagios_ 

11.      db_user=cacti 

12.      db_pass=cacti 

5.修改ndomod.cfg以适应当前环境 

1.  vim /var/www/html/nagios/etc/ndomod.cfg 

2.     确保下列项的唯一内容为 

3.      output_type=tcpsocket 

4.      output=127.0.0.1 

6.ndo2db添加启动进程

1.  cp ./daemon-init /etc/init.d/ndo2db 

2.  vim /etc/init.d/ndo2db

3.     检查里面的路径确保不会出现“//",并将Ndo2dbBin修改成下面的值: 

4.       Ndo2dbBin=/var/www/html/nagios/bin/ndo2db-3x 

5.  chmod +x /etc/init.d/ndo2db  

7.启动守护进程与nagios 

1.  service ndo2db start 

2.  tail -20 /var/log/messages    ## 查看其中是否有错误出现。如无报错请继续 

3.  service nagios start

四:安装ncp,以在Cacti中展现Nagios

1.先安装cacti扩展模块

1.  wget http://www.cacti.net/downloads/pia/cacti-plugin-0.8.7h-PA-v3.0.tar.gz 

2.  tar xvf cacti-plugin-0.8.7h-PA-v3.0.tar.gz  

3.  cp -R cacti-plugin-arch/* /var/www/html/cacti/ 

4.  cd /var/www/html/cacti/ 

5.  mysql -ucacti -pcacti cacti < pa.sql  

6.  patch -p1 -N < cacti-plugin-0.8.7h-PA-v3.0.diff   

7.   ## cacti配置文件打补丁的时候注意在为include/config.php打补丁的时候有可能它将 include/config.php.dist给打补丁了,我们只需要手动加入下面的内容即可。 

1.  vim include/config.php 

2.     # 修改(或新加入) 

3.      $url_path = "/cacti/"; 

web进入cacti,启用cacti plugin扩展

 

2.安装npc

1.  tar zxvf npc-2.0.4.tar.gz 

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

3.  vim /var/www/html/cacti/include/config.php 

4.      加入: 

5.       $plugins[] = 'npc'; 

3.安装 npc支持:json

1.  wget http://pkgs.fedoraproject.org/repo/pkgs/php-pecl-json/json-1.2.1.tgz/d8904d2f004ceec85eeacf524cd25539/json-1.2.1.tgz 

2.  tar zxvf json-1.2.1.tgz  

3.  cd json-1.2.1 

4.  phpize   ## 如果发现没有Phpize文件,则是因为php-devel包没有安装导致的  

5.  ./configure  

6.  make && make install 

7.    

8.  php -i | grep php.ini  ## 查看是否有导入信息 

4.打开php.ini文件添加对json的支持

1.  vim /etc/php.ini 

2.     # 添加 

3.      extension=json.so 

5.apache添加php支持。

1.  vim /etc/httpd/conf/httpd.conf  

2.     添加一行: 

3.       AddType application/x-httpd-php .php .phtml 

4.     修改原DirectoryIndex内容为: 

5.       DirectoryIndex index.html index.html.var index.php 

6.   

7.  usermod -G cacti apache 

8.  service httpd restart    ## 重启apache以让php生效 

9.  php -m   ## 查看是否有json被加载 

6.修改配置文件以让npc读取到新的数据。

1.  vim /var/www/html/nagios/etc/ndo2db.cfg 

2.       db_prefix=npc_ 

6.1

Web进入Cacti,确保正确使用npc选项。

 

6.2 修改mysql中的表结构:

1.  ./mysql -ucacti -p cacti 

2.  mysql> use cacti;

3.  mysql> alter table npc_eventhandlers add long_output TEXT NOT NULL default '' after output; 

4.  mysql> alter table npc_hostchecks add long_output TEXT NOT NULL default '' after output; 

5.  mysql> alter table npc_hoststatus add long_output TEXT NOT NULL default '' after output; 

6.  mysql> alter table npc_notifications add long_output TEXT NOT NULL default '' after output; 

7.  mysql> alter table npc_servicechecks add long_output TEXT NOT NULL default '' after output; 

8.  mysql> alter table npc_servicestatus add long_output TEXT NOT NULL default '' after output; 

9.  mysql> alter table npc_statehistory add long_output TEXT NOT NULL default '' after output; 

10. mysql> alter table npc_systemcommands add long_output TEXT NOT NULL default '' after output; 

7.重启ndo2db进程,重新加载配置文件重启nagios服务。

1.  service ndo2db restart 

2.  service nagios restart 

8.Web上配置NPC以使之正常读取工作。

Settings->npc中 ,勾上RemoteCommands

Nagios Command File Path=/var/www/html/nagios/var/rw/nagios.cmd

Nagios URL=你的地址(http://ocalhost/nagios/)

接下来刷新npc就可以看到数据啦:

 

 

五:Nconf的安装与配置

1.nconf的准备工作

1.  进入mysql数据库  

2.  mysql> create database nconf;   

3.  创建nconf数据库  

4.  mysql> grant all privileges on nconf.* to nconf@localhost identified by 'nconf';  

5.  创建nconf用户并赋权    

6.  mysql> flush privileges;    

7.  刷新特权表  

8.  mysql> quit  

2.安装nconf

1.  wget http://sourceforge.net/projects/nconf/files/nconf/1.2.6-0/nconf-1.2.6-0.tgz/download 

2.  tar -zxf nconf-1.2.6-0.tgz -C /var/www/html/  

3.  cd /var/www/html/nconf  

4.  chown -R apache.apache config/ temp/ static_cfg/ output/  

3.进入Web页面在web页面按照安装提示一步步安装

 

4.使用刚才创建的nconf数据库和nconf数据库用户/密码

http://foreveryan.blog.51cto.com/

5.成功连接mysql数据库,之后一切保持默认,直到下面的,设置nconf管理员密码,此时默认登录用户为admin

http://img1.51cto.com/attachment/201109/232354830.jpg

6.之后,网页安装完成。

1.  rm -rf INSTALL INSTALL.php  UPDATE UPDATE.php   

2.   删除安装所需的初始化文件  

3.  ln -s /var/www/html/nagios/bin/nagios bin/nagios   

4.  chmod +x /var/www/html/nconf/bin/generate_config.pl   

5.  chown -R apache.apache  bin  

6.  chmod +x /var/www/html/nagios/bin/nagios 

7.  chmod +x /var/www/html/nconf/ADD-ONS/deploy_local.sh    

8.  vim /var/www/html/nconf/ADD-ONS/deploy_local.sh  

9.       修改里面的Nagios路径为/var/www/html/nagios/etc/    

7.重新刷新页面,输入admin/您设置的密码,进入nconf页面

 

8.点击Generate Nagiosconfig尝试生成配置文件,以测试是否与nagios成功关联

 

9.最后的设置

web页面对监控服务和主机配置完毕,点击Generate Nagiosconfig

deploy_local.shnconf自带配置文件导入脚本

1.  /var/www/html/nconf/ADD-ONS/deploy_local.sh 

手动执行此脚本,将在/var/www/html/nagios/etc下生成两目录Default_collectorglobal

修改nagios主配置文件

1.  vim /var/www/html/nagios/etc/nagios.cfg  

2.     将其中cfg_file=*******字段全部注释 ,并加入 

3.       cfg_dir=/var/www/html/nagios/etc/Default_collector 

4.       cfg_dir=/var/www/html/nagios/etc/global 

5.  service nagios reload 

6.     重载nagios配置文件使之生效 


六:错误总结:

1.启动ndo2db发现日志报错:

ndomod: Could not open data sink! I'll keep trying, but some output may get lost...

解决办法:

检查 /nagios/etc目录的权限是否足够的大

确保/var/www/html/nagios/etc/nagios.cfg中有如下行出现,否则,请自行添加:

event_broker_options=-1 

检查ndo2db.cfg中的配置,确保使用tcp连接

socket_type=tcp

检查ndomod.cfg中的配置,确保使用tcp套接字

output_type=tcpsocket

 

2.npc安装过程中进行表操作时报错

mysql> alter table npc_eventhandlers add long_output TEXT NOT NULL default '' after output; 
ERROR 1146 (42S02): Table 'cacti.npc_eventhandlers' doesn't exist

解决办法:要先在cacti页面下正确的启用npc插件,正确的启用~一个向上的箭头和一个向右的箭头都要开启才行~

3.在应用nconf的时候报错

nconf --> Generate Nagios config --> 报错了。

Error accessing or executing Nagios / Icinga binary '/var/www/html/nconf/bin/nagios'. 
Cannot run the mandatory syntax check.

解决办法:

检查你的/var/www/html/nconf/bin/nagios这个文件所链接的那个原始文件的权限,确保是777或者775

4....当然还没有发现错误,如果有,将会继续补充,欢迎网友在安装部署的过程中发现错误将错误积极交流,我将一一添加……

七:最后的样式

http://img1.51cto.com/attachment/201111/150502669.png

http://img1.51cto.com/attachment/201111/152325109.png

 

 

本文出自 For The Dream 博客,出处http://foreveryan.blog.51cto.com/3508502/727866

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值