CentOS7下cacti服务的搭建与配置

1、准备工作

因为对mysql或mariadb版本有要求,在本次实验是采用的是msyql5.7
1.1安装辅助工具

#yum install yum-utils

1.2获取mysql80-community-release-el7-1.noarch.rpm数据包:

#wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm

1.3安装mysql80-community-release-el7-1.noarch.rpm数据包:

#rpm -ivh mysql80-community-release-el7-1.noarch.rpm

1.4为yum的配置信息添加规则:

#yum-config-manager --disable mysql80-community
 #yum-config-manager --enable mysql57-community

2、LAMP环境部署

2.1安装所需工具:

#yum install mysql-community-server mysql-community-devel httpd php php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-bcmath php-mhash libxml2-devel libevent-devel curl-devel net-snmp* php-snmp

2.2为系统建立自启动进程:

#systemctl enable mysqld && systemctl enable httpd

2.3初始化mysql

#/usr/bin/mysql_install_db

当执行这个语句的时候会出现以下的错误:

CentOs下安装Open vSwitch centos下安装cacti_html


主要的原因是在mysql-5.7版本之后,就不能再使用该语句进行初始化,要换成一下语句:

#/usr/bin/mysqld –initialize –basedir=/usr/share/mysql –datadir=/var/lib/mysql/data/

#/usr/bin/mysql –initialize –basedir=/usr/share/mysql –datadir=/var/lib/mysql/data/
 (basedir和datadir的路径分别是指软件根目录和数据目录)

2.4启动mysql

#systemctl start mysqld

2.5初始化密码
2.5.1修改my.cnf配置文件

#vim /etc/my.cnf

在末尾添加一行规则:

…………

…………

skip-grant-tables

CentOs下安装Open vSwitch centos下安装cacti_php_02


保存并退出

(该规则是跳过mysql服务登录页面的密码验证)

2.5.2重启mysql服务

#systemctl restart mysqld

2.5.3打开mysql服务的登录页面

输入一下语句进入登录在输入密码的时候直接回车即可

#mysql -uroot -p

CentOs下安装Open vSwitch centos下安装cacti_mysql_03


进入mysql表

mysql>use mysql;

CentOs下安装Open vSwitch centos下安装cacti_mysql_04


最后执行更新密码的语句:

mysql>update user set authentication_string=password(‘123456’) where user=‘root’;

CentOs下安装Open vSwitch centos下安装cacti_android_05


出现这个结果说明密码更新成功。2.6修改php.ini配置文件

编辑php.ini配置文件

#vim /etc/php.ini

增加中文时区

date.timezone = “Asia/Shanghai”(可以通过搜索功能搜索“date.timezone”这个关键词,可以缩短一点查找的时间)

CentOs下安装Open vSwitch centos下安装cacti_mysql_06


2.7启动httpd服务

#systemctl start httpd

测试LAMP环境,测试脚本如下:

#vi /var/www/html/phpinfo.php

输入的内容为:

<?php phpinfo(); ?>


保存并退出

然后在浏览器上访问ip/ phpinfo.php会出现以下页面,说明LAMP环境搭建成功:

CentOs下安装Open vSwitch centos下安装cacti_php_07

3.安装配置cacti

A. 配置cacti库

编辑my.cnf配置文件

#vim /etc/my.cnf

添加一下内容:

[mysqld]
 character-set-server=utf8mb4
 collation-server=utf8mb4_unicode_ci

重启mysql服务

#systemctl restart mysqld

再进入mysql服务

#mysql -uroot -p

在mysql服务的操作终端输入以下命令:

1、mysql> create database cacti character set utf8 ;

CentOs下安装Open vSwitch centos下安装cacti_android_08


2、mysql> ALTER DATABASE cacti CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

CentOs下安装Open vSwitch centos下安装cacti_mysql_09


3、mysql> grant all privileges on cacti.* to cacti@localhost identified by ‘1qaz@WSX’ ;

CentOs下安装Open vSwitch centos下安装cacti_android_10


在这一步可能会出现以下的问题:

问题一:

CentOs下安装Open vSwitch centos下安装cacti_android_11


解决办法是:进入my.cnf配置文件进行修改

把一下内容注释即可:

#skip-grant-tables

然后重启mysql服务

问题二:ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

CentOs下安装Open vSwitch centos下安装cacti_php_12


解决方法:

使用alter user 语句来重置密码:

mysql>alter user ‘root’@‘localhost’ identified by ‘123456’;
此时也会出现以下问题:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

解决方法:

(1)首先需要设置密码的验证强度等级,设置 validate_password_policy 的全局参数为 LOW 即可,输入设值语句:

mysql>set global validate_password_policy=LOW;

(2)设置为 6 位的密码,设置 validate_password_length 的全局参数为 6 即可,输入设值语句

mysql> set global validate_password_length=6;

CentOs下安装Open vSwitch centos下安装cacti_adb_13


4、mysql> grant select on mysql.time_zone_name to cacti@localhost identified by ‘1qaz@WSX’ ;

