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
当执行这个语句的时候会出现以下的错误:
主要的原因是在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
保存并退出
(该规则是跳过mysql服务登录页面的密码验证)
2.5.2重启mysql服务
#systemctl restart mysqld
2.5.3打开mysql服务的登录页面
输入一下语句进入登录在输入密码的时候直接回车即可
#mysql -uroot -p
进入mysql表
mysql>use mysql;
最后执行更新密码的语句:
mysql>update user set authentication_string=password(‘123456’) where user=‘root’;
出现这个结果说明密码更新成功。2.6修改php.ini配置文件
编辑php.ini配置文件
#vim /etc/php.ini
增加中文时区
date.timezone = “Asia/Shanghai”(可以通过搜索功能搜索“date.timezone”这个关键词,可以缩短一点查找的时间)
2.7启动httpd服务
#systemctl start httpd
测试LAMP环境,测试脚本如下:
#vi /var/www/html/phpinfo.php
输入的内容为:
<?php phpinfo(); ?>
保存并退出
然后在浏览器上访问ip/ phpinfo.php会出现以下页面,说明LAMP环境搭建成功:
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 ;
2、mysql> ALTER DATABASE cacti CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
3、mysql> grant all privileges on cacti.* to cacti@localhost identified by ‘1qaz@WSX’ ;
在这一步可能会出现以下的问题:
问题一:
解决办法是:进入my.cnf配置文件进行修改
把一下内容注释即可:
#skip-grant-tables
然后重启mysql服务
问题二:ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
解决方法:
使用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;
4、mysql> grant select on mysql.time_zone_name to cacti@localhost identified by ‘1qaz@WSX’ ;
5、mysql> flush privileges ;
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
出现以下结果说明是正确的
#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 可能会出现一下问题:
问题一:
根据三个提示:
1、查看mysql服务是否有启动;
2、config.php配置文件的配置信息是否有错误;
3、如果以上两个错误都没有,可能是php与mysql的服务整合出问题,具体辨别方法可以在通过在浏览器访问http://ip/phpinfo(参照前面验证php与apache服务是否安装成功的路径访问),查看php版本信息里面是否存在mysql的相关模块,如果没有,可以重新通过yum安装的方式卸载之前下载的好的mysql和php,再重新下载即可。
问题二:
解决方法:
#cd /var/www/html/cacti/log
#ls
如果发现没有cacti.log文件时,可以执行一下命令:
#touch cacti.log
#chmod 777 cacti.log然后再刷新页面即可。
(2)当出现以下页面时,说明cacti安装服务启动成功。(默认密码admin/admin)
然后再根据安装向导,把那些 红色字体的错误 找出来,并且根据错误提示进行修改即可:
在安装的时候遇到一个特别的错误:
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服务完成
(4)左上角的图形,并且进入local Linux Machine这个页面等待十分钟左右就会出现相应的一些曲线图。
部署完成!