CentOS7下安裝Cacti詳細步驟
Cacti 是一個利用 RRDTool 資料儲存和繪圖功能的完整的網路圖形解決方案。Cacti 提供了快速的資料輪詢、高階圖形模板、多樣的資料獲取方法以及使用者管理等功能。並以直觀易於使用的介面來呈現,這在具有成千上萬個裝置的複雜網路上是有意義的。
一、安裝環境
安裝 Cacti 需要 Mysql,PHP,RRDTool,net-snmp 和 支援 PHP 的 Web伺服器,如 Apache,Nginx 或 IIS等。
版本要求:
RRDTool 1.3 或更高版本,http://oss.oetiker.ch/rrdtool/
MySQL 5.1 或更高版本,https://mysql.com/
MariaDB 5.5 或更高版本,https://mariadb.org/
PHP 5.4 或更高版本,https://php.net/
支援PHP的Web伺服器,如Apache,NGINX 或 IIS(https://www.apache.org/,https://www.nginx.com/)
本次安裝 Cacti-1.1.23 使用相關軟體及版本為:
RRDTool 1.4.8
MariaDB 10.2.8 (mariadb mariadb-server)
PHP 5.4.16 (php php-snmp php-ldap php-xml php-session php-sockets php-pdo php-pdo-mysql php-mbstring php-pcre php-json php-openssl php-gd php-gmp php-zlib)
Apache httpd 2.4.6
net-snmp 5.7.2 (net-snmp net-snmp-utils)
crond (cronie 或其他類似軟體)
為了安裝官方補丁,還需要安裝一些工具軟體
wget
patch
二、軟體安裝
2.1 更新 YUM 源
新增 MariaDB YUM 倉庫
#cat > /etc/yum.repos.d/MariaDB.repo <<EOF
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
EOF
2.2 安裝 Cacti 部署環境所需軟體包
#yum install -y httpd mariadb mariadb-server mariadb-devel net-snmp net-snmp-utils net-snmp-libs net-snmp-agent-libs net-snmp-devel php php-snmp php-ldap php-pdo php-mysql php-devel php-pear php-common php-gd php-mbstring php-xml php-process rrdtool rrdtool-php rrdtool-perl rrdtool-devel gcc openssl-devel dos2unix autoconf automake binutils libtool cpp postfix glibc-headers kernel-headers glibc-devel gd gd-devel help2man ntpdate wget patch
三、環境配置
3.1 配置 PHP
修改 PHP 主配置檔案 /etc/php.ini
關閉安全模式,以支援 rrdtool,允許 exec() 訪問
[PHP]
safe_mode = Off
設定時區
[Date]
date.timezone = PRC
3.2 配置 Web 伺服器 Apache httpd
編輯 /etc/httpd/conf.d/php.conf 配置檔案,確保檔案含有
#PHP is an HTML-embedded scripting language which attempts to make it
#easy for developers to write dynamically generated webpages.
LoadModule php5_module modules/libphp5.so
#Cause the PHP interpreter to handle files with a .php extension.
AddHandler php5-script .php
如果你不打算將 Cacti 安裝到 Web 伺服器預設目錄,如/var/www/html,就需要將下面內容新增
至 /etc/httpd/conf.d/cacti.conf 檔案,並將其中的 /your/cacti/dir 替換為實際安裝目錄,將
Allow from 127.0.0.1 改為你公司所在網段。
#Cacti - the complete rrdtool-based graphing solution
#Allows only localhost by default
#Allowing cacti to anyone other than localhost should be considered
#dangerous unless properly secured by SSL
#Make sure, that httpd can read your cacti directories.
#At minimum, you need
#chmod ugo+r -R /your/cacti/dir
#Make sure to replace with your directories
#When using SELinux, set the following:
#chcon -R -h -t httpd_sys_content_t /your/cacti/dir
#when using SELinux and you private homedir, enable
#setsebool -P httpd_enable_homedirs 1
#setsebool -P httpd_read_user_content 1
Alias /cacti /var/www/html/cacti
<Directory /var/www/html/cacti>
AllowOverride None
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
Allow from ::1
Options Indexes Includes FollowSymLinks
</Directory>
#These directories do not require access over HTTP
#
<Directory /var/www/html/cacti/cli>
Order Deny,Allow
Deny from All
Allow from None
</Directory>
3.3 配置資料庫 MariaDB
為安全起見,設定資料庫 root 使用者密碼
#systemctl start mariadb
#mysqladmin -uroot password somepassword
匯入時區資料到 mysql 資料庫
#mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -uroot mysql -p
修改 /etc/my.cnf.d/server.cnf 檔案,確保檔案含有
[mysqld]
character_set_server = utf8mb4
collation_server = utf8mb4_unicode_ci
character_set_client = utf8mb4
max_connections = 100
max_heap_table_size = 48M
max_allowed_packet = 16777216
join_buffer_size = 64M
tmp_table_size = 64M
innodb_file_per_table = ON
innodb_buffer_pool_size = 240M
innodb_doublewrite = OFF
innodb_lock_wait_timeout = 50
innodb_flush_log_at_timeout = 3
innodb_read_io_threads = 32
innodb_write_io_threads = 16
3.4 配置 SNMP
配置 net-snmp-agent, 修改配置檔案 /etc/snmp/snmpd.conf
將41行
com2sec notConfigUser default public
改為
com2sec notConfigUser 127.0.0.1 public
將62行
access notConfigGroup “” any noauth exact systemview none none
改為
access notConfigGroup “” any noauth exact all none none
將85行
#view all included .1 80
改為
view all included .1 80
四、安裝配置 Cacti
4.1 下載解壓 Cacti 安裝包
#cd /var/www/html
#wget http://www.cacti.net/downloads/cacti-1.1.23.tar.gz
#tar zxvf cacti-1.1.23.tar.gz
4.2 建立 cacti 資料庫,建立 cactiuser 使用者,設定相關授權
#mysql -u root -p
MariaDB [(none)]> CREATE database cacti default character set utf8;
MariaDB [(none)]> create user ‘cactiuser’@‘localhost’ identified by ‘cactiuser’;
MariaDB [(none)]> grant all privileges on cacti.* to [email protected];
MariaDB [(none)]> grant select on mysql.time_zone_name to ‘cactiuser’@‘localhost’ identified by ‘cactiuser’;
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> quit
4.3 匯入 Cacti 預設資料庫
#mysql -uroot -p cacti < /var/www/html/cacti-1.1.23/cacti.sql
4.4 編輯 /var/www/html/cacti-1.1.23/include/config.php,給Cacti指定資料庫型別,名稱,使用者名稱,密碼等
$database_type = “mysql”;
$database_default = “cacti”;
$database_hostname = “localhost”;
$database_username = “cactiuser”;
$database_password = “cactiuser”;
/* load up old style plugins here */
$plugins = array();
//$plugins[] = ‘thold’;
4.5 建立 cacti 系統使用者,設定 graph/log 目錄許可權
#useradd -r -M cacti
#ln -s /var/www/html/cacti-1.1.23 /var/www/html/cacti
#chown -R apache.apache /var/www/html/cacti/
#chown -R cacti /var/www/html/cacti-1.1.23/{rra,log}/
4.6 新增定時任務
#crontab -e
*/5 * * * * /usr/bin/php /var/www/html/cacti/poller.php > /dev/null 2>&1
五、配置防火牆
5.1 配置 firewalld 防火牆
#firewall-cmd --permanent --add-port=3306/tcp
#firewall-cmd --permanent --add-service=http
#firewall-cmd --permanent --add-port=161/udp
#firewall-cmd --permanent --add-port=162/udp
#firewall-cmd --reload
5.2 關閉selinux
#setenforce 0
#sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/’ /etc/selinux/config
六、設定開機啟動相關服務
#systemctl enable httpd
#systemctl enable mariadb
#systemctl enable crond
#systemctl enable snmpd
七、重啟相關服務
#systemctl restart httpd
#systemctl restart mariadb
#systemctl restart crond
#systemctl restart snmpd
八、登入 Cacti Web 安裝介面
使用瀏覽器登入
勾選 “Accept GPL License Agreement” –> Next –> Next –> 下一步 –> Next –> Next –> 勾選所有預置模版 –> Finish
使用初始登入使用者名稱和密碼(admin)登入,然後更改初始密碼。
進入Cacti Web 管理介面。
九、安裝 spine
9.1 下載解壓與 Cacti 相同版本號 Spine 原始碼安裝包
#cd /usr/local/src
#wget http://www.cacti.net/downloads/spine/cacti-spine-1.1.23.tar.gz
#tar xf cacti-spine-1.1.23.tar.gz
9.2 原始碼編譯安裝 spine
#ln -s /usr/lib64/libmysqlclient.so.18.0.0 /usr/lib64/libmysqlclient.so
#ntpdate 202.120.2.101
#cd cacti-spine-1.1.23
#./configure && make && make install
9.3 複製修改配置檔案
#cp /usr/local/spine/etc/spine.conf.dist /usr/local/spine/etc/spine.conf
修改spine.conf檔案內使用者名稱及密碼配置
DB_Host localhost
DB_Database cacti
DB_User cactiuser
DB_Pass cactiuser
DB_Port 3306
RDB_Host localhost
RDB_Database cacti
RDB_User cactiuser
RDB_Pass cactiuser
RDB_Port 3306
9.4 登入 Cacti WEB 頁面修改 Cacti 配置
Console -> 設定(Cacti Settings) -> Paths -> 在 Spine Binary File Location 文字框內填入配置檔案路徑 /usr/local/spine/bin/spine ,在 Spine Config File Path 文字框內填入配置檔案路徑 /usr/local/spine/etc/spine.conf,點選儲存 (Save)。
Console -> 設定(Cacti Settings) -> Poller -> 在 Poller Type 下拉框中選擇 spine ,點選儲存 (Save)。
十、特別提示
在新增完裝置和圖形後,需要重建採集器快取。
Console –> 系統工具 –> Rebuild Poller Cache