Cacti简介及部署

一 Cacti简介
   Cacti是一套基于PHP,MySQL,SNMPRRDTool开发的网络流量监测图形分析工具。采用PHP进行前端代码驱动通过SNMP获得被监控主机的数据信息rrdtool关系着数据存储和图表的生成Mysql配合PHP程序存储一些变量数据并对变量数据进行调用它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善。Cacti的发展是基于让RRDTool使用者更方便使用该软件,除了基本的Snmp流量跟系统资讯监控外,Cacti也可外挂Scripts及加上Templates来作出各式各样的监控图。

   snmp(Simple Network Management Protocal,简单网络管理协议)在架构体系的监控子系统中将扮演重要角色。大体上,其基本原理是,在每一个被监控的主机或节点上(如交换机)都运行了一个agent,用来收集这个节点的所有相关的信息,同时监听snmpport,也就是UDP 161,并从这个端口接收来自监控主机的指令(查询和设置)如果安装net-snmp,被监控主机需要安装net-snmp(包含了snmpd这个agent),而监控端需要安装net-snmp-utils,若接受被监控端通过trap-communicate发来的信息的话,则需要安装net-snmp,并启用trap服务。如果自行编译,需要beecrypt(libbeecrypt)elf(libraryelf)的库。

   snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(Round Robin Archive),它能够存储的数据笔数在创建时就已经定义。

   RRDtool是指Round Robin Database工具(环状数据库)Round robin是一种处理定量数据、以及当前元素指针的技术。想象一个周边标有点的圆环--这些点就是时间存储的位置。从圆心画一条到圆周的某个点的箭头--这就是指针。就像我们在一个圆环上一样,没有起点和终点,你可以一直往下走下去。过来一段时间,所有可用的位置都会被用过,该循环过程会自动重用原来的位置。这样,数据集不会增大,并且不需要维护。RRDtool处理RRD数据库。它用向RRD数据库存储数据、从RRD数据库中提取数据。


