新版本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相關配置
##找到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