1.配置好yum源,为了提高效率建议搭建本地yum源

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

2.安装nagios相关软件

#!/bin/sh





NAGIOS_TOOLS_DIR=/home/oldboy/tools

NAGIOS_INSTALL_DIR=/usr/local/nagios





echo "------ step 2: config  profile------"

echo 'export LC_ALL=C'>> /etc/profile

source /etc/profile





echo "------ step 3: stop iptables and selinux------"

/etc/init.d/iptables stop

/etc/init.d/iptables stop

chkconfig iptables off

setenforce 0

if [ -f /etc/selinux/config ]; then

sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config

setenforce 0

fi

echo "------ step 4: config time sync------"

/usr/sbin/ntpdate pool.ntp.org

echo '#time sync by oldboy at 2010-2-1'>>/var/spool/cron/root

echo '*/10 * * * * /usr/sbin/ntpdate pool.ntp.org >/dev/null 2>&1'>>/var/spool/cron/root

crontab -l





echo "------ step 5: install gcc and lamp env etc------"

yum install gcc glibc glibc-common -y

yum install gd gd-devel -y

yum install httpd php php-gd -y

yum install mysql* -y





echo "------ step 6: add nagios  user and group------"

/usr/sbin/useradd -m nagios

#/usr/sbin/useradd apache

/usr/sbin/groupadd nagcmd

/usr/sbin/usermod -a -G nagcmd nagios

/usr/sbin/usermod -a -G nagcmd apache









echo "------ step 7: download and install nagios------"

cd /home/oldboy/tools

[ ! -f oldboy_training_nagios_soft.zip ] && exit 1

unzip oldboy_training_nagios_soft.zip 

tar xzf nagios-3.5.1.tar.gz

cd nagios

./configure --with-command-group=nagcmd

make all

make install

make install-init

make install-config

make install-commandmode

make install-webconf

cd ../

echo "------ step 8: config web auth------"

htpasswd -cb /usr/local/nagios/etc/htpasswd.users oldboy 123456





echo "------ step 9: install nagios-plugins------"

yum -y install perl-devel

tar zxf nagios-plugins-1.4.16.tar.gz

cd nagios-plugins-1.4.16

./configure --with-nagios-user=nagios --with-nagios-group=nagios --enable-perl-modules

make && make install

cd ../

ls /usr/local/nagios/libexec/|wc -l





echo "------ step 10: install nrpe------"

tar zxvf nrpe-2.12.tar.gz

cd nrpe-2.12

./configure 

make all

make install-plugin

make install-daemon

make install-daemon-config

cd ..









echo "------ step 11: startup service and check------"

/etc/init.d/nagios start

/etc/init.d/httpd start

echo -----------

lsof -i tcp:80

echo ----------

ps -ef|grep nagios

echo "NAGIOS is successfully installed."

echo ok

3.安装cacti

①安装cacti依赖的软件

yum -y install mysql mysql-server mysql-devel httpd php php-pdo php-snmp php-mysql lm_sensors net-snmp net-snmp-utils net-snmp-libs rrdtool rrdtool-devel perl-PlRPC perl-DBI perl-rrdtool perl-DBD-MySQL





②装好依赖软件之后,snmp有3个地方需要配置一下(对服务器本身进行监控)





vim /etc/snmp/snmpd.conf

第41行:将 com2sec notConfigUser default public 中的 "default" 改为 "127.0.0.1"

第62行:将 access notConfigGroup "" any noauth exact systemview none none 中的 "systemview" 改为 "all"

第85行:将 #view all include .1 80 这一行前面的 # 号去掉





③配置好snmp以后我们来启动3个重要的服务





service snmpd start    //启动snmp服务

chkconfig snmpd on     //设置开机启动

service httpd start

chkconfig httpd on

service mysqld start

chkconfig mysqld on





④安装并配置cacti

获取cacti主文件

http://www.cacti.net/downloads/cacti-0.8.8b.tar.gz 

tar -zxvf cacti-0.8.8b.tar.gz

mv cacti-0.8.8b /var/www/html/cacti    //将cacti-0.8.8b文件夹移到/var/www/html目录下,并将cacti-0.8.8b重命名为cacti





⑤设置mysql数据库





mysql -uroot -p     #新装的mysql没有密码,直接回车进入mysql数据库

create database cacti;   #首先创建cacti数据库,注意别丢了分号

