zoukankan      html  css  js  c++  java
  • Cacti+Nagios监控平台完美整合

    Cacti+Nagios监控平台完美整合

    本博文出自51CTO博客吴光科博主,有任何问题请进入博主页面互动讨论!
    博文地址:http://wgkgood.blog.51cto.com/1192594/1575830

    近期有很多同学对nagios和cacti整合很是纠结,特写此文方便大家参考,解决大家在nagios和cacti整合的过程中遇到的问题。

    一、Cacti安装部署

    作为一名Linux SA,日常最重要的就是保证网站正常稳定的运行,我们需要实时监控网站、服务器的运行状态,这时需要借助开源软件(cacti、nagios、zabbix等)监控来实现。

    Cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。

    Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下,一般以rra为后缀名称)。简单原理图如下:

    wKiom1RjLqGQZj6_AADtWDiurSU684.jpg

    1、Cacti服务器端安装

    官网下载cacti相关软件,一共需要三个软件,下载地址分别如下:

    1. http://www.cacti.net/downloads/cacti-0.8.8a.tar.gz 
    2. http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.5.tar.gz 
    3. http://www.cacti.net/downloads/spine/cacti-spine-0.8.8a.tar.gz 

    2、安装LAMP系统环境

    这里采用yum安装方式,安装命令:

    yum install  httpd  mysql   mysql-server    php   php-mysql php-json php-pdo   -y

    3、安装rrdtool采集工具

    安装rrdtool之前需要安装相应的lib库,如下安装:

    1. yum install cairo-devel libxml2-devel pango pango-devel –y 
    2. tar xzf rrdtool-1.4.5.tar.gz  ;cd rrdtool-1.4.5  ; ./configure --prefix=/usr/local/rrdtool/ 
    3. make  &&make install;ln -s /usr/local/rrdtool/bin/* /usr/local/bin/ 

    4、安装SNMP服务

    yum install net-snmp  net-snmp-utils  –y  

    5、安装cacti主程序

    tar xzf cacti-0.8.8a.tar.gz && mv cacti-0.8.8a   /var/www/html/cacti/

    6、创建cacti数据库

    1. mysql -uroot –p  输入你的密码进入数据库,然后创建数据库: 
    2. create database cacti;创建数据库 
    3. grant all on cacti.* tocacti@'localhost' identified by "123456";创建用户并授权 
    4. flush privileges; 刷新权限 

    7、mysql配置完毕后,把cacti数据导入cacti数据库

    1. mysql  -ucacti -p123456  cacti</var/www/html/cacti/cacti.sql 
    2. 配置完mysql后,我们需要设置cacti  rra、log 目录的权限,这里设置为777: 
    3. chmod -R  777 /var/www/html/cacti/rra/ 
    4. chmod -R  777 /var/www/html/cacti/log/ 

    8、修改cacti全局配置文件

    vi /var/www/html/cacti/include/config.php为如下配置:

    wKiom1RjLq-whgGYAAI-UjHp99o579.jpg

    9、添加Rrdtool抓图任务计划

    */5  * * * */usr/bin/php /var/www/html/cacti/poller.php >>/tmp/cacti_rrdtool.log 2>&1

    10、Cacti安装完毕,测试访问

    通过http://ip/cacti/访问出现如下界面,点击NEXT下一步。

    wKioL1RjLymQ1yM5AALp9Ve5jgg677.jpg

    默认一直点击下一步:

    wKiom1RjLsrwAzozAAG3etnSBdQ560.jpg

    进入登录界面,第一次需要修改密码:

    wKioL1RjL0DAXO7PAADu0rFQyuo031.jpg

    11、进入Cacti配置管理界面

    wKiom1RjLt3QfqEnAAF1-gbA02s729.jpg

    12、点击device,可以添加设备,默认可以看到127.0.0.1这台服务器。右上角Add可以增加设备。

    wKiom1RjLuaA_uUoAANYI2LaHFA190.jpg

    点击localhost可以看到具体的设置,包括采用的snmp协议版本,监控的名称等:

    wKioL1RjL13iNeTSAAQ-gKm1Doo377.jpg

    如果出现snmp error,检查snmp服务是否已启动,或者是否有权限。出现如上信息则表示正常。

    点击左上角第二个按钮,graphs查看cacti图像—选择localhost主机—右边会显示cacti每5分钟的监控图像。

    wKiom1RjLvuwRsqyAAUTFoNPYUE616.jpg

    更多cacti深入知识,可以一起交流。

    二、 Nagios部署配置

    鉴于篇幅的问题,这里nagios部署就略过了,有兴趣的同学可以参考我的从入门到高级的课程哦,这里直接讲解nagios+cacti如何来整合。

    首先需要安装php json模块和ndoutils,其中Ndoutils是nagios的一个插件,就是可以用来把nagios的获取的数据存入到mysql数据库中。也可以实现与cacti的插件npc的集成,这个工具的安装是个关键。

    Php-json安装方法:

    1. wget http://down1.chinaunix.net/distfiles/json-1.2.1.tgz 
    2. tar xzf json-1.2.1 ;cd json-1.2.1 ;/usr/bin/phpize ;./configure ;make ;make install 

    安装完后,然后执行如下语句添加json模块:

    echo "extension=json.so" >/etc/php.d/json.ini

    重启apache服务器,通phpinfo.php页面可以看到如下内容即可:

    wKiom1RjLxDhE8zdAADj2yO1p8g683.jpg

    注意*如果没有正确加载这个模块,可以使用命令查看:

    php -m |grep json 如果提示一个json,则表示模块加载正确,如果提示libxx.so则表示错误,解决方法:yum remove php-common,然后重新安装common就OK。

    1、安装ndoutils:

    1. wget http://downloads.sourceforge.net/project/nagios/ndoutils-1.x/ndoutils-1.4b9/ndoutils-1.4b9.tar.gz 
    2. tar xzf ndoutils-1.4b9.tar.gz;cd ndoutils-1.4b9 ;./configure--with-mysql-inc=/usr/include/mysql --with-mysql-lib=/usr/lib/mysql--enable-mysql --with-ndo2db-user=nagios --with-ndo2db-group=nagios&&make &&make install 

    接下来配置ndoutils:

    cp config/ndo2db.cfg-sample /usr/local/nagios/etc/ndo2db.cfg

    cp config/ndomod.cfg-sample /usr/local/nagios/etc/ndomod.cfg

    ndo2db.cfg内容如下:

    1. ndo2db_user=nagios 
    2. ndo2db_group=nagios 
    3. socket_type=tcp 
    4. socket_name=/usr/local/nagios/var/ndo.sock 
    5. tcp_port=5668 
    6. db_servertype=mysql 
    7. db_host=localhost 
    8. db_port=3306 
    9. db_name=cacti 
    10. db_prefix=npc_ 
    11. db_user=cacti 
    12. db_pass=123456 
    13. max_timedevents_age=1440 
    14. max_systemcommands_age=10080 
    15. max_servicechecks_age=10080 
    16. max_hostchecks_age=10080 
    17. max_eventhandlers_age=44640 
    18. debug_level=
    19. debug_verbosity=
    20. debug_file=/usr/local/nagios/var/ndo2db.debug 
    21. max_debug_file_size=1000000 

    ndomod.cfg内容如下:

    1. instance_name=default 
    2. output_type=tcpsocket 
    3. output=127.0.0.1 
    4. tcp_port=5668 
    5. output_buffer_items=5000 
    6. buffer_file=/usr/local/nagios/var/ndomod.tmp 
    7. file_rotation_interval=14400 
    8. file_rotation_timeout=60 
    9. reconnect_interval=15 
    10. reconnect_warning_interval=15 
    11. data_processing_options=-1 
    12. config_output_options=

    同时在nagios.cfg文件最末尾添加如下语句:

    broker_module=/usr/local/nagios/bin/ndomod.o config_file=/usr/local/nagios/etc/ndomod.cfg

    2、安装npc软件:

    wget  ftp://ftp.mirrorservice.org/sites/downloads.sourceforge.net/g/gi/gibtmirdas/npc-2.0.4.tar.gz

    tar xzf npc-2.0.4.tar.gz ;mv npc /var/www/html/cacti/plugins/

    通过界面启用NPC

    wKioL1RjL4ngeNIpAAGutIHsFUA752.jpg

    3、选择启用,然后点击settings,找到NPC项,填入如下内容即可。

    wKiom1RjLyfwZSEeAAQoClyfAo0312.jpg

    4、然后后台启动nod2db服务:

    /usr/local/nagios/bin/ndo2db -c /usr/local/nagios/etc/ndo2db.cfg

    查看后台日志还需要在mysql里面执行如下sql即可:

    1. mysql> use cacti; 
    2. alter table npc_eventhandlers add long_output TEXT NOT NULL default '' after output; 
    3. alter table npc_hostchecks add long_output TEXT NOT NULL default '' after output; 
    4. alter table npc_hoststatus add long_output TEXT NOT NULL default '' after output; 
    5. alter table npc_notifications add long_output TEXT NOT NULL default '' after output; 
    6. alter table npc_servicechecks add long_output TEXT NOT NULL default '' after output; 
    7. alter table npc_servicestatus add long_output TEXT NOT NULL default '' after output; 
    8. alter table npc_statehistory add long_output TEXT NOT NULL default '' after output; 
    9. alter table npc_systemcommands add long_output TEXT NOT NULL default '' after output; 

    执行成功后,重启nagios和ndo2db即可,通过页面刷新可以看到如下界面即代表整合成功。

    wKioL1RjL6bw-7bYAATC-l1PqjI207.jpg

    wKiom1RjLznAKh49AAW9rA9gy9A663.jpg

    自此,nagios+cacti整合完毕,欢迎大家一起交流!

  • 相关阅读:
    新一代MQ apache pulsar的架构与核心概念
    Flutter使用fluwx实现微信分享
    BZOJ3622 已经没有什么好害怕的了 动态规划 容斥原理 组合数学
    NOIP2016提高组Day1T2 天天爱跑步 树链剖分 LCA 倍增 差分
    Codeforces 555C Case of Chocolate 其他
    NOIP2017提高组Day2T3 列队 洛谷P3960 线段树
    NOIP2017提高组Day2T2 宝藏 洛谷P3959 状压dp
    NOIP2017提高组Day1T3 逛公园 洛谷P3953 Tarjan 强连通缩点 SPFA 动态规划 最短路 拓扑序
    Codeforces 873F Forbidden Indices 字符串 SAM/(SA+单调栈)
    Codeforces 873E Awards For Contestants ST表
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/4122241.html
Copyright © 2011-2022 走看看