文档章节

开源监控系统整合Nagios+Cacti+Nconf+Npc中文版

bengozhong
 bengozhong
发布于 2016/09/28 16:06
字数 2902
阅读 89
收藏 0

准备工作

1、关闭iptables

  1. chkconfig iptables off

2、关闭selinux

用vim打开 /etc/selinux/config

将 SELINUX=enforcing 修改为 SELINUX=disabled 保存重启。

3、安装httpd、mysql、php、net-snmp、gcc、glibc、glibc-common、gd、gd-devel、openssl、libtool、libtool-ltdl、libtool-ltdl-devel【安装完成后用 rpm -qi httpd 或者  rpm -qa |grep mysql 命令查看是否安装成功及版本信息】。

  1. yum install -y httpd-*
  2. yum install -y mysql-*
  3. yum install -y php-*
  4. yum install -y net-snmp*
  5. yum install -y gcc
  6. yum install -y glibc
  7. yum install -y glibc-common       //这个可能安装glibc的时候已经装了
  8. yum install -y gd
  9. yum install -y gd-devel
  10. yum install -y openssl*
  11. yum install -y libtool
  12. yum install -y libtool-ltdl              //这个可能安装libtool的时候已经装了
  13. yum install -y libtool-ltdl-devel

4、安装包下载

整合Nagios+Cacti+Nconf+Npc中文版安装包

一、nagios环境的搭建

1、安装nagios

  1. useradd nagios
  2. tar zxf nagios-3.2.0.tar.gz
  3. cd nagios-3.2.0
  4. ./configure -prefix=/var/www/html/nagios
  5. make all
  6. make install && make install-init && make install-commandmode && make install-config && make install-webconf

2、安装中文的nagios

  1. tar xf nagios-cn-3.2.0.tar.bz2
  2. cd nagios-cn-3.2.0
  3. ./configure -prefix=/var/www/html/nagios
  4. make all
  5. make install && make install-init && make install-commandmode && make install-config && make install-webconf

3、增加nagios登陆认证文件,一定要用默认的nagiosadmin作为用户

  1. htpasswd -c /var/www/html/nagios/etc/htpasswd.users nagiosadmin             //设置nagios用户密码

否则需要修改/var/www/html/nagios/etc/cgi.cfg这个文件

vi  /etc/nagios/cgi.cfg

  1. authorized_for_system_information=nagiosadmin
  2. authorized_for_configuration_information=nagiosadmin
  3. authorized_for_system_commands=nagiosadmin
  4. authorized_for_all_services=nagiosadmin
  5. authorized_for_all_hosts=nagiosadmin
  6. authorized_for_all_service_commands=nagiosadmin
  7. authorized_for_all_host_commands=nagiosadmin

4、安装插件

  1. tar xf nagios-plugins-1.4.14.tar.gz
  2. cd nagios-plugins-1.4.14
  3. ./configure -prefix=/var/www/html/nagios/
  4. make
  5. make install

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

usermod -G nagios apache                         //将apache用户加到nagios组

6、阶段测试

  1. chown nagios.nagios /var/www/html/nagios/ -R
  2. service httpd restart
  3. chkconfig httpd on
  4. /etc/init.d/nagios start
  5. chkconfig nagios on

访问 http://IP/nagios 看看账号密码对不对

20160705091629

二、cacti环境的搭建

1、rrdtool的安装

这里需要安装的是:rrdtool,rrdtool-devel.rrdtool-perl,rrdtool-php, rrdtool-python,下载文章中提供的软件包,本地rpm安装。

  1. rpm -ivh --nodeps rrdtool-1.3.8-7.el6.x86_64.rpm
  2. rpm -ivh --nodeps rrdtool-devel-1.3.8-7.el6.x86_64.rpm
  3. rpm -ivh --nodeps rrdtool-perl-1.3.8-7.el6.x86_64.rpm
  4. rpm -ivh --nodeps rrdtool-php-1.3.8-7.el6.x86_64.rpm
  5. rpm -ivh --nodeps rrdtool-python-1.3.8-7.el6.x86_64.rpm
  6. service mysqld start

2、配置snmp

vim /etc/snmp/snmpd.conf

  1. com2sec notConfigUser  127.0.0.1       public
  2. access  notConfigGroup ""      any       noauth    exact  all none none
  3. view all    included  .1                               80
  4. //前两行是修改最后一行是取消注释
  1. service snmpd restart
  2. chkconfig snmpd on
  3. snmpwalk -v 1 -c public localhost IP-MIB::ipAdEntIfIndex
  4. IP-MIB::ipAdEntIfIndex.127.0.0.1 = INTEGER: 1
  5. IP-MIB::ipAdEntIfIndex.xxx.xxx.xxx.xxx = INTEGER: 2

