生产环境下搭建 nagios+nconf+cacti+npc的整合

系统:CentOS6.5 内核版本系统:2.6.32-431.23.3.el6.x86_64

关闭iptables 、selinux

chkconfig iptables off

安装前的准备工作

yum install -y httpd-*  mysql-* php-*  net-snmp*  gcc glibc glibc-common gd gd-devel openssl*

一、nagios 环境的搭建

1.安装nagios

useradd nagios

tar zxf nagios-3.2.0.tar.gz

cd nagios-3.2.0

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

make all

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

2.安装中文的nagios

这个比较简单就跟打补丁一样

tar zxf nagios-cn-3.2.0.tar.bz2

cd nagios-cn-3.2.0

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

make all

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

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

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

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

vi  /etc/nagios/cgi.cfg

authorized_for_system_information=nagiosadmin

authorized_for_configuration_information=nagiosadmin

authorized_for_system_commands=nagiosadmin

authorized_for_all_services=nagiosadmin

authorized_for_all_hosts=nagiosadmin

authorized_for_all_service_commands=nagiosadmin

authorized_for_all_host_commands=nagiosadmin

4.安装插件:

tar xf nagios-plugins-1.4.14.tar.gz

cd nagios-plugins-1.4.14

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

make

make install

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

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

6.阶段测试

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

service httpd restart

chkconfig httpd on

/etc/init.d/nagios start

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

二:cacti环境的搭建

1.rrdtool的安装

这里需要安装的是:rrdtool,rrdtool-devel.rrdtool-perl,rrdtool-php, rrdtool-python我用的rrdtools的版本是 1.3.8-7.el6.x86_64,由于我用的是阿里云yum里有rrdtool 所以我就直接yum install rrdtool* 来进行安装

rrdtool-devel-1.3.8-7.el6.x86_64

rrdtool-perl-1.3.8-7.el6.x86_64

rrdtool-1.3.8-7.el6.x86_64

rrdtool-php-1.3.8-7.el6.x86_64

rrdtool-python-1.3.8-7.el6.x86_64

如果没有自行下载。下载完成后,本地yum安装。(百度云里面有1.4的)

yum localinstall -y --nogpgcheck rrdtool-*

service mysqld start

2.配置snmp

vim /etc/snmp/snmpd.conf

com2sec notConfigUser  127.0.0.1       public

access  notConfigGroup ""      any       noauth    exact  all none none

view all    included  .1                               80

*前两行是修改最后一行是取消注释

service snmpd restart

snmpwalk -v 1 -c public localhost IP-MIB::ipAdEntIfIndex

IP-MIB::ipAdEntIfIndex.127.0.0.1 = INTEGER: 1

IP-MIB::ipAdEntIfIndex.xxx.xxx.xxx.xxx = INTEGER: 2

IP-MIB::ipAdEntIfIndex.xxx.xxx.xxx.xxx = INTEGER: 3

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

3.安装cacti

cacti-0.8.7e-cn-utf8.tar.gz

mv cacti-0.8.7e-cn-utf8 /var/www/html/cacti

4.创建cacti数据库

#mysql

mysql>create database cacti default character set utf8;    //数据库字符集设置utf8,否则乱码

mysql>grant all privileges on cacti.* to [email protected] identified by ‘cacti’ with grant option;

mysql>flush privileges;

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

cd /var/www/html/cacti

mysql -ucacti -pcacti cacti < cacti.sql

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

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

修改内容如下

$database_type = "mysql";

$database_default = "cacti";

$database_hostname = "localhost";

$database_username = "cacti";

$database_password = "cacti";

useradd -r -M cacti

chown -R cacti /var/www/html/cacti/rra/

chown -R cacti /var/www/html/cacti/log/

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

vim /etc/crontab

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

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

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

mkdir /ttf

mv ttf-arphic-ukai_0.2.20080216.1.orig.tar.gz /ttf

cd /ttf

tar xf ttf-arphic-ukai_0.2.20080216.1.orig.tar.gz

mv ukai.ttc /usr/share/fonts/ukai.ttc

rm –rf /ttf

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

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

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

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

php /var/www/html/cacti/poller.php

SNMP 版本号

字体路径

中文的图表

三:安装cacti-spine

1. cacti-spine的安装

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

tar xf cacti-spine-0.8.7e.tar.gz

cd cacti-spine-0.8.7e

./configure

#make && make install

vi /usr/local/spine/etc/spine.conf

修改内容如下:

DB_Host         localhost

DB_Database     cacti

DB_User         cacti

DB_Pass         cacti

DB_Port         3306

/usr/local/spine/bin/spine

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