二 Cacti搭建

   1.Cacti服务端
   1.lamp环境搭建
  1. #安装httpd
  2. yum install httpd -y
  3. systemctl enable httpd
  4. systemctl start httpd
  5. #开启防火墙80端口
  6. firewall-cmd --permanent --add-port=80/tcp
  7. firewall-cmd --reload
  8. #安装mariadb数据库(mysql开源版)
  9. yum install mariadb mariadb-server -y
  10. systemctl enable mariadb.service
  11. systemctl start mariadb.service
  12. cp /usr/share/mysql/my-huge.cnf /etc/my.cnf
  13. #初始化数据库(输入密码后选项全选yes)
  14. mysql_secure_installation
  15. #安装php
  16. yum install php php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-bcmath php-mhash -y
  17. #修改时区
  18. vim /etc/php.ini
  19. date.timezone =PRC #878行
  20. #重启mariadb,httpd
  21. systemctl restart mariadb.service
  22. systemctl restart httpd
  23. #编辑text.php文件测试网页
   2.安转配置Cacti
  1. #cacti软件下载
  2. cd /usr/local/src/
  3. wget http://www.cacti.net/downloads/cacti-0.8.8f.tar.gz
  4. tar zxvf cacti-0.8.8f.tar.gz
  5. mv cacti-0.8.8f /var/www/html/cacti
  6. #创建cacti数据库和cacti用户,赋予权限
  7. mysql -u root -p123456
  8. grant all on cacti.* to cacti@localhost identified by '12345';
  9. flush privileges;
  10. exit
  11. #导入默认的cacto.sql数据库
  12. mysql -uroot -p cacti </var/www/html/cacti/cacti.sql
  13. #编辑修改config.php,配置数据库参数
  14. vim /var/www/html/cacti/include/config.php
  15. $database_type = "mysql";
  16. $database_default = "cacti";
  17. $database_hostname = "localhost";
  18. $database_username = "cacti";
  19. $database_password = "12345";
  20. $database_port = "3306";
  21. $database_ssl = false;
  22. #安装rrdtool,存储数据,生成图像
  23. yum -y install rrdtool rrdtool-devel rrdtool-php rrdtool-perl
  24. #rrdtool绘制图像需要的图形库
  25. yum -y install gd gd-devel php-gd
  26. #安装snmp服务
  27. yum -y install net-snmp net-snmp-utils php-snmp net-snmp-libs
  28. #修改snmp配置文件
  29. vim /etc/snmp/snmpd.conf
  30. com2sec notConfigUser 127.0.0.1 public #41行
  31. access notConfigGroup "" any noauth exact al l none none #62行
  32. view all included .1 80 #85行
  33. systemctl restart snmpd.service
  34. systemctl enable snmpd.service
  35. #添加cacti用户并授权关于cacti相关目录的权限
  36. useradd -r -M cacti
  37. chown -R cacti /var/www/html/cacti/rra/
  38. chown -R cacti /var/www/html/cacti/log/
  39. #配置一个抓图的计划任务
  40. crontab -e
  41. */5 * * * * /usr/bin/php /var/www/html/cacti/poller.php >> /tmp/cacti_rrdtool.log
  42. #浏览器访问cacti管理页面进行安装(http://192.168.1.168/cacti)
  43. #(初始用户和密码 admin)
  44. #接main为以下内容
  45. 1 添加要监控的主机
  46. 2 选择监控模板
  47. 3 选择监控资源
  48. 4 给监控的资源创建图片
  49. 5 给监控的主机创建图像树
  50. 6 把创建的图片添加的图像树里
  51. 7 收集监控数据
  52. 8 查看监控信息
  53. #测试
  54. /usr/bin/php /var/www/html/cacti/poller.php --force
   3.安装Spine优化 
   注:由于cacti默认使用cmd.php来轮询数据,速度会很慢,特别是在监控节点比较多的情况下,cmd.php就更显不足了,因此我们采用Spine来轮询数据。cacti-spine是一个由C语言开发的,用于替代cmd.php的快速获取数据的引擎。
  1. #编译安转spine
  2. cd /usr/local/src/
  3. #安装编译工具和必要驱动
  4. yum gcc make install net-snmp-devel mysql-devel -y
  5. wget http://www.cacti.net/downloads/spine/cacti-spine-0.8.8f.tar.gz
  6. tar zxvf cacti-spine-0.8.8f.tar.gz
  7. cd cacti-spine-0.8.8f
  8. ./configure
  9. make && make install
  10. #拷贝snmp的配置文件到/etc下
  11. cp /usr/local/spine/etc/spine.conf.dist /etc/spine.conf
  12. #编辑配置文件
  13. vim /etc/spine.conf
  14. DB_Host localhost
  15. DB_Database cacti
  16. DB_User cacti
  17. DB_Pass 12345
  18. DB_Port 3306
  19. #测试spine
  20. /usr/local/spine/bin/spine
  21. #在web设置
  22. #进入cacti页面的spine路径
  23. Console -> Configuration -> Settings -> Paths -> Alternate Poller Path -> Spine Poller File Path->/usr/local/spine/bin/spine
  24. #修改Cacti使用的Poller Type
  25. Console -> Configuration -> Settings ->Poller->Poller Type->spine
  26. #查看日志
  27. cat /var/www/html/cacti/log/cacti.log
  28. 04/04/2017 02:00:01 PM - SYSTEM STATS: Time:0.1766 Method:spine Processes:1 Threads:1 Hosts:2 HostsPerProcess:2 DataSources:5 RRDsProcessed:5
   2.Cacti客户端设置
  1. #安装snmp服务
  2. yum -y install net-snmp net-snmp-devel net-snmp-utils
  3. #编辑配置文件
  4. vim /etc/snmp/snmpd.conf
  5. com2sec notConfigUser 192.168.1.168 public #41行
  6. access notConfigGroup "" any noauth exact all none none #62行
  7. view all included .1 80 #85行
  8. systemctl restart snmpd
  9. systemctl enable snmpd
  10. #防火墙
  11. firewall-cmd --permanent --add-port=161/udp
  12. firewall-cmd --reload
   3.监控实例
   1.监控apache
       1.snmp客户端即apache配置
  1. #安装httpd
  2. yum install httpd -y
  3. systemctl enable httpd
  4. systemctl start httpd
  5. #开启防火墙80端口
  6. firewall-cmd --permanent --add-port=80/tcp
  7. firewall-cmd --reload
  8. #编辑apache配置文件,加入以下开启监控server-status模块
  9. vim /etc/httpd/conf/httpd.conf
  10. ExtendedStatus On
  11. <Location /server-status>
  12. SetHandler server-statu
  13. s
  14. Order deny,allow
  15. Deny from all
  16. Allow from all
  17. </Location>
  18. systemctl restart httpd
  19. #查看监控模块
  20. apachectl -t -D DUMP_MODULES|grep status
  21. status_module (shared)
  22. #查看web状态(访问http://192.168.1.186/server-status)
       2.snmp服务端
  1. #安装监控apache的监控模版
  2. cd /usr/local/src/
  3. wget http://forums.cacti.net/download/file.php?id=18576
  4. unzip ApacheStats_0.8.2.zip
  5. cp ApacheStats_0.8.2/ss_apache_stats.php /var/www/html/cacti/scripts/
  6. #导入模版(用ssh把文件放入windose系统,如果你在linux系统有图形界面,设置更好)
  7. Cacti Web界面导入cacti_host_template_webserver_-_apache.xml模板:(此操作是在windose端进行的)
  8. 点击Import/Export->Import Templates,上传模板即可
  9. #添加服务器并创建图表
  10. 登录Cacti Web界面,添加被监控apache服务器设备,并创建相应图表:
  11. Devices->Add->WebServerApache模板->Create New Graphs,添加所需图表即可。等待一段时间就会出图
   2.监控maria
       1.snmp客户端即mariadb配置
  1. #创建用于监控主机连接mariadb进行监控的用户
  2. mysql -uroot -p123456
  3. create user mysqlstatus@'182.168.1.168' identified by '12345';
  4. grant process,super,replication client on *.* to mysqlstatus@'192.168.1.168';
  5. flush privileges;
  6. exit
  7. firewall-cmd --permanent --add-port=3306/tcp
  8. firewall-cmd --reload
       2.snmp服务端
  1. #mariadb的php文件安装
  2. cd /usr/local/src/
  3. wget https://www.percona.com/downloads/percona-monitoring-plugins/1.1.6/percona-monitoring-plugins-1.1.6.tar.gz
  4. tar -zxf percona-monitoring-plugins-1.1.6.tar.gz
  5. cp percona-monitoring-plugins-1.1.6/cacti/scripts/ss_get_mysql_stats.php /var/www/html/cacti/scripts/
  6. #编辑页面文件
  7. vim /var/www/html/cacti/scripts/ss_get_mysql_stats.php
  8. $mysql_user = 'mysqlstatus'; #30行
  9. $mysql_pass = '12345'; #31行
  10. #web导入模版
  11. Cacti Web界面导入cacti_host_template_percona_mysql_server_ht_0.8.6i-sver1.1.6.xml模板:
  12. 点击Import/Export->Import Templates,上传模板即可
  13. 添加服务器并创建图表
  14. 登录Cacti Web界面,添加被监控mariabdb服务器设备,并创建相应图表:
  15. Devices->Add->dbServerMysql模板->Create New Graphs,添加所需图表即可。等待一段时间就会出图
   4.mail报警
  1. #关闭selinux
  2. sed -i 's/enforcing/permissive/g' /etc/selinux/config
  3. setenforce 0
  4. cd /usr/local/src/
  5. #下载官网插件
  6. #报警setting插件
  7. wget http://docs.cacti.net/_media/plugin:settings-v0.71-1.tgz
  8. mv plugin\:settings-v0.71-1.tgz settings-v0.71-1.tgz
  9. tar -zxf settings-v0.71-1.tgz
  10. mv settings/ /var/www/html/cacti/plugins/
  11. #阀值插件
  12. wget http://docs.cacti.net/_media/plugin:thold-v0.4.9-3.tgz
  13. mv plugin\:thold-v0.4.9-3.tgz thold-v0.4.9-3.tgz
  14. tar -zxf thold-v0.4.9-3.tgz
  15. mv thold/ /var/www/html/cacti/plugins
  16. #主机插件
  17. wget http://docs.cacti.net/_media/plugin:monitor-v1.2-1.tgz
  18. mv plugin\:monitor-v1.2-1.tgz monitor-v1.2-1.tar.gz
  19. tar zxf monitor-v1.2-1.tar.gz -C /var/www/html/cacti/plugins/
  20.  
  21. #web界面 configuration->Plugin Management下安装并开启
  22. #邮件功能设置
  23. Configuration->setting->Mail/DNS #设置完成后save使用右上角sendmail测试
  24. Configuration->setting->Thresholds #设置报警邮箱
  25. Management->Thresholds #设置阀值相关
报错:一般是php的问题,查看http/err_log查看修改

©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值