cacti和nagios的整合

前沿:cacti和nagios监控各有各的优点,要是能整合到一起就非常完美了。
我们可以通过一些脚本来时它们有联系:
nagios通过使用ndoutils包可以把nagios的监控内容存放到mysql中去
cacti通过使用npc插件获取mysql的数据,并且显示[安装npc时要先安装插件框架:cacti-plugin-0.8.7f-PA]


=================================安装步骤===============================
这里的前提是安装好了cacti和nagios的。要是没有安装好就可以看看nagios安装.txt和cacti安装.txt文件。  这里注意了:cacti的选择 不要选择最新版本,cacti-0.8.7g的要不然在使用npc是会不显示的,我是使用的是cacti-0.8.7.e和cacti-plugin-0.8.7f-PA和npc2.0.4.tar



==============================================先对nagios进行处理:安装ndoutils=============================================
安装前的依赖包:
nagios
mysql
cpan DBI #非必需   (安装DBI和DBD也有文件夹参考)
cpan DBD::mysql #非必需



2.关联mysql头文件和库(这个步骤可以先不要去做,也许mysql的安装时安装默认安装路径的,等后面报错是,看看是不是少了mysql的包时在来做)
   ln -s /opt/mysql/include/* /usr/include/
    ln -s /opt/mysql/lib/* /usr/lib/
    echo '/usr/lib' >> /etc/ld.so.conf
   ldconfig -v                             [这个步骤是动态加载库 http://blog.chinaunix.net/uid-25316333-id-3080921.html]

问题:在ln -s /opt/mysql/include/* /usr/include/  报  ln -s  /usr/include/mysql已经有了,你可以把/usr/include/mysql 修改为保存下 mv /usr/include/mysql /usr/include/mysql_bak
 ln -s /opt/mysql/lib/* /usr/lib/  也一样


3.安装ndoutils
$wget -c http://nchc.dl.sourceforge.net/sourceforge/nagios/ndoutils-1.4b7.tar.gz
$tar zxvf ndoutils-1.4b7.tar.gz
$cd ndoutils-1.4b7
$./configure --prefix=/usr/local/nagios --enable-mysql --disable-pgsql LDFLAGS=-L/opt/mysql/lib --with-mysql-inc=/opt/mysql/include/mysql --with-mysql-lib=/opt/mysql/lib/mysql
(这里nagios是安装在/usr/local/nagios目录下的)




4.拷贝文件
# 我的Nagios是3.0.6,所以拷贝的是ndomod-3x.o、ndo2db-3x,如果你的是2.X.x请拷贝ndomod-2x.o、ndo2db-2x
$ cd src
$cp ndomod-3x.o ndo2db-3x log2ndo file2sock /opt/nagios/bin/      (根据我的nagios 版本号的不同来确定是拷ndomod-3x.o、ndo2db-3x)
$chown -R nagios:nagios /opt/nagios/bin/*
$cd  ..
$cd config
$ cp ndo* /opt/nagios/etc/

5:创建ndo的mysql 数据库及用户(这不在前面应该都做了,可以省略)


   CREATE DATABASE cacti DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
   GRANT select,insert,update,delete ON cacti.* TO nagiosndo@localhost identified by 'password123';
   FLUSH PRIVILEGES ;


6:配置文件的修改:
$cp /opt/nagios/ndomod.cfg-sample /opt/nagios/etc/ndomod.cfg
$cp /opt/nagios/ndo2db.cfg-sample /opt/nagios/etc/ndo2db.cfg

6.1修改ndo2db.cfg文件
vi /usr/local/nagios/etc/ndo2db.cfg


socket_type=tcp
socket_name=/usr/local/nagios/var/ndo.sock
db_name=cacti
db_prefix=npc_
db_user=cacti
db_pass=cacti2011
debug_level=1

6.2修改nagios的主文件
vi /usr/local/nagios/etc/nagios.cfg
event_broker_options=-1
broker_module=/usr/local/nagios/bin/ndomod-3x.o  config_file=/usr/local/nagios/etc/ndomod.cfg
process_performance_data=1

6.3修改ndomod.cfg
vi /usr/local/nagios/etc/ndomod.cfg  (修改以tcp协议传输)
output_type=tcpsocket
output=127.0.0.1

7:导入数据库中的表的结构:
方法一:
必须要有
cpan DBI
cpan DBD::mysql 支持
在解压文件目录下:./db/installdb -u root -p 123456 -h localhost -d cacti
方法2:/opt/mysql/bin/mysql -u root -p -d nagios -h localhost < ./db/mysql.sql

应该会有59个表的


(7)启动ndo2db
/usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg

查看日志
tail -100 /var/log/messages
tail -100 /usr/local/nagios/var/nagios.log
tail -100 /usr/local/nagios/var/ndo2db.debug

错误:
tail -100 /var/log/messages
localhost ndo2db-3x: mysql_error: 'Unknown column 'long_output' in 'field list''
这要是由于缺少'long_output' 字段照成的添加就ok了:


ALTER TABLE npc_eventhandlers ADD long_output TEXT  AFTER output;
ALTER TABLE npc_hostchecks ADD long_output TEXT   AFTER output;
ALTER TABLE npc_hoststatus ADD long_output TEXT   AFTER output;
ALTER TABLE npc_notifications ADD long_output TEXT  AFTER output;
ALTER TABLE npc_servicechecks ADD long_output TEXT   AFTER output;
ALTER TABLE npc_servicestatus ADD long_output TEXT   AFTER output;
ALTER TABLE npc_statehistory ADD long_output TEXT   AFTER output;
ALTER TABLE npc_systemcommands ADD long_output TEXT   AFTER output;


==================================================================安装cacti-plugin=============================================================
1:下载解压
$cd /u01
$wget http://mirror.cactiusers.org/downloads/plugins/cacti-plugin-0.8.7e-PA-v2.6.zip
$unzip cacti-plugin-0.8.7e-PA-v2.6.zip
$chown -R cacti:cacti cacti-plugin-arch/
2.导入数据库结构
mysql -u cacti -p cacti<cacti-plugin-arch/pa.sql
3:覆盖文件
方法1:cp –rf cacti-plugin-arch/files-0.8.7e/* /opt/htdocs/www/cacti
方法2:cp cacti-plugin-arch/cacti-plugin-0.8.7e-PA-v2.6.diff /opt/htdocs/www/cacti/
cd /opt/htdocs/www/cacti/
patch -p1 -N <cacti-plugin-0.8.7e-PA-v2.6.diff

4:配置文件:
$cd /opt/htdocs/www/cacti/
$vi include/global.php
插件数据库需再配置一下
   database_type = "mysql";
   database_default = "cacti";
    database_hostname = "127.0.0.1";
 database_username = "cactiuser";
  database_password = "cacti";
5.配制插件
还是在$vi include/global.php

    #我的cacti安装在域下的cacti目录,这里也需修改
    $config['url_path'] = '/cacti/';
    
    #为后面安装npc增加变量
   $plugins[] = 'npc';

注:0.8.7g开始上面两变量改放在includes/config.php中,如果参照以前的教程会找不到了囧
参见Change Log
http://forums.cacti.net/viewtopic.php?t=38492

=========================================================安装npc=============================================================
安装的前提是要安装了cacti-plugin (cacti的插件架构)http://viong.blog.51cto.com/844766/288278

npc下载的官网网站下载不了,不知道怎么回事:可以使用:http://www.scsorlando.com/files/npc2.0.4.tar 下载,这个地址要是也不行的话,就在google上搜下

npc要有json的支持,所以先安装json (http://bbs.linuxtone.org/thread-17617-1-1.html)
1:下载解压  
$wget  http://pkgs.fedoraproject.org/re ... 5539/json-1.2.1.tgz  
$tar xzvf json-1.2.1.tgz
$cd json-1.2.1
$phpize      
(如果发现没有Phpize文件,则是因为php-devel包没有安装导致的,这要那种php-devel)
$/configure
$make &&make install


检查下看看现在是不是支持json:
编写php:vi test.php
<?php
phpinfo();
phpinfo(INFO_GENERAL);
phpinfo(1);
?>
放到web的目录下:用浏览器打开http://ip/test.php
看到了php的属性(向下拖):
json
json support     enabled
json version     1.2.1
有这个就说明支持了


二:下载并安装npc
下载地址:http://www.scsorlando.com/files/npc2.0.4.tar

解压:tar -xvf   npc2.0.4.tar
$ mv npc /opt/cacti/plugins
$chown -R cacti:cacti /opt/cacti/plugins/npc

三:启用npc插件:

以admin用户登陆cacti,在console中的user management里对admin的用户权限进行编辑,
勾选上Plugin Management
然后到Configuration=》Plugin Management  -》点击install
安装并启用NPC即可。
在Settings->npc中
勾上Remote Commands
Nagios Command File Path=/usr/local/nagios/var/rw/nagios.cmd
Nagios URL=你的地址(http://nagios.c1gstudio.com/nagios/)
=================
主要的参考文献:http://rickie622.blog.163.com/blog/static/21238811201131910416981/
http://rickie622.blog.163.com/blog/static/2123881120113191009576/
http://blog.c1gstudio.com/archives/635


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
图像识别技术在病虫害检测中的应用是一个快速发展的领域,它结合了计算机视觉和机器学习算法来自动识别和分类植物上的病虫害。以下是这一技术的一些关键步骤和组成部分: 1. **数据收集**:首先需要收集大量的植物图像数据,这些数据包括健康植物的图像以及受不同病虫害影响的植物图像。 2. **图像预处理**:对收集到的图像进行处理,以提高后续分析的准确性。这可能包括调整亮度、对比度、去噪、裁剪、缩放等。 3. **特征提取**:从图像中提取有助于识别病虫害的特征。这些特征可能包括颜色、纹理、形状、边缘等。 4. **模型训练**:使用机器学习算法(如支持向量机、随机森林、卷积神经网络等)来训练模型。训练过程中,算法会学习如何根据提取的特征来识别不同的病虫害。 5. **模型验证和测试**:在独立的测试集上验证模型的性能,以确保其准确性和泛化能力。 6. **部署和应用**:将训练好的模型部署到实际的病虫害检测系统中,可以是移动应用、网页服务或集成到智能农业设备中。 7. **实时监测**:在实际应用中,系统可以实时接收植物图像,并快速给出病虫害的检测结果。 8. **持续学习**:随着时间的推移,系统可以不断学习新的病虫害样本,以提高其识别能力。 9. **用户界面**:为了方便用户使用,通常会有一个用户友好的界面,显示检测结果,并提供进一步的指导或建议。 这项技术的优势在于它可以快速、准确地识别出病虫害,甚至在早期阶段就能发现问题,从而及时采取措施。此外,它还可以减少对化学农药的依赖,支持可持续农业发展。随着技术的不断进步,图像识别在病虫害检测中的应用将越来越广泛。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值