grant all privileges on cacti.* to cacti@localhost identified by 'cacti' with grant option;   #创建cacti用户并授权

use cacti;

source /var/www/html/cacti/cacti.sql;    #导入cacti数据库文件

mysql>\q





⑥配置cacti

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

$database_type = "mysql";

$database_default = "cacti";

$database_hostname = "localhost";

$database_username = "cactiuser";    //因为我们先前在数据库建的是 "cacti" 用户,所以这里默认的 "cactiuser" 要改为 "cacti"

$database_password = "cactiuser";    //这里默认的密码我们也要改为 "cacti"

$database_port = "3306";





⑦增加 cacti 用户以用来写入rrd和log目录的数据,否则就会生成不了图片

useradd cacti

cd /var/www/html/cacti

chown -R cacti.cacti rra/ log/





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

具体多长时间让cacti生成一次监控图表自己决定,这里以cacti的默认时间5分钟生成一次为例





su cacti 

crontab –e 

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





exit  

# 如果暂时未看到图表,可以手工执行,生成图表

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





⑩配置好之后重启输入http://ip/cacti,从web页面启动cacti,安装,并查看图形化界面

4.整合Nagios与Cacti

①下载并安装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=/usr/local/nagios --enable-mysql --disable-pgsql --with-mysql-inc=/usr/include/mysql --with-mysql-lib=/usr/lib/mysql 

make 





②准备配置文件

cp -v src/{ndomod-3x.o,ndo2db-3x,file2sock,log2ndo} /usr/local/nagios/bin

cd db 

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

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/* 





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

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

   # 在文件中添加: 

     broker_module=/usr/local/nagios/bin/ndomod-3x.o config_file=/usr/local/nagios/etc/ndomod.cfg

   # 检查  

     event_broker_options=-1     ## 为Nagios开启event broker 





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

vim /usr/local/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 





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

vim /usr/local/nagios/etc/ndomod.cfg 

   # 确保下列项的唯一内容为 

    output_type=tcpsocket 

    output=127.0.0.1





⑥为ndo2db添加启动进程

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

vim /etc/init.d/ndo2db

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

     Ndo2dbBin=/usr/local/nagios/bin/ndo2db-3x 

chmod +x /etc/init.d/ndo2db  





⑦启动守护进程与nagios 

service ndo2db start 

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

service nagios start

5.安装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 = "/cacti/"; 

从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  ## 查看是否有导入信息

报错:

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/json.so' - /usr/lib64/php/modules/json.so: undefined symbol: ZVAL_DELREF in Unknown on line 0

解决办法:

vim JSON_parser.c 





/* error */#define S_ERR -1

#define ZVAL_DELREF Z_DELREF_P      加入这一行

/* space */

#define S_SPA 0

重新编译即可





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 /usr/local/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= /usr/local/nagios/var/rw/nagios.cmd

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

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

6.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 https://sourceforge.net/projects/nconf/files/nconf/1.3.0-0/nconf-1.3.0-0.tgz/download

tar -zxf nconf-1.3.0-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.php  UPDATE UPDATE.php   

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

ln -s /usr/local/nagios/bin/nagios bin/nagios   

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

chown -R apache.apache  bin  

chmod +x /usr/local/nagios/bin/nagios 

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

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

     修改里面的Nagios路径为 /usr/local/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 

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

③修改nagios主配置文件

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

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

     cfg_dir=/usr/local/nagios/etc/Default_collector 

     cfg_dir=/usr/local/nagios/etc/global 

service nagios reload 

   # 重载nagios配置文件使之生效 







报错:

Error: Cannot open main configuration file '/var/www/html/nconf/temp/test/Default_collector.cfg' for reading!





应该是没有执行chown -R apache.apache config/ temp/ static_cfg/ output/  

重新安装nconf即可

