设为首页 收藏本站
查看: 2373|回复: 0

[经验分享] Cacti+Nagios监控系统(四):Cacti整合Nagios

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-7-30 08:44:00 | 显示全部楼层 |阅读模式
一、原理
    整合cacti和nagios是利用了cacti的一个插件nagios for cacti,它的原理是将nagios的数据通过ndo2db导入到mysql数据库(cacti的库中),然后cacti读取数据库信息将nagios的结果展示出来。
二、cacti扩展模块
    cacti扩展模块需要下载安装cacti-plugin,cacti-0.8.8a及以后版本已集成此扩展模块不需要再单独安装,如果使用的是老版本cacti,扩展模块安装如下:   
  cd /root/download
  wget http://www.cacti.net/downloads/p ... 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 -u cactier -p 123456 cactidb < pa.sql
  patch -p1 -N < cacti-plugin-0.8.7h-PA-v3.0.diff
  vim include/config.php
    $url_path = "/cacti/";   
  从web进入cacti,启用cacti plugin扩展
三、安装Ndoutils插件
  1、安装Ndoutils
    cd /root/download
    wget http://jaist.dl.sourceforge.net/ ... outils-2.0.0.tar.gz
    tar zxvf ndoutils-2.0.0.tar.gz
    cd ndoutils-2.0.0
    ./configure  --prefix=/usr/local/nagios/  --with-mysql-inc=/usr/include/mysql   --with-mysql-lib=/usr/lib64/mysql  --enable-mysql  --disable-pgsql   --with-ndo2db-user=nagios --with-ndo2db-group=nagios
    make
  2、准备配置文件
    cd db
    ./installdb -u cactier -p 123456 -h localhost -d cactidb
    cd ..
    cp src/{ndomod-4x.o,ndo2db-4x,log2ndo,file2sock} /usr/local/nagios/bin
    nagios是4.x版本的就使用ndomod-4x.o和ndo2db-4x,如果是3.x版本就复制对应的3x文件
    cp config/ndomod.cfg-sample /usr/local/nagios/etc/ndomod.cfg
    cp config/ndo2db.cfg-sample /usr/local/nagios/etc/ndo2db.cfg
    cd /usr/local/nagios/etc/
    chown nagios:nagios ndo2db.cfg ndomod.cfg
    chmod 664 ndo2db.cfg ndomod.cfg
    cd /usr/local/nagios/bin
    mv ndo2db-4x ndo2db
    mv ndomod-4x.o ndomod.o
    chown nagios:nagios *
3、修改配置文件
    vi /usr/local/nagios/etc/nagios.cfg
#注意,broker_module和config_file放在一行
broker_module=/usr/local/nagios/bin/ndomod.o config_file=/usr/local/nagios/etc/ndomod.cfg  event_broker_options=-1
process_performance_data=1
    vi /usr/local/nagios/etc/ndo2db.cfg
socket_type=tcp
db_servertype=mysql
db_host=localhost
db_port=3306
db_name=cactidb
db_prefix=npc_
db_user=cactier
db_pass=123456

    vi /usr/local/nagios/etc/ndomod.cfg
output_type=tcpsocket
output=127.0.0.1
  4、启动守护进程
    /usr/local/nagios/bin/ndo2db -c /usr/local/nagios/etc/ndo2db.cfg
    cd /root/download/ndoutils-2.0.0
    cp ./daemon-init /etc/init.d/ndo2db
    chmod +x /etc/init.d/ndo2db
    service ndo2db status
    chkconfig --add ndo2db
    chkconfig ndo2db on
四、安装NPC插件
  介绍:全称Nagios Plugin for Cacti,将nagios的数据通过ndo2db导入到mysql数据库(前面设置的npc_开头的表),然后cacti读取数据库信息将nagios的结果通过NPC展示出来。
  1、安装npc
    cd /root/download
    wget http://down.drv5.cn/www.drv5.cn/npc-2.0.4.tar.gz
    tar zxvf npc-2.0.4.tar.gz
    mv npc /var/www/html/cacti/plugins/
    vi /var/www/html/cacti/include/config.php
      $plugins[] = 'npc';
  2、页面设置npc
    user management-->admin-->勾上Plugin Management
    Plugin Management-->点击install图标、点击enable图标
    settings-->NPC-->设置如下