显示以上信息,则snmp配置成功,xxx.xxx.xxx.xxx会根据你本机的IP信息配置而不同。

3、安装cacti

  1. tar xf cacti-0.8.7e-cn-utf8.tar.gz
  2. mv cacti-0.8.7e-cn-utf8 /var/www/html/cacti

4、创建cacti数据库

  1. service mysqld start
  2. chkconfig mysqld on
  3. /usr/bin/mysql_secure_installation       //设置数据库root密码,回车-输入y-输入两次密码-在按4个Y
  4. #mysql -uroot -proot
  5. mysql>create database cacti default character set utf8;       //数据库字符集设置utf8,否则乱码
  6. mysql>grant all privileges on cacti.* to cacti@localhost identified by 'cacti' with grant option;
  7. mysql>flush privileges;

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

  1. cd /var/www/html/cacti
  2. mysql -ucacti -pcacti cacti < cacti.sql       //如果mysql版本为5.5以上需要将cacti.sql里的TYPE=MyISAM 修改为 ENGINE=MyISAM

6、编辑.php文件,以适应环境

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

修改内容如下

  1. $database_type = "mysql";
  2. $database_default = "cacti";
  3. $database_hostname = "localhost";
  4. $database_username = "cacti";
  5. $database_password = "cacti";
  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. yum install -y vixie-cron      //安装计划任务,某些系统上可能没有预装
  2. chkconfig crond on             //设为开机启动
  3. service crond start            //启动crond
  4. vim /etc/crontab
  5.        //添加
  6.        */5 * * * * root /usr/bin/php /var/www/html/cacti/poller.php > /dev/null 2>&1

8、安装中文字体否则图像文字上是乱码

  1. mkdir /ttf
  2. mv ttf-arphic-ukai_0.2.20080216.1.orig.tar.gz /ttf
  3. cd /ttf
  4. tar xf ttf-arphic-ukai_0.2.20080216.1.orig.tar.gz
  5. mv ukai.ttc /usr/share/fonts/ukai.ttc
  6. cd ..
  7. rm -rf ttf/

9、从web页面启动cacti,安装,并查看图形化界面

浏览器访问:http://localhost/cacti/install/ 安装

默认登录用户:admin   密码:admin

20160705095444

控制面板 > 设备 > 本机 > SNMP选项 > SNMP 版本 选择 版本1  > 保存

20160705095615

控制面板 > 设置 > 路径 > RRDTool默认字体路径  /usr/share/fonts/ukai.ttc > 保存

20160705095714

如果配置正确,隔几分钟,我们的cacti就会有数据了,如图,你也可以手动执行以下命令手动生成rrd图像

/usr/bin/php /var/www/html/cacti/poller.php --force

20160705110530

三、安装cacti-spine

1、cacti-spine的安装

由于默认cmd.php来轮询数据,速度会很慢,特别是在监控节点比较多的情况下,cmd.php就更显不足了,因此我们采用Spine来轮询数据。cacti-spine是一个由C语言开发的,用于替代cmd.php的快速获取速度的引擎。

  1. tar xf cacti-spine-0.8.7e.tar.gz
  2. cd cacti-spine-0.8.7e
  3. ./configure

//这里如果出现报错

configure: error: cannot run /bin/sh config/config.sub

解决步骤

  1. cd config
  2. ll -h
  3. rm -rf config.guess config.sub ltmain.sh
  4. ln -s -f /usr/share/libtool/config/config.sub config.sub
  5. ln -s -f /usr/share/libtool/config/config.guess config.guess
  6. ln -s -f /usr/share/libtool/config/ltmain.sh ltmain.sh
  7. cd ..

在重新运行 ./configure

make

//这里如果出现错误,可能因为你没有装 libtool 或者libtool的版本不匹配

20160704164551

先检查你有没有安装libtool 

rpm -qi libtool如果没有就yum install -y libtool*然后在进行尝试

如果还不行的

  1. #autoreconf --force --install
  2. #make
  3. #make install

vi /usr/local/spine/etc/spine.conf        //修改访问数据库用户密码

修改内容如下:

  1. DB_Host         localhost
  2. DB_Database     cacti
  3. DB_User         cacti
  4. DB_Pass         cacti  
  5. DB_Port         3306

测试是否正常

#/usr/local/spine/bin/spine            //此命令需要在/usr/local/spine/etc/目录下运行,否则会报错PM - SPINE: Poller[0] FATAL: Unable to read configuration file! (Spine init)

