Nagios Plugin for Cacti 安装使用篇(zt)

作者:Mars_angels(CU之初学vb)
来源:cacti 中文论坛

前言:
Nagios Plugin for Cacti 简称 npc,是cacti的一个插件,这篇文章主要介绍如何在cacti中使用npc插件。


测试环境:
操作系统:rhel4u4 php4.4.4 mysql-4.1.22 httpd-2.2.4
npc主页:http://www.divagater.com/npc/
npc 当前版本:NPC 0.1.1a
nagios 主页:http://www.nagios.org
nagios 当前版本:nagios-2.7
nagios 插件当前版本:nagios-plugins-1.4.6
fruity:图形化配置nagios的工具,需要php5.x版本才能运行
http://fruity.sourceforge.net/
http://heanet.dl.sourceforge.net/sourceforge/fruity/
http://pear.php.net/get/HTML_TreeMenu-1.2.0.tgz
http://puzzle.dl.sourceforge.net/sourceforge/adodb/adodb471-1.tgz
将HTML_TreeMenu-1.2.0.tgz和adodb471-1.tgz直接解压复制到fruity 下 分别改名为HTML 和adodb 其他不做修改
修改 fruity/includes下的config.ifg,需要更改的地方有,路径,mysql信息
mysql 添加fruity 数据库和user,password.
这样,就可以用fruity来进行配置了。
注意:
在cacti服务器上的mysql版本必须是4.1以上,因为npc是以mysql4.1为基础进行开发的。

第一章:安装nagios
我们在cacti中使用nagios,首先我们要安装nagios环境,安装过程如下:
# tar –xvzf nagios-2.7.tar.gz
# mkdir /usr/local/nagios
# useradd nagios –d /usr/local/nagios
# passwd nagios 1qazSE$
# chmod 755 /usr/local/nagios
# grep "^User" /etc/httpd/conf/httpd.conf //查找apache的承托用户
我这里是daemon。2.2.0以前的apache版本可能会是nobody
# /usr/sbin/groupadd nagcmd

# /usr/sbin/usermod -G nagcmd daemon-----这个地方就是前面的aapche承托用户

# /usr/sbin/usermod -G nagcmd nagios


# cd nagios-2.7
#./configure --prefix=/usr/local/nagios --with-gd-lib=/usr/local/lib --with-gd-inc=/usr/local/include --enable-event-broker
# make all
# make install
# make install-init 安装启动脚本到/etc/init.d/
# make install-commandmode
# make install-config 安装初始配置文件到/usr/local/nagios

nagios-plugins的安装
tar –xvzf nagios-plugins-1.4.6.tar.gz
cd nagiso-plugins-1.4.6
./configure --prefix=/usr/local/nagios-plugins
make all
make install
注意:
nagios-plugins 1.4.6编译安装时出错修正:
Making install in po
make[1]: Entering directory `/opt/software/nagios/nagios-plugins-1.4.6/po'
/bin/sh @MKINSTALLDIRS@ /usr/local/nagios-plugins/share
/bin/sh: @MKINSTALLDIRS@: No such file or directory
make[1]: *** [install-data-yes] Error 127
make[1]: Leaving directory `/opt/software/nagios/nagios-plugins-1.4.6/po'
make: *** [install-recursive] Error 1

需要修改一下po/Makefile文件:

MKINSTALLDIRS = @MKINSTALLDIRS@
mkinstalldirs = $(SHELL) $(MKINSTALLDIRS)
替换为:
MKINSTALLDIRS = $(top_builddir)/./mkinstalldirs
mkinstalldirs = $(SHELL) $(MKINSTALLDIRS)
安装完成以后在/usr/local/nagios-plugins-plugins会产生一个libexec的目录,将该目录全部移动到/usr/local/nagios目录下即可。 如下:
# mv /usr/local/nagios-plugins/libexec /usr/local/nagios
到此,两个基本的TAR包安装完成

配置apache过程:

在apache的httpd.conf文件中加入如下字段:

ScriptAlias /nagios/cgi-bin/ /usr/local/nagios/sbin/

AllowOverride AuthConfig

Options ExecCGI

Order allow,deny

Allow from all

Alias /nagios/ /usr/local/nagios/share/

Options None

AllowOverride AuthConfig

Order allow,deny

Allow from all

注意:

如果你的apache版本是2.2.0,那么你需要把以上这段加到

和 之间。

配置页面访问权限:

在/usr/local/nagios/share目录下

# cd /usr/local/nagios/share

# vi .htaccess

AuthName "Nagios Access"

AuthType Basic

AuthUserFile /usr/local/nagios/etc/.htpasswd

require valid-user

然后在/usr/local/nagios/sbin编辑.htaccess

#vi .htaccess

AuthName "Nagios Access"

AuthType Basic

AuthUserFile /usr/local/nagios/etc/.htpasswd

require valid-user

#/usr/local/apache/bin/htpasswd –c /usr/local/nagios/etc/.htpasswd nagiosadmin

New password:

Re-type new password:

Adding password for user nagiosadmin

这个apache目录根据安装目录的不同而不同,用htpasswd命令生成用户名和密码以控制访问权限。

配置和启动nagios过程

# cd /usr/local/nagios/etc

把目录里的.cfg-sample文件全部拷贝成.cfg

例如:

# cp nagios.cfg-sample nagios.cfg

修改cgi.cfg,把use_authentication=1改为use_authentication=0,即不用验证.不然有一些页面不会显示。

修改后用如下命令检查配置文件是否正常:

#/usr/local/nagios/bin/nagios –v /usr/local/nagios/etc/nagios.cfg

Nagios 2.7