*如果你直接成功了那么恭喜你请直接看2.cacti-spine的应用,如果出现报错*

[[email protected] cacti-spine-0.8.7e]# ./configure

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

[[email protected] cacti-spine-0.8.7e]#

解决步骤

cd cacti-spine-0.8.7e/config

ll -h

rm -rf config.guess config.sub ltmain.sh

ln -s -f /usr/share/libtool/config/config.sub config.sub

ln -s -f /usr/share/libtool/config/config.guess config.guess

ln -s -f /usr/share/libtool/config/ltmain.sh ltmain.sh

cd ..

./configure

make

make install

vi /usr/local/spine/etc/spine.conf

修改内容如下:

DB_Host         localhost

DB_Database     cacti

DB_User         cacti

DB_Pass         cacti

DB_Port         3306

/usr/local/spine/bin/spine

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

*如果你make 成功了请忽略这里*

这时候你make 报错,这是因为你可能没有装 libtool 或者libtool的版本不匹配

./libtool: line 467: CDPATH: command not found

./libtool: line 1145: func_opt_split: command not found

libtool: Version mismatch error.  This is libtool 2.2.6b, but the

libtool: definition of this LT_INIT comes from an older release.

libtool: You should recreate aclocal.m4 with macros from libtool 2.2.6b

libtool: and run autoconf again.

make: *** [spine] 错误 63

先检查你有没有安装libtool 如果没有就yum install libtool*  然后在进行尝试

如果还不行的

[[email protected] cacti-spine-0.8.7e]# autoreconf --force --install

[[email protected] cacti-spine-0.8.7e]# make

make install

vi /usr/local/spine/etc/spine.conf

修改内容如下:

DB_Host         localhost

DB_Database     cacti

DB_User         cacti

DB_Pass         cacti

DB_Port         3306

/usr/local/spine/bin/spine

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

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=unix

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=unixsocket

output=127.0.0.1

6.为ndo2db添加启动进程

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

vim /etc/init.d/ndo2db

# 并将Ndo2dbBin修改成下面的值:

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

chmod +x /etc/init.d/ndo2db

7.启动守护进程与nagios

service ndo2db start

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

service nagios restart

五:安装cacti-plugin 插件管理

Cacti-Plugin安装过程如下:

gunzip cacti-plugin-0.8.7e-PA-v2.5-cn-utf8.diff.gz

mv cacti-plugin-0.8.7e-PA-v2.5-cn-utf8.diff /var/www/cacti/

cd /var/www/html/cacti

mysql -ucacti -pcacti cacti < pa.sql

patch -p1 -N < cacti-plugin-0.8.7e-PA-v2.5-cn-utf8.diff

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

修改如下:

$database_type = "mysql";

$database_default = "cacti";

$database_hostname = "localhost";

$database_username = "cacti";

$database_password = "cacti";

$database_port = "3306";

$config[‘url_path‘] = ‘/cacti/‘;          #记住是修改不是添加

配置Cacti

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

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

六:安装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‘;

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包没有安装导致的

./configure

make && make install

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

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

vim /etc/php.ini

# 添加

extension=json.so

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

2.配置npc基本环境

一.为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生效

学神科技有限公司Linux讲师:top  联系QQ 3059942361   想要深入学习Linux系统架构师,可以随时与我联系

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

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

db_prefix=npc_

三. 修改mysql中的表结构:

#mysql -ucacti -pcacti

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;

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

service ndo2db restart

service nagios restart

五.在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的话。进行操作如下:

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

# 修改

output_type=tcpsocket

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

# 修改

socket_type=tcp

*一定要保证是唯一项*

七:Nconf的安装与配置

1.nconf的准备工作

#mysql

mysql> create database nconf;

mysql> grant all privileges on nconf.* to [email protected] identified by ‘nconf’;

mysql> flush privileges;

mysql> quit

2.安装nconf

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页面按照安装提示一步步安装

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

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

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

rm -rf INSTALL INSTALL.php  UPDATE UPDATE.php

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

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

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

chown -R apache.apache  bin

chmod +x /var/www/html/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路径为 /var/www/html/nagios/etc/

6.重新刷新网页

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

8.最后的设置

一.在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配置文件使之生效

时间: 2024-12-14 14:37:04

生产环境下搭建 nagios+nconf+cacti+npc的整合的相关文章

nginx环境下搭建nagios 3.5.0

本文基于<LNMP最新源码安装脚本>,Nagios依赖PHP环境和perl环境,由于Nginx不支持Perl的CGI,需先来搭建Perl环境,Nagios原理介绍略. 1.下载最新稳定源码包和Perl脚本 wget http://www.cpan.org/modules/by-module/FCGI/FCGI-0.74.tar.gz wget http://www.cpan.org/authors/id/B/BO/BOBTFISH/FCGI-ProcManager-0.24.tar.gz wg

