1. 程式人生 > 其它 >Centos7部署cacti1.2.14

Centos7部署cacti1.2.14

1.關閉並配置防火牆

systemctl stop firewalld.service
systemctl disable firewalld.service
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0

1.2安裝軟體

yum install -y httpd php php-mysql php-snmp php-xml php-ldap php-gd php-mbstring php-posix vim wget

1.3設定時區修改配置

[root@localhost ~]# vim /etc/php.ini
[PHP]
……
max_execution_tim 
= 600 #384行 menory_limit = 800M #405行 date.timezone = Asia/Shanghai #878行

1.4設定httpd開機啟動

systemctl start httpd && systemctl enable httpd

1.5安裝資料庫並設定開機啟動

cat >/etc/yum.repos.d/MariaDB.repo<<EOF
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.3/centos7-amd64
gpgkey=https://
yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1 EOF yum install -y MariaDB-server MariaDB-client MariaDB-devel systemctl start mariadb && systemctl enable mariadb

1.6資料庫初始化

[root@localhost ~]# mysql_secure_installation
 
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE
! PLEASE READ EACH STEP CAREFULLY! ...... Enter current password for root (enter for none): //初始資料庫密碼為空,直接按回車鍵 OK, successfully used password, moving on... ...... Set root password? [Y/n] Y //輸入root管理員密碼 New password: Re-enter new password: Password updated successfully! ...... Remove anonymous users? [Y/n] Y //刪除匿名賬號 ... Success! ...... Disallow root login remotely? [Y/n] Y //禁止root管理員從遠端登入 ... Success! ....... Remove test database and access to it? [Y/n] Y //刪除test資料庫並取消對它的訪問許可權 ...... Reload privilege tables now? [Y/n] Y //重新整理授權表,讓初始化後的設定立即生效 ... Success!

1.7配置資料引數

vim /etc/my.cnf.d/server.cnf

[mysqld]
character_set_server = utf8mb4
collation-server = utf8mb4_unicode_ci
max_heap_table_size = 1000M
max_allowed_packet = 16777216
tmp_table_size = 254M
join_buffer_size = 500M
innodb_file_per_table = ON
innodb_buffer_pool_size = 2400M
innodb_doublewrite = ON
innodb_flush_log_at_timeout = 3
innodb_read_io_threads = 32
innodb_write_io_threads =16
innodb_file_format = Barracuda
innodb_large_prefix = 1
innodb_buffer_pool_instances = 30
innodb_io_capacity = 5000
innodb_io_capacity_max = 10000

1.8安裝snmp服務並配置

yum install –y net-snmp net-snmp-libs net-snmp-utils net-snmp-devel net-snmp-perl

配置snmp
vim /etc/snmp/snmpd.conf
......
//把systemview改成all ,供所有snmp 訪問許可權  64行
access notConfigGroup "" any noauth exact all none none   
view all included .1 80 // 去掉#號 85行

1.9設定snmp服務開機啟動

systemctl start snmpd.service && systemctl enable snmpd.service
驗證snmp服務-有資料就成功
snmpwalk -v 2c -c public localhost

1.10安裝rrdtool繪圖工具

yum -y install lm_sensors gcc gcc-c++ libart_lgpl-devel zlib-devel libpng-devel freetype-devel gettext-devel glib2-devel pcre-devel pango-devel cairo-devel  libxml2-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker 
// 安裝rrdtool1.7
rpm -ivh http://mirrors.whsir.com/centos/whsir-release-centos.noarch.rpm
yum install -y wrrdtool

// 設定rrdtool軟鏈 
ln-sv/usr/local/rrdtool/bin/rrdtool/usr/local/bin/rrdtool
ln-sv/usr/local/rrdtool/bin/rrdtool/usr/bin/rrdtool

1.11安裝spine編譯軟體

yum install -y dos2unix autoconf automake binutils libtool cpp glibc-headers glibc-devel help2man

1.12下載cactispine

cd /usr/local/src
wget https://www.cacti.net/downloads/spine/cacti-spine-1.2.14.tar.gz