开源监控系统整合Nagios+Cacti+Nconf详解的更多相关文章

  1. 开源监控系统Prometheus介绍

    前言 Prometheus是CNCF的一个开源项目,Google BorgMon监控系统的开源版本,是一个系统和服务的监控系统.周期性采集metrics指标,匹配规则和展示结果,以及触发某些条件的告警 ...

  2. 小米开源监控系统Open-Falcon安装使用笔记

    小米开源监控系统Open-Falcon安装使用笔记-BB保你大-51CTO博客 https://blog.51cto.com/chenguomin/1865550

  3. Linux(centos)系统各个目录的作用详解

    Linux(centos)系统各个目录的作用详解 文件系统的类型 LINUX有四种基本文件系统类型:普通文件.目录文件.连接文件和特殊文件,可用file命令来识别. 普通文件:如文本文件.C语言元代码 ...

  4. Oracle 11g客户端在Linux系统上的配置步骤详解

    Oracle 11g客户端在Linux系统上的配置步骤详解 2011-07-26 10:47 newhappy2008 CSDN博客 字号:T | T 本文我们主要介绍了Oracle 11g客户端在L ...

  5. linux(CENTOS)系统各个目录的作用详解

    Linux(CentOS)系统各个目录的作用详解 文件的类型 LINUX有四种基本文件系统类型:普通文件.目录文件.连接文件和特殊文件,可用file命令来识别. 普通文件:如文本文件.C语言元代码.S ...

  6. Java开源生鲜电商平台-盈利模式详解(源码可下载)

    Java开源生鲜电商平台-盈利模式详解(源码可下载) 该平台提供一个联合买家与卖家的一个平台.(类似淘宝购物,这里指的是食材的购买.) 平台有以下的盈利模式:(类似的平台有美菜网,食材网等) 1. 订 ...

  7. Farseer.net轻量级开源框架 入门篇:添加数据详解

    导航 目   录:Farseer.net轻量级开源框架 目录 上一篇:Farseer.net轻量级开源框架 入门篇: 分类逻辑层 下一篇:Farseer.net轻量级开源框架 入门篇: 修改数据详解 ...

  8. Farseer.net轻量级开源框架 入门篇:修改数据详解

    导航 目   录:Farseer.net轻量级开源框架 目录 上一篇:Farseer.net轻量级开源框架 入门篇: 添加数据详解 下一篇:Farseer.net轻量级开源框架 入门篇: 删除数据详解 ...

  9. Farseer.net轻量级开源框架 入门篇:删除数据详解

    导航 目   录:Farseer.net轻量级开源框架 目录 上一篇:Farseer.net轻量级开源框架 入门篇: 修改数据详解 下一篇:Farseer.net轻量级开源框架 入门篇: 查询数据详解 ...

随机推荐

  1. Arch Linux中通过AUR安装Redis Desktop Manager失败

    笔者在安装Redis Desktop Manager时出现了Failed to connect to chromium.googlesource.com port 443: Connection ti ...

  2. CF 991

    843名... 正规比赛肯定要掉分了...... 就算C没WA也是765名...为什么会这么菜呢? A,水.我加了两个特判. B,水.以 n * 4.5 为目标即可. C,裸二分,可耻的WA了一次是为 ...

  3. P1198 最大数 线段树水题

    这道题模拟一下可以过,但是我们发现线段树也可以安全水过...... 写的线段树只需要滋磁单点修改,区间求max即可 我一开始犯了一个很SB的错误:每次插入修改了t,然后疯狂爆0到怀疑人生... 而且我 ...

  4. csp20141203 集合竞价 解题报告

    Solution:对股票出价进行排序,然后按照价格递增的次序依次设定p的价格并求成交量.1. //prove that the result of price(maximum--maxprice) i ...

  5. checkBox全选全不选及数据提交后台

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  6. Error configuring application listener of

    最近在做spring+struts2+IbatIS的项目,昨天eclipse启动服务器正常,结果今天来了就总是报错,错误如下:严重: Error configuring application lis ...

  7. 线程的同步(协调)synchronized

    [格式] 同步代码块:synchronized(Object){...} 关键字在代码块前,每次只允许一个线程调用此代码块. Object为任何对象(一般用this),每个对象都有一个标志位(0锁住状 ...

  8. 【已解决】Microsoft visual c++ 14.0 is required问题解决办法

    装 识别图形验证码库tesserocr的时候,出现了Microsoft visual c++ 14.0 is required的问题,用离线安装还是没有用. 就只能乖乖装Microsoft visua ...

  9. Kubernetes Ingress管理

    目录 Ingress介绍 1.Pod漂移问题 2.端口管理问题 3.域名分配及动态更新问题 Nginx Ingress配置 1.部署默认后端 2.部署Ingress Controller 3.部署In ...

  10. circRNA

    一.circRNA序列提取 环状RNA (circRNA)是一类不具有 5' 末端帽子和 3' 末端 poly(A)尾巴.并以共价键形成环形结构的非编码 RNA 分子. 环状RNA (circRNA) ...