muugua 发表于 2015-11-22 15:36:43

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

公司要换监控系统了,以前采用的是Nagios+Centreon这两款软件的整合然后做出来的,但是Centreon的画图是在令人感觉惨不忍睹,而且统计出来的数据,也不是非常准确和人性化……所以,在研究了之后我们决定换监控系统,而最终的方案就是使用Naigos来捕获数据和报警,使用Cacti来画图,使用Nconf来配置多台主机,方便管理。
那么ok,先说一下我们的环境平台。
监控机采用的是R410的服务器,8G内存和16核cpu,采用CentOS 5.5 x86_64的操作系统。好的,配置好网络之后,我们开始!
注意:这里默认关闭了Selinux(生产环境也是关的,放心吧。)以及关闭了iptables。如有开启的需要,请根据网络酌情添加相关内容。
准备环境:
为以后的配置搭建安装环境

[*]yum install -y http*
[*]yum install -y mysql*
[*]yum install -y php-*
[*]yum install -y net-snmp*
[*]yum install -y httpd gcc glibc glibc-common gd gd-devel php php-gd ntp

一:Nagios环境的搭建
1.安装nagios

[*]wget http://sourceforge.net/projects/nagios/files/nagios-3.x/nagios-3.3.1/nagios-3.3.1.tar.gz
[*]tar zxf nagios-3.3.1.tar.gz
[*]cd nagios
[*]./configure --prefix=/var/www/html/nagios
[*]make all
[*]useradd nagios
[*]make install && make install-init && make install-commandmode && make install-config && make install-webconf

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

[*]htpasswd -c /var/www/html/nagios/etc/htpasswd.users nagiosadmin

3. 安装插件:

[*]wget http://sourceforge.net/projects/nagiosplug/files/nagiosplug/1.4.15/nagios-plugins-1.4.15.tar.gz
[*]tar -zvxf nagios-plugins-1.4.15.tar.gz
[*]cd nagios-plugins-1.4.15
[*]./configure --prefix=/var/www/html/nagios/
[*]make
[*]make install

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

[*]usermod -G nagios apache    ##将apache用户加到nagios组。

5.阶段测试

[*]chown nagios.nagios /var/www/html/nagios/ -R
[*]service httpd restart
[*]chkconfig httpd on
[*]/etc/init.d/nagios start

二:cacti环境的搭建
1.rrdtool的安装,这里需要安装的是:rrdtool,rrdtool-devel.rrdtool-perl,rrdtool-php,我用的rrdtools的版本是1.4.4.1_x86_64。  在这里没有提供rrdtool的工具,需要下载可以去这里下载上述的3个软件包

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

下载完成后,本地yum安装

[*]yum localinstall -y --nogpgcheck rrdtool-*
[*]service mysqld start

2.配置snmp

[*]vim /etc/snmp/snmpd.conf
[*]      # 修改3项127.0.0.1 、 all、启用项(修改的内容详见我Cacti的安装文档,上面有非常详细的内容介绍)
[*]service snmpd restart


3.安装cacti



[*]wget http://www.cacti.net/downloads/cacti-0.8.7h.tar.gz
[*]tar zxvf cacti-0.8.7h.tar.gz
[*]mv cacti-0.8.7h /var/www/html/cacti

4.创建cacti数据库

[*]mysql> create database cacti;
[*]mysql> grant all on cacti.* to 'cacti'@'localhost' identified by 'cacti';
[*]mysql> flush privileges;

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

[*]cd /var/www/html/cacti
[*]mysql -ucacti -pcacti cacti < /var/www/html/cacti/cacti.sql

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

[*]vim /var/www/html/cacti/include/config.php
[*]vim /var/www/html/cacti/include/global.php

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

$database_hostname = &quot;localhost&quot;;         //主机名
$database_username = &quot;cacti&quot;;            //登陆数据库用户名
$database_password = &quot;cacti&quot;;            //登陆数据库密码
$database_port = &quot;3306&quot;;


[*]useradd –r –M cacti
[*]chown –R cacti /var/www/html/cacti/rra/
[*]chown –R cacti /var/www/html/cacti/log/

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

[*]su cacti
[*]crontab –e
[*]       */5 * * * * php /var/www/html/cacti/poller.php > /dev/null 2>&1
[*]php /var/www/html/cacti/poller.php > /dev/null 2>&1
[*]exit

8.从web页面启动cacti,安装,并查看图形化界面
三:整合Nagios与Cacti
1.下载并安装ndoutils