在CentOS 6.5下搭建Nagios

Nagios是一款很棒的监控工具,可以帮助你监控你的网络中的服务器等等,并且具有邮件问题提醒等功能,并且可以结合Nagios的硬件来监控机房的温度并实时查询和报警. 免费版的Nagios只能监控7台(记不清了,也可能是6台),但是对于小型的企业,重要的几台服务器被Nagios实时监控应该够用了. 配置环境:1)CentOS 6.5 作为监控主机,IP:10.0.0.30(根据自己公司需要改变) 2)客户机: windows server  2008R2 , windows 7, windows

windows环境下搭建ffmpeg开发环境

ffmpeg是一个开源.跨平台的程序库,可以使用在windows.linux等平台下,本文将简单讲解windows环境下ffmpeg开发环境搭建过程,本人使用的操作系统为windows 7,集成开发环境为Visual Studio 2005,ffmpeg版本为2.2.有人可能会说都什么年代了,还VS 2005,现在VS 2010/2012/2013都出了.本人电脑也安装了VS2010,每次打开,伴随着硬盘指示灯的闪烁,以及硬盘的吱吱响声,过了许久才弹出闪屏页面,此时你的思绪可能已经飘到了南极,启

生产环境下ftp的迁移并构建高可用

说明:这是1个小项目就两台DELL的服务器,和一台IP SAN存储(DELL MD3200i).原来是4台小服务器,而且服务器太老了,经常有问题,这回相当于一次ftp的迁移,以前用的是proftp,这次换成了vsftp.数据量有2.5T. 拓扑很简单: 系统:CENTOS 6.4(64bit) 高可用软件:corosync+pacemaker host:ftp1 192.168.1.190 ftp2  192.168.1.191 stonith(ipmi):ftp1 192.168.1.180

Windows环境下搭建Objective-C开发环境

Windows环境下搭建Objective-C开发环境 目前来说,如果真的想用Xcode来运行Objective-C程序,那么可以用虚拟机装Mac OS X或者装黑苹果(在PC机上安装苹果的系统,不建议),不过这两种方式都有些麻烦,以下介绍GNUstep以及Code blocks来实现,具体方法如下. 在我的云盘下载所需工具:链接: http://pan.baidu.com/s/1i34b8wP 密码: wd9e 解压后按照一下顺序进行安装 gnustep-core-0.28.0-setup.e

生产环境下的iptables

生产环境下的iptables设置,这是我自己的一点总结,浅显之处望大家指出批评,共同学习. 我的局域网为192.168.1.0/24. 1.先清空所有规则 iptables -F iptables -X iptables -Z iptables -t nat -F iptables -t nat -X iptables -t nat -Z 设置默认规则前开发ssh(6123)端口 iptables -A INPUT -i eth0 -s 192.168.1.0/24 -p tcp --dport

读生产环境下go语言最佳实践有感

最近看了一篇关于go产品开发最佳实践的文章,go-in-procution.作者总结了他们在用go开发过程中的很多实际经验,我们很多其实也用到了,鉴于此,这里就简单的写写读后感,后续我也争取能将这篇文章翻译出来.后面我用soundcloud来指代原作者. 开发环境 在soundcloud,每个人使用一个独立的GOPATH,并且在GOPATH直接按照go规定的代码路径方式clone代码. $ mkdir -p $GOPATH/src/github.com/soundcloud $ cd $GOPA

SUSE 环境下搭建monowall

1.SUSE下采用LVM管理硬盘的方式,创建一个10G大小的硬盘  lvcreate -n monowall -L 10G xen_suse 2.安装配置文件 cat monowall-pxe.cfg,COPY到安装的机器,执行xm  create  monowall-pxe.cfg name = "monowall" builder = "hvm"  #虚拟化方式 memory = "2048"  #内存最大只支持2G disk = [ 'ph

Linux 14.04lts 环境下搭建交叉编译环境arm-linux-gcc-4.5.1

交叉编译工具链是为了编译.链接.处理和调试跨平台体系结构的程序代码,在该环境下编译出嵌入式Linux系统所需要的操作系统.应用程序等,然后再上传到目标板上. 首 先要明确gcc 和arm-linux-gcc的区别,gcc是x86架构的C语言编译器,编译出来的程序在本地执行,而arm-linux-gcc是跨平台的C语言编译 器,编译出来的程序在目标班上执行,嵌入式开发应该使用交叉编译工具链,下面给出详细的 Linux 14.04lts 环境下搭建交叉编译环境arm-linux-gcc-4.5.1安