1. 程式人生 > >CentOS7下安裝Cacti詳細步驟

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 安裝介面
使用瀏覽器登入

http://your-server/cacti/

勾選 “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

轉載自:http://blog.51cto.com/wyjs6/1965703