#echo /usr/local/spine/bin/spine >>/etc/rc.d/rc.local

2、cacti-spine的应用

控制面板 > 设置 >  路径 > Spine轮询器路径  /usr/local/spine/bin/spine

控制面板 > 设置 > 轮询器 >  轮询器类型  spine

四、整合Nagios与Cacti

1、下载并安装ndoutils

  1. tar zxvf ndoutils-1.4b9.tar.gz
  2. cd ndoutils-1.4b9
  3. ./configure -prefix=/var/www/html/nagios -enable-mysql -disable-pgsql -with-mysql-inc=/usr/include/mysql -with-mysql-lib=/usr/lib/mysql
  4. 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=unix
  4.      db_servertype=mysql
  5.      db_host=localhost
  6.      db_port=3306
  7.      db_name=cacti
  8.      db_prefix=nagios_
  9.      db_user=cacti  
  10.      db_pass=cacti

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

  1. vim /var/www/html/nagios/etc/ndomod.cfg
  2.        //确保下列项为唯一内容
  3.       output_type=unixsocket
  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

service ndo2db start

chkconfig ndo2db on

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

service nagios restart

五、安装cacti-plugin 插件管理

Cacti-Plugin安装过程如下:

  1. gunzip cacti-plugin-0.8.7e-PA-v2.5-cn-utf8.diff.gz
  2. mv cacti-plugin-0.8.7e-PA-v2.5-cn-utf8.diff /var/www/html/cacti/
  3. cd /var/www/html/cacti
  4. patch -p1 -N < cacti-plugin-0.8.7e-PA-v2.5-cn-utf8.diff
  5. mysql -ucacti -pcacti cacti < pa.sql

如果你的cacti访问时候是使用 http://ip/cacti,你需要修改/var/www/html/cacti/include/global.php

修改如下:

  1. $database_type = "mysql";
  2. $database_default = "cacti";
  3. $database_hostname = "localhost";
  4. $database_username = "cacti";
  5. $database_password = "cacti";
  6. $database_port = "3306";
  7.  
  8. $config['url_path'] = '/cacti/';          //记住是修改不是添加

配置Cacti

控制面板 > 用户管理 > admin > 区域权限,选择”插件管理” > 保存

然后我们就能够在控制面板的”配置”下面看到多出一个”插件管理”的选项

六、安装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';

20160705153935

1、安装 npc支持:json    (看情况进行安装,我的已经装了

先使用这条命令看看PHP里有没有JSON的模块 php -m | grep json 如果有了就略过。

tar zxvf json-1.2.1.tgz  

cd json-1.2.1 

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

yum install -y php-devel       //安装php-devel 

./configure  

make && make install 

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

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

vim /etc/php.ini 

      // 添加 

      extension=json.so

php -m           // 查看是否有json被加载

2、配置npc基本环境

1)为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. usermod -G cacti apache
  7. service httpd restart            // 重启apache以让php生效 

2)修改配置文件以让npc读取到新的数据

  1. vim /var/www/html/nagios/etc/ndo2db.cfg
  2.        //修改
  3.        db_prefix=npc_

3)启用NPC插件,修改mysql中的表结构

控制面板 > 插件管理 > 安装 > 启用

  1. #mysql -ucacti -pcacti -A
  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;

4)重启ndo2db进程,重新加载配置文件重启nagios服务

service ndo2db start

service nagios restart

5)在Web上配置NPC以使之正常读取工作

控制面板 > 设置 > NPC

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

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

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

如果你点开NPC的时候状态是OFF的话。进行操作如下:

  1. vim /var/www/html/nagios/etc/ndomod.cfg
  2.        // 修改
  3.        output_type=tcpsocket
  4. vim /var/www/html/nagios/etc/ndo2db.cfg
  5.        // 修改
  6.        socket_type=tcp

*一定要保证是唯一项,有重复的注释掉*

七、Nconf的安装与配置

1、nconf的准备工作

  1. #mysql -uroot -proot
  2. mysql> create database nconf;
  3. mysql> grant all privileges on nconf.* to nconf@localhost identified by 'nconf';
  4. mysql> flush privileges;
  5. mysql> quit

2、安装nconf

  1. tar -zxf nconf-1.3.0-0.tgz -C /var/www/html/
  2. cd /var/www/html/nconf
  3. chown -R apache.apache config/ temp/ static_cfg/ output/

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

http://localhost/nconf/

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

到下图中这个页面设置登录用户密码

20160706111013

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

