CentOS6.8搭建cacti与配置

什么是cacti?

Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。Cacti是通过 snmp get来获取数据,使用 RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数。它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善。界面友好。软件 Cacti 的发展是基于让 RRDTool 使用者更方便使用该软件,除了基本的 Snmp 流量跟系统资讯监控外,Cacti 也可外挂 Scripts 及加上 Templates 来作出各式各样的监控图。

Cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。即如果想监控一台主机,需要在被监控主机上安装net-snmp相关软件包,在监控主机上安装rrdtool和cacti。

Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模板信息等变量。

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

利用cron定期执行php脚本代码,通过snmp读取指定监控项目的snmp信息,然后将结果保存到rrdtool数据文件中。在web监控界面中通过php读取rrdtool并生成指定监控项目和指定时间段的监控曲线图。
CentOS6.8搭建cacti与配置_第1张图片

安装依赖

预装环境
$ yum install -y gcc gcc-c++
上传安装包到/usr/local/software目录下,获取源码包方式文章结尾有说明。
安装LAMP
$ yum install -y httpd httpd-devel httpd-tools mysql mysql-server mysql-devel mysql-libs php php-devel php-mysql php-pdo php-common php-cli php-snmp
安装RRDTool和SNMP
$ yum install -y rrdtool rrdtool-devel rrdtool-php rrdtool-perl
$ yum install -y net-snmp*
安装其他依赖,Spine依赖
$ yum install -y openssl-devel
启动服务
$ service httpd start
$ service mysqld start
$ /usr/bin/mysqladmin -u root password 123456
$ service snmpd start
加入开机启动项
$ chkconfig --add httpd
$ chkconfig --add mysqld
$ chkconfig --add snmpd
$ chkconfig httpd on
$ chkconfig mysqld on
$ chkconfig snmpd on

安装cacti

$ rpm -ivh cacti-0.8.8h-1.cn.el6.noarch.rpm 
$ rpm -ivh cacti-spine-0.8.8h-1.el6.x86_64.rpm

配置cacti

$ cd /usr/share/cacti/include
$ vim config.php
$ vim global.php
******************* start *******************
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "cacti";
$database_port = "3306";
$database_ssl = false;
******************* stop *******************
$ mysql -uroot -p123456
> create database if not exists `cacti` default charset utf8 COLLATE utf8_general_ci;
> grant all on cacti.* to 'cacti'@'%' identified by 'cacti';
> grant all on cacti.* to 'cacti'@'localhost' identified by 'cacti';
> flush privileges; 
$ mysql -uroot -p123456 cacti < /usr/share/doc/cacti-0.8.8h/cacti.sql
$ vim /etc/spine.conf
******************* start *******************
DB_Host         localhost
DB_Database     cacti
DB_User         cacti
DB_Pass         cacti
DB_Port         3306
******************* stop *******************
$ service httpd restart

访问192.168.0.68/cacti进入初始化界面,初始帐号密码都是 admin,第一次访问要求修改密码。

添加监控主机

第一步,要求客户端snmp是允许访问的
在客户端上,修改snmp配置文件如下
$ vim /etc/snmp/snmpd.conf
com2sec notConfigUser  192.168.0.69      public
access  notConfigGroup ""      any       noauth    exact  all  none none
view all    included  .1                               80
第二步,添加主机,回到Cacti监控面板
  1. 主机添加顺序 Console=>Devices,然后点击右上角的Add。
    CentOS6.8搭建cacti与配置_第2张图片

  2. 编辑主机
    CentOS6.8搭建cacti与配置_第3张图片

  3. 关于snmp的数据模板默认的好像就只有这三个,无所谓。Snmp开头的应该都可以添加。
    在这里插入图片描述

  4. 新建主机成功之后,请右上的的“Create Graphs for this Host”新建图表。
    CentOS6.8搭建cacti与配置_第4张图片

  5. 好像SNMP Get Processor 获取进行失败了。暂时不管他。挂载硬盘只取了前四个,网络接口看IP。
    CentOS6.8搭建cacti与配置_第5张图片

  6. OK,这是几分钟之后的图表。
    CentOS6.8搭建cacti与配置_第6张图片

cacti不显示图片的排错顺序

cacti主要依赖的是rrdtools、php和snmp三块。

  1. 测试snmp是否可以通信
    snmpwalk -v 2c -c public 192.168.0.69
    snmpwalk -v 1 -c public 192.168.0.69
  2. 查看cacti是否可以获取数据
    /usr/local/php/bin/php /var/www/html/cacti/poller.php --debug --force
    如果这一步没走通,多半是php配置文件的问题,走通了还没出图,就需要查看rrdtools是否已经正确安装。

参考链接:
1、cacti安装记录 第四阶段cacti的基本使用(1)添加监控主机
https://blog.csdn.net/weixin_38642130/article/details/84646939
2、Cacti-安装和使用详解
https://www.cnblogs.com/JohnABC/p/6072776.html

关注微信公众号“微圈网络”,回复关键字,即可获取源码包!

你可能感兴趣的:(运维)