1.13編譯安裝

tar zxvf cacti-spine-1.2.14.tar.gz
cd cacti-spine-1.2.14
./bootstrap
./configure
make && make install
chown root:root /usr/local/spine/bin/spine
chmod +s /usr/local/spine/bin/spine
————————————————
如果make時出現
/usr/bin/ld: cannot find -lmysqlclient
collect2: ld returned 1 exit status
make: *** [spine] Error 1
原因:
編譯你的工程程式碼之前之前,
先處理一下mysql的庫,預設查詢libmysqlclient_r.so,
可是mysql預設為libmysqlclient.so,
 
內容完全一樣,做個連結即可
 
請在root下執行
cd /usr/local/mysql/lib/mysql/   (庫所在目錄)
ln -s libmysqlclient.so.15.0.0 libmysqlclient_r.so

1.14編輯spinge.conf
cp  /usr/local/spine/etc/spine.conf.dist /etc/spine.conf
vim /etc/spine.conf
#找到裡面對應引數,根據實際情況修改,這裡測試就不改了
DB_Host localhost
DB_Database cacti
DB_User cactiuser
DB_Pass cactiuser
DB_Port 3306

1.15安裝cacti

cd /usr/local/src
wget https://www.cacti.net/downloads/cacti-1.2.14.tar.gz
tar zxvf cacti-1.2.14.tar.gz
mv cacti-1.2.14 /var/www/html/cacti

1.16建立資料庫

[root@localhost src]# mysql -uroot -p
MariaDB [(none)]> create database cacti;
Query OK, 1 row affected (0.002 sec)
MariaDB [(none)]> grant all on cacti.* to cactiuser@localhost identified by "cactiuser";
Query OK, 0 rows affected (0.003 sec)
MariaDB [(none)]> grant select on mysql.time_zone_name to 'cactiuser'@'localhost' identified by 'cactiuser';
Query OK, 0 rows affected (0.001 sec)

1.17匯入資料

MariaDB [(none)]> use cacti;
Database changed
MariaDB [cacti]> source /var/www/html/cacti/cacti.sql;
......
MariaDB [cacti]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
MariaDB [cacti]> quit

1.18測試-出現數據就正常

/usr/local/spine/bin/spine

1.19配置時區

[root@localhost ~]# mysql_tzinfo_to_sql /usr/share/zoneinfo/ | mysql -u root -p mysql
Enter password:
Warning: Unable to load '/usr/share/zoneinfo//leapseconds' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo//tzdata.zi' as time zone. Skipping it.

1.20配置config.php

[root@localhost ~]# vim /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_retries  = 5;
$database_ssl      = false;
$database_ssl_key  = '';
$database_ssl_cert = '';
$database_ssl_ca   = '';
......

1.21建立日誌

touch /var/www/html/cacti/log/cacti.log
touch /var/www/html/cacti/log/cacti_stderr.log

1.22建立使用者並授權

useradd cactiuser
chown apache.apache /var/www/html/cacti/ -R
chown cactiuser /var/www/html/cacti/{rra,log}/ -R
chmod 777 /var/www/html/cacti/{rra,log}/ -R

1.23重啟服務

systemctl restart httpd && systemctl restart mariadb  && systemctl restart snmpd

1.24配置crontab

crontab -e
#新增下面一行,5分鐘執行一次
*/5 * * * * /usr/bin/php /var/www/html/cacti/poller.php > /dev/null 2>&1

1.25設定crontab啟動

systemctl restart crond
systemctl status crond
systemctl enable crond

1.26瀏覽器上安裝

瀏覽器輸入http://ip/cacti,預設密碼admin/admin

出現亂碼

yum -y install fontconfig ttmkfdir
cd /usr/share/fonts
mkdir chinese

上傳字型檔案到chinese

ttmkfdir -e /usr/share/X11/fonts/encodings/encodings.dir
fc-cache
fc-list

#目錄授權

chmod -R 755 /usr/share/fonts/chinese