Copyright (c) 1999-2007 Ethan Galstad (http://www.nagios.org)

Last Modified: 01-19-2007

License: GPL

Reading configuration data...

Running pre-flight check on configuration data...

Checking services...

Checked 5 services.

Checking hosts...

Checked 1 hosts.

Checking host groups...

Checked 1 host groups.

Checking service groups...

Checked 0 service groups.

Checking contacts...

Checked 1 contacts.

Checking contact groups...

Checked 1 contact groups.

Checking service escalations...

Checked 0 service escalations.

Checking service dependencies...

Checked 0 service dependencies.

Checking host escalations...

Checked 0 host escalations.

Checking host dependencies...

Checked 0 host dependencies.

Checking commands...

Checked 22 commands.

Checking time periods...

Checked 4 time periods.

Checking extended host info definitions...

Checked 0 extended host info definitions.

Checking extended service info definitions...

Checked 0 extended service info definitions.

Checking for circular paths between hosts...

Checking for circular host and service dependencies...

Checking global event handlers...

Checking obsessive compulsive processor commands...

Checking misc settings...

Total Warnings: 0

Total Errors: 0

Things look okay - No serious problems were detected during the pre-flight check

如上红色字标注,两个为0就是正常的,如果出错,那一定是你修改的配置文件有问题,请返回修改。

这时候你访问http://your IP/nagios/可以看到如下图

但点击其他按钮只能看到

Whoops!

Error: Could not read object configuration data!

Here are some things you should check in order to resolve this error:

Verify configuration options using the -v command-line option to check for errors.

Check the Nagios log file for messages relating to startup or status data errors.

Make sure you've compiled the main program and the CGIs to use the same object data storage options (i.e. default text file or template-based file).

Make sure you read the documentation on installing, configuring and running Nagios thoroughly before continuing. If all else fails, try sending a message to one of the mailing lists. More information can be found at http://www.nagios.org.

提示,这是因为你还没有启动nagios后台进程,按如下命令启动nagios

# /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg

# /usr/local/etc/rc.d/nagios start

这个时候你返回刚才的URL,点击Tactical Overview


证明你已经配置成功nagios了。使用我就不在这里讲了,网上有一些文章专门介绍。让我们开始进入cacti的世界。

第二章:npc插件的安装

就和其他插件的安装一样

# tar xzvf npc-0.1.1a.tar.gz //这会出现一个npc目录

# mv npc /plugins/

# vi /plugins/npc/neb/inserter.c

修改第143行

&mysql,"localhost","USERNAME","PASSWORD","DATABASE",3306,NULL,CLIENT_MULTI_STATEMENTS

把以上几个大写字母地方改成你自己实际情况,不会改的看我下面的例子

&mysql,"localhost","***","***","cactidb",3306,"/tmp/mysql.sock",0

否则make 会出现如下错误

# make

gcc -g -O2 -Wall -o inserter.o inserter.c -shared -I../include -I/usr/include/mysql -lmysqlclient -fPIC

inserter.c: In function `nebmodule_init':

inserter.c:143: error: `CLIENT_MULTI_STATEMENTS' undeclared (first use in this function)

inserter.c:143: error: (Each undeclared identifier is reported only once

inserter.c:143: error: for each function it appears in.)

make: *** [all] Error 1

# cp /plugins/npc/neb/* /modules/

# cd /modules/

# make

这里做的主要是编译inserter.o文件,要注意的问题:

gcc -g -O2 -Wall -o inserter.o inserter.c -shared -I../include -I/usr/local/mysql/include/mysql -lmysqlclient -fPIC

/usr/bin/ld: cannot find -lmysqlclient

collect2: ld returned 1 exit status

make: *** [all] Error 1

这个错误是不能找到libmysqlclient,这个其实是mysql版本问题,我们当前环境下没有能包含mysql早期版本的库,就会出现这个问题,好在mysql官方已经给我想到了解决方法,你下载一个和你当前用的版本一致的MySQL-shared-compat-***.i386.rpm包,它就是原来解决这个问题的。(***是你的版本)

编译后会发现有个inserter.o文件

# cp insert.o /usr/local/nagios/modules/

如果没有modules文件夹,你要自己建立一个。

# vi /usr/local/nagios/etc/nagios.cfg

设置如下

retain_state_information=0

event_broker_options=-1 and

broker_module=/usr/local/nagios/modules/inserter.o

原因作者写得很清楚:

NOTE: Setting retain_state_information=0 causes all hosts and services to go to a pending state until rechecked by Nagios. Without this setting the inserter module will never update any data in NPC. Its a minor inconvenience that I will try to fix in the inserter module.

# vi /include/config.php

加入$plugins[] = 'npc';到$plugins = array();下面,完成后如下:

$plugins = array();

$plugins[] = 'thold';

$plugins[] = 'monitor';

$plugins[] = 'npc'; //这个需要你自己添加的,如果不是很理解请参考我写的 插件安装

$plugins[] = 'reports';

$plugins[] = 'haloe';

$plugins[] = 'update';

登陆你的cacti

点击--Console--User Management--admin

向下拉看到

Realm permissions control which sections of Cacti this user will have access to.

找到View NPC 副选框,点上钩,如下图,为了看得方便我把它圈起来了。


这样,我们就可以看到如下


NPC插件出现了!!这个时候你还要检查你的cactidb中是否多了npc开头的数据库,如果没有,请重新登陆cacti界面。

我们点击npc,就可以看到相应的情况了,如下图


那么恭喜你,整合安装结束了,你想扩展什么,直接按原来的nagios方法进行就可以了,但不同的是cacti也可以提供相应的监控界面来帮助你整合资源。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/312079/viewspace-245721/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/312079/viewspace-245721/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值