wKioL1PXEz_z_eDtAAA3soVYYoM649.jpg
  3、安装json:支持npc
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。
注意:先执行第4步的php -m查看是否加载了json,有则跳过3、4步,
    cd /root/download
    wget http://pkgs.fedoraproject.org/re ... 5539/json-1.2.1.tgz
    tar zxvf json-1.2.1.tgz
    cd json-1.2.1
    vi JSON_parser.c
      #define ZVAL_DELREF Z_DELREF_P
    phpize  
    ./configure
    make && make install
  4、配置php以支持json
    vi /etc/php.d/json.ini
      extension=json.so
    service httpd restart
    查看是否有json被加载
    php -m
    查看是否有导入信息
    php -i | grep php.ini  
5、修改数据库(缺少个别字段)
    tail /var/log/messages
    ndo2db: mysql_error: 'Unknown column 'long_output' in 'field list''
    mysql -ucactier -p123456
    use cactidb;
    ALTER TABLE npc_eventhandlers ADD long_output TEXT NOT NULL DEFAULT '' AFTER output;
    ALTER TABLE npc_hostchecks ADD long_output TEXT NOT NULL DEFAULT '' AFTER output;
    ALTER TABLE npc_hoststatus ADD long_output TEXT NOT NULL DEFAULT '' AFTER output;
    ALTER TABLE npc_notifications ADD long_output TEXT NOT NULL DEFAULT '' AFTER output;
    ALTER TABLE npc_servicechecks ADD long_output TEXT NOT NULL DEFAULT '' AFTER output;
    ALTER TABLE npc_servicestatus ADD long_output TEXT NOT NULL DEFAULT '' AFTER output;
    ALTER TABLE npc_statehistory ADD long_output TEXT NOT NULL DEFAULT '' AFTER output;
    ALTER TABLE npc_systemcommands ADD long_output TEXT NOT NULL DEFAULT '' AFTER output;
    ALTER TABLE npc_services ADD importance smallint(6) NOT NULL DEFAULT '0';
    ALTER TABLE npc_hosts ADD importance smallint(6) NOT NULL DEFAULT '0';
    ALTER TABLE npc_contacts ADD minimum_importance smallint(6) NOT NULL DEFAULT '0';
    quit
6、重启服务
    service mysqld restart
    service httpd restart
    service ndo2db restart
    service nagios restart
  7、观察日志
    tail /usr/local/nagios/var/nagios.log
    tail /var/www/html/cacti/log/cacti.log
    tail /var/log/mysqld.log
    tail /var/log/messages
五、遇到的问题
1、NPC页面上显示Nagios为Off
    错误:
    wKioL1PXFaDC_rpsAAA7_nODoNk432.jpg

    tail /usr/local/nagios/var/nagios.log
    ndomod: Could not open data sink!  I'll keep trying, but some output may get lost...
    解决:
    cd /usr/local/nagios/etc/
    chown nagios:nagios ndo2db.cfg ndomod.cfg
    chmod 664 ndo2db.cfg ndomod.cfg
    service ndo2db restart
    service nagios restart
2、ndo2db服务启动失败
    错误:
    Could not bind socket: Address already in use
    解决:
    ps aux|grep ndo2db 看到多个ndo2db的进程
    kill-9 进程id 杀掉进程,再重新运行
    sudo /usr/local/nagios/bin/ndo2db -c /usr/local/nagios/etc/ndo2db.cfg
  3、消息发送失败
    错误:
    tail /var/log/message
    ndo2db: Warning: queue send error, retrying... ndo2db: Message sent to queue.
    解决:
    vi /etc/sysctl.conf
    kernel.msgmax = 131072000
    kernel.msgmnb = 131072000
    kernel.msgmni = 65536000


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-22900-1-1.html 上篇帖子: Cacti+Nagios监控系统(三):安装Nagios 下篇帖子: Cacti+Nagios监控系统(五):Cacti安装插件 监控系统
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表