[*]wget http://sourceforge.net/projects/nagios/files/ndoutils-1.x/ndoutils-1.4b9/ndoutils-1.4b9.tar.gz/download
[*]tar zxvf ndoutils-1.4b9.tar.gz
[*]cd ndoutils-1.4b9
[*]./configure --prefix=/var/www/html/nagios --enable-mysql --disable-pgsql --with-mysql-inc=/usr/include/mysql --with-mysql-lib=/usr/lib/mysql
[*]make

2.准备配置文件

[*]cp -v src/{ndomod-3x.o,ndo2db-3x,file2sock,log2ndo} /var/www/html/nagios/bin
[*]cd db
[*]./installdb -ucacti -pcacti -hlocalhost -d cacti
[*]cd ..
[*]cp -v config/{ndo2db.cfg-sample,ndomod.cfg-sample} /var/www/html/nagios/etc
[*]mv /var/www/html/nagios/etc/ndo2db.cfg-sample /var/www/html/nagios/etc/ndo2db.cfg
[*]mv /var/www/html/nagios/etc/ndomod.cfg-sample /var/www/html/nagios/etc/ndomod.cfg
[*]chmod 644 /var/www/html/nagios/etc/ndo*
[*]chown nagios:nagios /var/www/html/nagios/etc/*
[*]chown nagios:nagios /var/www/html/nagios/bin/*

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

[*]vim /var/www/html/nagios/etc/nagios.cfg
[*]   # 在文件中添加:
[*]   broker_module=/var/www/html/nagios/bin/ndomod-3x.o config_file=/var/www/html/nagios/etc/ndomod.cfg
[*]   # 检查
[*]   event_broker_options=-1   ## 为Nagios开启event broker

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

[*]vim /var/www/html/nagios/etc/ndo2db.cfg
[*] # 确保下列内容为唯一项
[*]   socket_type=tcp
[*]   db_servertype=mysql
[*]   db_host=localhost
[*]   db_port=3306
[*]
[*]   db_name=cacti
[*]
[*]   db_prefix=nagios_
[*]   db_user=cacti
[*]   db_pass=cacti

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

[*]vim /var/www/html/nagios/etc/ndomod.cfg
[*]   # 确保下列项的唯一内容为
[*]    output_type=tcpsocket
[*]    output=127.0.0.1

6.为ndo2db添加启动进程

[*]cp ./daemon-init /etc/init.d/ndo2db
[*]vim /etc/init.d/ndo2db
[*]   # 检查里面的路径确保不会出现“//&quot;,并将Ndo2dbBin修改成下面的值:
[*]   Ndo2dbBin=/var/www/html/nagios/bin/ndo2db-3x
[*]chmod &#43;x /etc/init.d/ndo2db

7.启动守护进程与nagios

[*]service ndo2db start
[*]tail -20 /var/log/messages    ## 查看其中是否有错误出现。如无报错请继续
[*]service nagios start

四:安装ncp,以在Cacti中展现Nagios
1.先安装cacti扩展模块



[*]wget http://www.cacti.net/downloads/pia/cacti-plugin-0.8.7h-PA-v3.0.tar.gz
[*]tar xvf cacti-plugin-0.8.7h-PA-v3.0.tar.gz
[*]cp -R cacti-plugin-arch/* /var/www/html/cacti/
[*]cd /var/www/html/cacti/
[*]mysql -ucacti -pcacti cacti < pa.sql
[*]patch -p1 -N < cacti-plugin-0.8.7h-PA-v3.0.diff
[*] ## 为cacti配置文件打补丁的时候注意在为include/config.php打补丁的时候有可能它将 include/config.php.dist给打补丁了,我们只需要手动加入下面的内容即可。


[*]vim include/config.php
[*]   # 修改(或新加入)为
[*]    $url_path = &quot;/cacti/&quot;;

从web进入cacti,启用cacti plugin扩展
2.安装npc

[*]tar zxvf npc-2.0.4.tar.gz
[*]mv npc /var/www/html/cacti/plugins/
[*]vim /var/www/html/cacti/include/config.php
[*]    # 加入:
[*]   $plugins[] = 'npc';

3.安装 npc支持:json

[*]wget http://pkgs.fedoraproject.org/repo/pkgs/php-pecl-json/json-1.2.1.tgz/d8904d2f004ceec85eeacf524cd25539/json-1.2.1.tgz
[*]tar zxvf json-1.2.1.tgz
[*]cd json-1.2.1
[*]phpize   ## 如果发现没有Phpize文件,则是因为php-devel包没有安装导致的
[*]./configure
[*]make && make install
[*]
[*]php -i | grep php.ini## 查看是否有导入信息

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

[*]vim /etc/php.ini
[*]   # 添加
[*]    extension=json.so

5.为apache添加php支持。

[*]vim /etc/httpd/conf/httpd.conf
[*]   # 添加一行:
[*]   AddType application/x-httpd-php .php .phtml
[*]   # 修改原DirectoryIndex内容为:
[*]   DirectoryIndex index.html index.html.var index.php
[*]
[*]usermod -G cacti apache
[*]service httpd restart    ## 重启apache以让php生效
[*]php -m   ## 查看是否有json被加载

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

[*]vim /var/www/html/nagios/etc/ndo2db.cfg
[*]   db_prefix=npc_

6.1
从Web进入Cacti,确保正确使用npc选项。
6.2 修改mysql中的表结构:

[*]./mysql -ucacti -p cacti
[*]mysql> use cacti;
[*]mysql> alter table npc_eventhandlers add long_output TEXT NOT NULL default '' after output;
[*]mysql> alter table npc_hostchecks add long_output TEXT NOT NULL default '' after output;
[*]mysql> alter table npc_hoststatus add long_output TEXT NOT NULL default '' after output;
[*]mysql> alter table npc_notifications add long_output TEXT NOT NULL default '' after output;
[*]mysql> alter table npc_servicechecks add long_output TEXT NOT NULL default '' after output;
[*]mysql> alter table npc_servicestatus add long_output TEXT NOT NULL default '' after output;
[*]mysql> alter table npc_statehistory add long_output TEXT NOT NULL default '' after output;
[*]mysql> alter table npc_systemcommands add long_output TEXT NOT NULL default '' after output;

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

[*]service ndo2db restart
[*]service nagios restart

8.在Web上配置NPC以使之正常读取工作。
在Settings->npc中 ,勾上Remote Commands
Nagios Command File Path= /var/www/html/nagios/var/rw/nagios.cmd
Nagios URL=你的地址(http://ocalhost/nagios/)
接下来刷新npc就可以看到数据啦:
五:Nconf的安装与配置
1.nconf的准备工作

[*]# 进入mysql数据库
[*]mysql> create database nconf;
[*]# 创建nconf数据库
[*]mysql> grant all privileges on nconf.* to nconf@localhost identified by 'nconf';
[*]# 创建nconf用户并赋权
[*]mysql> flush privileges;
[*]# 刷新特权表
[*]mysql> quit

2.安装nconf

[*]wget http://sourceforge.net/projects/nconf/files/nconf/1.2.6-0/nconf-1.2.6-0.tgz/download
[*]tar -zxf nconf-1.2.6-0.tgz -C /var/www/html/
[*]cd /var/www/html/nconf
[*]chown -R apache.apache config/ temp/ static_cfg/ output/

3.进入Web页面在web页面按照安装提示一步步安装
4.使用刚才创建的nconf数据库和nconf数据库用户/密码

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

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

[*]rm -rf INSTALL INSTALL.phpUPDATE UPDATE.php
[*] # 删除安装所需的初始化文件
[*]ln -s /var/www/html/nagios/bin/nagios bin/nagios
[*]chmod &#43;x /var/www/html/nconf/bin/generate_config.pl
[*]chown -R apache.apachebin
[*]chmod &#43;x /var/www/html/nagios/bin/nagios
[*]chmod &#43;x /var/www/html/nconf/ADD-ONS/deploy_local.sh
[*]vim /var/www/html/nconf/ADD-ONS/deploy_local.sh
[*]   修改里面的Nagios路径为 /var/www/html/nagios/etc/

7.重新刷新页面,输入admin/您设置的密码,进入nconf页面
8.点击Generate Nagios config尝试生成配置文件,以测试是否与nagios成功关联
9.最后的设置
①在web页面对监控服务和主机配置完毕,点击Generate Nagios config
②deploy_local.sh是nconf自带配置文件导入脚本

[*]/var/www/html/nconf/ADD-ONS/deploy_local.sh

手动执行此脚本,将在/var/www/html/nagios/etc下生成两目录Default_collector与global
③修改nagios主配置文件

[*]vim /var/www/html/nagios/etc/nagios.cfg
[*]   # 将其中cfg_file=*******字段全部注释 ,并加入
[*]   cfg_dir=/var/www/html/nagios/etc/Default_collector
[*]   cfg_dir=/var/www/html/nagios/etc/global
[*]service nagios reload
[*]   # 重载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://foreveryan.blog.iyunv.com/3508502/727866
页: [1]
查看完整版本: 生产环境开源监控系统整合Nagios+Cacti+Nconf