02
2020
12

CentOS7下部署Cacti流量监控工具

Cacti用了很多年了,一直觉得是一款非常好用的绘图系流量监控软件,这次趁着迁移Cacti至CentOS7系统,写下这篇博客当做一个部署笔记,给自己和有需要的网友提供一些建议。


首先我们来说下此次部署的环境:

  • CentOS我们用的版本是CentOS7(2009),至于为什么不用CentOS8,很简单,8太烦了,各种兼容性问题o(╯□╰)o

  • Cacti用的版本是0.8.8h,为什么不用最新版?很简单,1.x的版本都太烦了-_-||,我尝试过装1.2.x的版本,各种报错,后来装1.1.x的版本,也是各种麻烦,咱其实只需要一个流量监控的绘图功能而已,不想折腾,所以就选了0.x系列里最后一个版本0.8.8h(注意这个版本的Cacti是有一个很蛋疼的BUG的,具体请看我这篇博文)。

  • PHP用的版本是5.4.16,yum安装的默认版本,也不想折腾其他版本了= =|||

  • MySQL用的版本是5.6.50,这里不建议用哪个7.x版本的MySQL,实测命令差距挺大,反正我部署下来一堆的问题,当然你是这方面的专业人士那另当别论了- -+

  • RRDTool用的版本是1.4.8,绘图的核心工具,这个应该没啥好说的~

  • SNMP用的版本是5.7.2,取数据的核心工具,这个貌似也没啥好说的~

然后其他的什么Apache、gcc什么的版本应该就不是那么的关键了吧……


然后我们开始安装,安装之前呢我们需要对防火墙和yum库做一下调整:

1、调整下防火墙,得允许http协议被访问,通过修改文件vi /etc/firewalld/zones/public.xml即可,在<zone>和</zone>标记之间加上<service name="http"/>可以了,加好之后记得要用命令firewall-cmd --reload,让修改的配置生效。

2、下载并安装MySQL的repo,因为CentOS7默认是不包含MySQL的包的,所以咱们得手动加上去,操作也很简单,首先用命令wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm下载官方的repo安装包,然后再用命令rpm -ivh mysql-community-release-el7-5.noarch.rpm安装就可以了,安装完之后会获得两个mysql的yum repo源,分别是/etc/yum.repos.d/mysql-community.repo和/etc/yum.repos.d/mysql-community-source.repo,当然最后记得用命令rm mysql-community-release-el7-5.noarch.rpm吧刚才下载的安装包删除。


接下来就是安装所有需要的组件了,得益于yum库的帮助,这个操作也非常简单,通过这一条命令就可以了:yum -y install httpd mysql-server php php-mysql mysql-devel cairo-devel libxml2-devel pango-devel rrdtool net-snmp-* gcc php-gd php-snmp php-mbstring。

根据服务器自身的情况整个过程预计会安装不大于170个左右的应用,需要耐心等待,然后-y参数不要忘了,这样yum就会自动查找dependency信息并安装有dependency关联的其他应用。

yum安装完了之后使用systemctl start httpd mysqld snmpd命令启动相关服务,再用命令systemctl enable httpd mysqld snmpd设置这些服务开机的时候自动启动。


基础环境到这里就基本上配置好了,现在我们来配置Cacti,首先为了让Cacti更好的运行,我们需要调整一下PHP的配置,打开文件/etc/php.ini,找到;date.timezone =,把它改为date.timezone = Asia/Shanghai,这样是为了定义时区,注意这一段前面的那个“;”记得去掉,否则这一段配置是不生效的;然后再找到memory_limit = 128M,把这一段稍微改大一点,比如改成512M,这样就能给PHP执行提供更长的执行空间。需要改的地方主要就是这两个,当然如果你对这个非常熟悉的话,也可以根据实际情况修改其他的部分,改完之后记得要重启httpd服务让配置生效。

然后把下载的cacti-0.8.8h.tar.gz源码上传到服务器上(源码官方下载地址),解压源码以/var/www/html/cacti为根目录,在MySQL里创建一个账号和数据库,这里我们举例数据库名为cacti,用户名为cacti,密码为cacti123,然后再把/var/www/html/cacti/cacti.sql文件导入到这个数据库里面,具体的操作方法这里就不做赘述了,大家可以用PhpMyAdmin做,也可以用命令行做,也可以用第三方的MySQL的客户端做,都可以的。

(P.S. MySQL安装完毕之后默认root账号是没有密码的,这个是非常危险的,建议给root账户设置一个足够复杂的密码。)


接下来呢,我们来配置Cacti的配置文件,并且编译安装Spine,Cacti默认是用cmd.php来轮询获取网络设备的信息的,这个方法效率比较低,Spine就可以更好的提升轮询效率。

我们先来安装Spine,通过这个链接下载对应0.8.8h版本的Spine,并直接解压,解压后Spine默认会在当前目录的cacti-spine-0.8.8h目录下,执行下列命令就可以编译安装Spine了:

cd cacti-spine-0.8.8h

./configure

make && make install

编译安装完成后我们来配置Cacti和Spine的配置文件,打开文件/var/www/html/cacti/include/config.php,找到下面的代码段:

$database_type = "mysql";

$database_default = "cacti";

$database_hostname = "localhost";

$database_username = "cactiuser";

$database_password = "cactiuser";

$database_port = "3306";

$database_ssl = false;

把database_default、database_username和database_password修改为上面创建的数据库账户和数据库名称,然后运行命令mv /usr/local/spine/etc/spine.conf.dist /etc/spine.conf,把Spine配置模板移动到etc目录下,然后打开/etc/spine.conf文件,找到下面的代码段:

DB_Host         localhost

DB_Database     cacti

DB_User         cactiuser

DB_Pass         cactiuser

DB_Port         3306

同样把DB_Database、DB_User和DB_Pass修改为上面创建的数据库账户和数据库名称,就可以了,至此Cacti和Spine的配置就告一段落了。

在能访问这台服务器的电脑上打开浏览器,打开网站http://服务器IP/cacti,就可以进入安装页面,如果之前的步骤没有问题的话,一路下一步就可以完成安装了,注意安装好了第一次登陆的时候用户名密码都是admin,而且会强制修改一次密码。


至此,Cacti的基本部署就可以说已经结束了,至于怎么使用Cacti,这个就不是咱们这篇文章的讨论范围了。最后再讲两个额外的事情:

1、为什么打开Cacti的话需要在网址后面加一个/cacti呢?

这个其实是Cacti默认的路径,记得上面配置数据库的时候的文件/var/www/html/cacti/include/config.php么?仔细看下这个文件后面会有一个$url_path变量,这个变量定义的就是默认的cacti路径,如果不想加/cacti的话就要把这个变量的值修改掉,但是根据前辈们的说法,修改了有些插件可能会产生一些“灵异事件”,所以这里我个人不建议修改。

2、每次打开Cacti输完网址后都要加上/cacti,是不是挺麻烦?

我们可以在/var/www/html这个根目录下面新建一个index.php的文件,然后把下面的内容复制到这个文件里,就可以只输入网址就可以了,工作原理就是做了一个跳转,访问根目录的时候自动跳转到/cacti目录。

<?php

header("location:/cacti/")

?>


« 上一篇

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。