5、网页安装完成后

  1. rm -rf INSTALL INSTALL.php  UPDATE UPDATE.php      //删除安装所需的初始化文件
  2. ln -s /var/www/html/nagios/bin/nagios bin/nagios
  3. chmod +x /var/www/html/nconf/bin/generate_config.pl
  4. chown -R apache.apache  bin
  5. chmod +x /var/www/html/nagios/bin/nagios
  6. chmod +x /var/www/html/nconf/ADD-ONS/deploy_local.sh
  7. vim /var/www/html/nconf/ADD-ONS/deploy_local.sh
  8.        //修改NAGIOS_DIR路径
  9.        NAGIOS_DIR="/var/www/html/nagios/etc/"

6、重新刷新网页

7、点击Generate Nagios config尝试生成配置文件,以测试是否与nagios成功关联

8、最后的设置

1)在web页面对监控服务和主机配置完毕,点击Generate Nagios config

2)deploy_local.sh是nconf自带配置文件导入脚本

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

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

3)修改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               //重载nagios配置文件使之生效

如果生成Nagios配置文件没问题的话,就可以执行以下脚本使Nagios配置生效:

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

想实现Nconf点生成使Nagios配置文件立即生效的,请查看下面这篇文章!

Nconf点生成使Nagios配置文件立即生效

© 著作权归作者所有

bengozhong
粉丝 19
博文 476
码字总数 485469
作品 0
深圳
程序员
私信 提问
BeaconIT开源的企业信息门户中文版发布

株式会社BeaconIT(全称:株式会社BeaconInformationTechnology;总部:东京都新宿 区;社长:坂本 桂一)宣布企业信息门户(Enterpris Information Potal)软件「infoScoop」的开源中文版「i...

mingzhang
2010/06/02
1K
2
集中运维管理系统--IOMS

IOMS集中运维管理系统是一个类似于Fedora统一网络控制器FUNC这样的一个适用于windows/linux双平台的应用,它负责对所有受管理的客户端服务器进行统一命令集中收发,同时收集受管理客户端服务...

匿名
2011/03/01
11.7K
0
开源电子书

目录 语言无关类 操作系统 智能系统 分布式系统 编译原理 函数式概念 计算机图形学 WEB服务器 版本控制 编辑器 NoSQL PostgreSQL MySQL 管理和监控 项目相关 设计模式 Web 大数据 编程艺术 ...

zting科技
2017/12/11
0
0
Fanta/free-programming-books-zh_CN

免费的编程中文书籍索引 免费的编程中文书籍索引,欢迎投稿。 国外程序员在 stackoverflow 推荐的程序员必读书籍,中文版。 stackoverflow 上的程序员应该阅读的非编程类书籍有哪些? 中文版...

Fanta
2016/11/14
0
0
Windows Server 2016 中文版抢先看

版本名称:Windows Server 2016评估版 软件版本:简体中文版 软件大小:5.3GB 软件授权:共享 下载地址:Windows Server 2016中文版下载地址 Windows Server 2016评估版下载安装截图: Wind...

李先生的帐号
2016/10/10
3.4K
12

没有更多内容

加载失败,请刷新页面

加载更多

rsync工具常用选项以及同步的两种方式

rsync -av /etc/passwd /tmp/1.txt #rsync的本机传输写法 rsync -av /tmp/1.txt 192.168.188.128:/tmp/2.txt #rsync的远程传输rsync格式rsync [OPTION] … SRC ......

林怡丰
今天
4
0
GatewayWorker 报错:stream_socket_server(): unable to connect to tcp://0.0.0.0:1238

GatewayWorker 报错:stream_socket_server(): unable to connect to tcp://0.0.0.0:1238 (Address already in use) 官方文档虽然有相同的问题,但是对我的问题没起作用…… 后面发现自己手贱...

wenzhizhong
昨天
3
0
REST接口

文章来源 https://zhuanlan.zhihu.com/p/28674721?group_id=886181549958119424 http://www.ruanyifeng.com/blog/2014/05/restful_api.html REST 对请求的约定 REST 用来规范应用如何在 HTTP......

Airship
昨天
6
0
Spring Cloud Config 统一配置中心

Spring Cloud Config 统一配置中心 一、统一配置中心 统一管理配置 通常,我们会使用配置文件来管理应用的配置。如一个 Spring Boot 的应用,可以将配置信息放在 application.yml 文件中,如...

非摩尔根
昨天
6
0
android ------ AAPT2 error: check logs for details解决方法

AAPT 是全称是 Android Asset Packaging Tool,它是构建 App,甚至是构建 Android 系统都必不可少的一个工具。它的作用是将所有资源文件压缩打包到Android APK 当中。我们在 Android SDK 目录...

切切歆语
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部