CentOs下安装Open vSwitch centos下安装cacti_adb_14


5、mysql> flush privileges ;

CentOs下安装Open vSwitch centos下安装cacti_android_15

B. 导入cacti数据库脚本

首先退出mysql服务
mysql>exit

把cacti-1.2.1的压缩包进行解压(本人解压包在/root目录下)

#tar -zxf cacti-1.2.1.tar.gz

再进入mysql服务
mysql -uroot -p123456

执行以下语句:

mysql>use cacti ;
 mysql > source /root/cacti-1.2.1/cacti.sql ;

执行完成之后再退出mysql服务

C. cacti前端文件

首先在/var/www/ html/下创建一个cacti目录

#mkdir cacti

然后再执行下面的命令,把cacti-1.2.1文件的内容复制到apache服务下的根路径:
#cp -r /root/cacti-1.2.1/* /var/www/html/cacti

D. 编辑//var/www/html/cacti/include/config.php
#vi /var/www/html/cacti/include/config.php

把原来的配置信息修改成以下信息:

$database_type = ‘mysql’;
 $database_default = ‘cacti’;
 $database_hostname = ‘localhost’;
 $database_username = ‘cacti’;
 $database_password = ‘1qaz@WSX’;
 $database_port = ‘3306’;
 $database_ssl = false;
E. 设置文件权限(增加cacti用户)
#useradd -s /sbin/nologin cacti
 #mkdir /var/www/html/cacti/rra/log
 #chown -R cacti /var/www/html/cacti/rra/log/
F. 配置定时任务/etc/crontab

执行以下语句:
#crontab –e

添加以下信息

*/5 * * * * /usr/bin/php /var/www/html/cacti/poller.php > /dev/null 2>&1

输入以下语句进行查看:

#crontab -l


出现以下结果说明是正确的

CentOs下安装Open vSwitch centos下安装cacti_android_16


#systemctl enable crond
 #systemctl start crond
G、安装其他相关组件:

下载https://oss.oetiker.ch/rrdtool/pub/rrdtool-1.7.0.tar.gz
下载https://www.cacti.net/downloads/spine/cacti-spine-1.2.1.tar.gz
(本人已把这两个解压包放在/root目录下)

编译时可能需要你安装如下软件包:

#yum install glib2-devel cairo-devel libxml2-devel pango pango-devel help2man
(1)安装rrdtool-1.7.0工具

解压

#tar zxvf rrdtool-1.7.0.tar.gz

切换目录

#cd rrdtool-1.7.0
#./configure --prefix=/usr/local/rrdtool
#make
 #make install
(2)安装cacti-spine-1.2.1工具
#tar zxvf cacti-spine-1.2.1.tar.gz
 #cd cacti-spine-1.2.1
 #./configure --prefix=/usr/local/spine
 #make
 #make install编辑/usr/local/spine/etc/spine.conf
 #vi /usr/local/spine/etc/spine.conf


把一下信息修改为自己配置的信息:

DB_Host localhost
 DB_Database cacti
 DB_User cacti
 DB_Pass password
 DB_Port 3306
H、5.cacti安装向导
#setenforce 0
 #用于关闭seLinux防火墙

(1)在 浏览器 访问:http://ip/cacti 可能会出现一下问题:

问题一:

CentOs下安装Open vSwitch centos下安装cacti_html_17


根据三个提示:

1、查看mysql服务是否有启动;

2、config.php配置文件的配置信息是否有错误;

3、如果以上两个错误都没有,可能是php与mysql的服务整合出问题,具体辨别方法可以在通过在浏览器访问http://ip/phpinfo(参照前面验证php与apache服务是否安装成功的路径访问),查看php版本信息里面是否存在mysql的相关模块,如果没有,可以重新通过yum安装的方式卸载之前下载的好的mysql和php,再重新下载即可。

问题二:

CentOs下安装Open vSwitch centos下安装cacti_android_18


解决方法:

#cd /var/www/html/cacti/log
 #ls

如果发现没有cacti.log文件时,可以执行一下命令:

#touch cacti.log
 #chmod 777 cacti.log然后再刷新页面即可。

(2)当出现以下页面时,说明cacti安装服务启动成功。(默认密码admin/admin)

CentOs下安装Open vSwitch centos下安装cacti_adb_19


然后再根据安装向导,把那些 红色字体的错误 找出来,并且根据错误提示进行修改即可:

在安装的时候遇到一个特别的错误:
ERROR: Your MySQL TimeZone database is not populated. Please populate this database before proceeding.
解决方法为:

#mysql_tzinfo_to_sql /usr/share/zoneinfo/Asia/Shanghai Shanghai | mysql -u root -p mysql


输入密码回车即可。

(3)安装cacti服务完成

CentOs下安装Open vSwitch centos下安装cacti_html_20

(4)左上角的图形,并且进入local Linux Machine这个页面等待十分钟左右就会出现相应的一些曲线图。

CentOs下安装Open vSwitch centos下安装cacti_adb_21


部署完成!