Centos7搭建新版本cacti1.2.10
新版本cacti刚刚放出来,正好遇上旧版本的cacti用着不给力,就重新搭建了一个新版本。
环境:
系统:Centos7.6
cacti版本:v1.2.10
需要安装的组件:
php 7.3
mysql 5.7
rrdtool 1.7
spine1.2.10
nginx
一、yum源添加
添加epel源
cd /etc/yum.repos.d/ mkdir repo_bak mv *.repo repo_bak/ yum install wget wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo yum celan all yum makecache yum install epel-release
添加wlnmp一键包源,如果无法直接安装,可以尝试不同网络下载,然后再传到服务器上
rpm -ivh http://mirrors.whsir.com/centos/whsir-release-centos.noarch.rpm rpm -ivh http://mirrors.wlnmp.com/centos/wlnmp-release-centos.noarch.rpm
二、安装nginx、php、mysql
yum install wnginx wphp71 wmysql57 yum install wphp71-ldap wphp71-snmp wrrdtool wnet-snmp sendmail
设置库文件的两个软链接
ln -sv /usr/local/mysql/lib/libmysqlclient.so.20 /usr/lib64/libmysqlclient.so.20 ln -sv /usr/local/mysql/lib/libmysqlclient.so /usr/lib64/libmysqlclient.so
1、php相关配置
vi /usr/local/php/etc/php.ini
##找到disable_functions行,删除所有关于exec与popen的值
##修改时区如下:
date.timezone = Asia/Shanghai
启动php
/etc/init.d/php-fpm71 start
2、mysql相关配置
修改默认MySQL密码,创建cacti数据库,并添加相应权限
mysql -uroot -p set password = password('yourpassword'); ##设置mysql的root密码 CREATE DATABASE cacti DEFAULT CHARACTER SET utf8; ##字符集utf-8 GRANT ALL ON cacti.* TO cacti@localhost IDENTIFIED BY 'yourpassword'; ##新建cacti用户,授权管理数据库cacti GRANT SELECT ON mysql.time_zone_name TO cacti@localhost IDENTIFIED BY 'yourpassword'; ALTER DATABASE cacti CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; flush privileges; quit
解决MySQL TimeZone database is not populated问题,如果导入失败,跳过即可
/usr/local/mysql/bin/mysql_tzinfo_to_sql /usr/share/zoneinfo/ | mysql -uroot -pmeiyoumima@ mysql
启动mysql
/etc/init.d/mysql start
3、ngixn相关配置
新建站点文件
mv /usr/local/nginx/conf/vhost/demo.conf /usr/local/nginx/conf/vhost/cacti.conf
修改root路径为你的web文件存储的位置,我这里是 /Apps/www;,取消php注释include enable-php71.conf;,修改下server_name为本机IP,或者自己填个域名,自行hosts,
server { listen 80 default_server; server_name 192.168.1.6; index index.html index.htm index.php; root /Apps/www; error_page 500 502 503 504 /50x.html; #include enable-php56.conf; #include enable-php70.conf; include enable-php71.conf; #include enable-php72.conf; #include enable-php73.conf; #include enable-php74.conf; location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; } location ~ .*\.(js|css)?$ { expires 12h; } access_log /Apps/www/cacti/log/cacti_access.log; error_log /Apps/www/cacti/log/cacti_error.log; }
添加相关软链接
ln -sv /usr/local/rrdtool/bin/rrdtool /usr/local/bin/rrdtool ln -sv /usr/local/php/bin/php /usr/bin/php ln -sv /usr/local/snmp/bin/snmpwalk /usr/local/bin/snmpwalk ln -sv /usr/local/snmp/bin/snmpget /usr/local/bin/snmpget ln -sv /usr/local/snmp/bin/snmpbulkwalk /usr/local/bin/snmpbulkwalk ln -sv /usr/local/snmp/bin/snmpgetnext /usr/local/bin/snmpgetnext ln -sv /usr/local/snmp/bin/snmptrap /usr/local/bin/snmptrap
启动nginx
/etc/init.d/nginx start
三、安装cacti、spine
1、cacti安装
wget https://www.cacti.net/downloads/cacti-1.2.10.tar.gz tar xf cacti-1.2.10.tar.gz mkdir -p /Apps/www/ mv cacti-1.2.10 /Apps/www/cacti chown -R www:www /Apps/www/cacti
修改配置
cd /Apps/www/cacti/include vi config.php $database_type = 'mysql'; $database_default = 'cacti'; $database_hostname = 'localhost'; $database_username = 'cacti'; $database_password = 'yourpassword'; $database_port = '3306'; $database_ssl = false;
导入初始数据文件
mysql -uroot -pmeiyoumima@ cacti < /Apps/www/cacti/cacti.sql
解决中文乱码问题:
yum -y install wqy-microhei-fonts cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
mysql的 /etc/my.cnf配置文件添加:
[mysqld] log_bin_trust_function_creators=1
至此cacti已经安装完毕,访问http://your-ip/cacti 即可访问站点
安装到这一步的时候,有个bug,记得去掉最下面的打钩,否则安装会卡住
页面安装的同时,我们来安装spine
2、 spine安装
[root@cacti-server ~]# wget https://www.cacti.net/downloads/spine/cacti-spine-1.2.10.tar.gz [root@cacti-server ~]# yum -y install dos2unix autoconf automake binutils libtool gcc cpp glibc-headers glibc-devel help2man openssl-devel [root@cacti-server ~]# tar -xf cacti-spine-1.2.10.tar.gz [root@cacti-server ~]# cp -R cacti-spine-1.2.10 /usr/local/spine [root@cacti-server ~]# cd /usr/local/spine [root@cacti-server spine]# ln -s /usr/lib64/libmysqlclient.so.18.0.0 /usr/lib64/libmysqlclient.so [root@cacti-server spine]# sh bootstrap [root@cacti-server spine]# ./configure [root@cacti-server spine]# make &&make install [root@cacti-server spine]# chown root:root /usr/local/spine/bin/spine [root@cacti-server spine]# chmod +s /usr/local/spine/bin/spine [root@cacti-server spine]# cp /usr/local/spine/etc/spine.conf.dist /etc/spine.conf #修改/etc/spine.conf如下部分 [root@cacti-server spine]# vim /etc/spine.conf ...... DB_Host localhost DB_Database cacti DB_User cactiuser DB_Pass cactiuser DB_Port 3306
安装完成后测试一下:
/usr/local/spine/bin/spine
安装完成后将后台轮询器改为spine即可(Thold忽略即可,这个是阙值报警插件,有兴趣的可以参考我另外一篇关于cacti邮件报警的文章)
poller采集周期按需求设定即可,我这边是每分钟轮询一次
[root@localhost ~]# crontab -l * * * * * /usr/bin/php /Apps/www/cacti/poller.php > /dev/null 2>&1
写在结尾:
在安装学习cacti的过程中的一些参考资料,这边也顺便提一下:
github介绍文档: https://github.com/Cacti/documentation/blob/develop/README.md
九五配置说明文档:
https://docs.cacti.net/manual:100:6_reference.variables#variables
Rrdtool http://www.360doc.com/content/07/0302/20/15540_382048.shtml 插件说明 https://github.com/Cacti/documentation/blob/develop/Plugins.md