在Ubuntu整合Cacti与Nagios(一)

来源:互联网 发布:印度外汇储备数据 编辑:程序博客网 时间:2024/06/06 05:16

系统:Ubuntu

Cacti和Nagios是现在使用比较多的网络监控软件了,对于这两款监控软件的区别,应该说是侧重点的不同。
Cacti比较着重于直观数据的监控,易于生成图形,用来监控网络流量、cp
u使用率、硬盘
使用率等可以说很在合适不过。
而Nagios则比较注重于主机和服务的监控,并且有很强大的发送报警信息的功能。
把两者结合起来,既可以使报警机制高效及时,又可以很容易的查看各项数据的情况。
之前主要是用FreeBSD来架构网络监控程序,最早使用的是MRTG,然后开始用RRDTOOL,后来发现了Cacti,爱不释手啊。
一开始要求用Nagios来进行主机和服务监控,但是后来觉得Nagios设置起来实在不方便,所以改用了Cacti,并且使用Pl
u
gin来构建报警机制,但是效果不甚理想。
于是就在找一个比较合适的解决办法,前一段在网上看到Nagios For Cacti的Pl
u
gin终于有了更新,决定试一下看看。
一开始是使用FreeBSD做系统,但是由于Nagios3.0的安装一直出问题,而正好最近在使用
Ubuntu,所以改到Ubuntu
上试试看。
1. 安装必须的软件
用root登录后(sudo passwd root
apt-get update
apt-get install apache2 mysql-server php5 php5-cli php5-mysqlphp5-snmp libapache2-mod-php5 snmp rrdtool
具体来说安装的就是apache,mysql,php5,snmp和rrdtool以及一些必须的mod或extension。

vim/var/www/html/index.php在其中添加以下内容:
<?php
phpinfo();
?>
保存退出
用web浏览器访问,如果出现以下画面,则表示http支持动态php.并能与php成功连接.

在Ubuntu整合Cacti与Nagios(一)

接着测试与mysql的连接,先给mysql设置个管理员密码
mysqladmin -uroot password '123456' #密码设置为123456
编辑刚才的web页面
vim /var/www/html/index.php
把里面的内容改为

<?php
$link=mysql_connect("localhost","root","123456");
if(!$link) echo "FAILD!";
else echo "OK!";
?>
刷新刚才的web 浏览器页面,如果出现OK!字样,则表示成功连接


下面就开始Cacti的安装了。

2.安装Cacti
mkdir ~/cacti我习惯把下载的东西都放在home下面
cd ~/cacti
wget http://www.cacti.net/downloads/cacti-0.8.7g.tar.gz下载Cacti的最新版本,现在是0.8.7g
tar xzf cacti-0.8.7g.tar.gz 解压缩
mv ~/cacti/cacti-0.8.7g /usr/share/cacti 将cacti移动到/usr/share下面
cd /usr/share/cacti
chown -R root:root rra/log/

编辑/etc/crontab并添加下面一行
*/5 * * * * root php /usr/share/cacti/poller.php >/dev/null2>&1
然后编辑/etc/apache2/sites-avaliable/default并添加一下内容
Alias /cacti/  "/usr/share/cacti/"
<Directory "/usr/share/cacti/">
        AllowOverride  None
        Order  Allow,Deny
         Allow fromall
</Directory>

重启apache
/etc/init.d/apache2 restart

接下来是mysql的配置
create一个用户cacti
mysqladmin -u root -pcreate cacti
导入sql文件
mysql -u root -pcacti <cacti.sql
进入mysql设置权限
mysql -u root -p
mysql>GRANT ALL ON cacti.* To cacti@localhostIDENTIFIED BY 'cacti';
mysql>flush privileges;
mysql>exit;


最后更改一下cacti的config文件
vi /usr/share/cacti/include/config.php
更改如下内容
$database_username ="cacti";
$database_password = "cacti";


到这里,cacti的安装在server上完成了
接下来在浏览器中输入
http://yourserver/cacti/
会见到cacti的安装界面,进行new install,基本上都没有什么需要修改的,稍微看一下,next就好了。
初次登录,用户名和密码都是admin,会提示修改密码。

3. 安装CactiPlugins Arch
cd~/
wget http://cactiusers.org/downloads/cacti-plugin-arch.tar.gz 下载cacti plugin arch,现在的版本是2.8
tar xzf cacti-plugin-arch.tar.gz

pluginarch的安装有两种方法,第一种是运行patch文件修改现有的内容:

cd /usr/share/cacti/

patch -p1 -N <cacti-plugin-arch/cacti-plugin-0.8.7g-PA-v2.8.diff

rm -rf cacti-plugin-arch

第二种是使用已经patch好的文件覆盖源文件:

cd cacti-plugin-arch/files-0.8.7d/

cp –rf */usr/local/wwwroot/cacti    复制相关文件到 cacti下

接下来:


cd~/cacti-plugin-arch/
mysql -u root -p cacti<pa.sql
这个文件不导入的话,将来会看不到pluginmanagement这个页面,对其他的影响不大,但是我们要用npc(nagios plugin),一定要用这个。

接下来编辑一下文件以符合自己的设置
vi/usr/share/cacti/include/global.php
修改mysql的用户密码
$database_username ="cacti";
$database_password ="cacti";
$config['url_path'] ='/cacti/';

#vi/usr/share/cacti/include/config.php
 
  $plugins = array();
  $url_path = "/cacti/";

这样,plugin arch的安装完成了,下面就是plugin的安装了。

4.安装NPC,Settings和Thold
这一部分相对来说比较简单。
首先就是下载这些plugin
cd /usr/share/cacti/plugins
wget http://cactiusers.org/downloads/settings.tar.gz
wget http://cactiusers.org/downloads/thold.tar.gz
wget http://www.constructaegis.com/downloads/npc-2.0.4.tar.gz

然后分别解压
tar xzf settings.tar.gz
tar xzf thold.tar.gz
tar xzf npc-2.0.4.tar.gz

接下来在global.php中加载settings和thold
vi/usr/share/cacti/include/global.php
添加下面内容
$plugins[] = 'settings';
$plugins[] = 'thold';
回到网页中,记得要去user managerment里面,给予相应用户的permissions,具体做法是,点页面左边的菜单UserManagerment,然后在右边点击某个用户(如admin),然后在RealmPermissions中选中相应的选项即可。

而NPC,直接进入网页,点击左边的Plugin Management,然后在右边的Uninstalled中installNPC,在Installed中enable NPC,就可以了。
这里要说一下Thold这个plugin,这个plugin的作用就是对某项数据设定一个范围,超过这个范围就会发alarm,比如说我监控cpu,设定cpu使用率大于90%就发mail给我。

6.安装NDoutils
NDoutils算是Nagios的mysqlmod吧,可以把Nagios的情况同步到mysql里面,这也是整个安装步骤中最关键的。因为只有同步到mysql里,才可以让NPC得到相关的信息。

一开始还是先安装一个package,因为NDoutils要用到mysql的一些源文件。
apt-get install libmysql++-dev

然后下载NDoutils并编译
mkdir ~/ndoutils
cd ~/ndoutils
wget http:/ndoutils-1.4b7.tar.gz今天我无法连到sourceforge,没法给出具体的地址,可以到
这里去找,注意一定要1.4b7的。
tar xzf ndoutils-1.4b7.tar.gz
cd ~/ndoutils/ndoutils-1.4b7
./configure
make

接下来安装,不是用make install
cd~/ndoutils/ndoutils-1.4b7/src
cp ndomod-3x.o ndo2db-3x log2ndo file2sock/usr/local/nagios/bin
cd~/ndoutils/ndoutils-1.4b7/config
cp ndomod.cfg ndo2db.cfg/usr/local/nagios/etc/

修改一下相关的配置
vi/usr/local/nagios/etc/ndo2db.cfg
更改以下内容
db_name = cacti
db_prefix = npc_
db_user = cacti
db_pass = cacti
debug_level = 1
这里是用Cacti在mysql中使用的用户和密码以及数据库,因为我们这个npc的plugin是用在cacti中的嘛。

改一下Nagios的config文件,使NDoutils可以在Nagios中加载
vi/usr/local/nagios/etc/nagios.cfg
更改
check_external_commands = 1
command_check_interval = -1
event_broker_options = -1
添加
broker_module =/usr/local/nagios/bin/ndomod-3x.oconfig_file=/usr/local/nagios/etc/ndomod.cfg

然后分别启动NDoutils和Nagios
/usr/local/nagios/bin/ndo2db-3x -C/usr/local/nagios/etc/ndo2db.cfg
/etc/init.d/nagios start

最后的工作是在Web里面配置一下NPC
在Cacti中,点击左边的Settings,点到NPC的tab,勾上Remote Commands,Nagios CommandFile Path中输入/usr/local/nagios/var/rw/nagios.cmd,NagiosURL中输入http://yourserver/nagios/,然后Save一下。

原创粉丝点击