2017年6月12日 星期一

(教學)Cacti 1.1.7監控設備軟體(Centos7.新版Cacti.存活.網路流量圖表.MRTG.RRDTool.MariaDB)




以下需連線網路安裝
安裝Epel擴充資源庫
yum -y install epel-release
建立 mariadb.repo
vi /etc/yum.repos.d/mariadb.repo
裡面的內容為
# MariaDB 10.1 CentOS repository list - created 2017-03-12 06:10 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

更新套件庫
yum -y update
安裝所需套件
yum -y install httpd MariaDB-server MariaDB-client cacti php php-mysql php-pear php-gd php-mbstring net-snmp net-snmp-utils rrdtool
重啟資料庫服務並設定之後開機啟動
systemctl restart mariadb && systemctl enable mariadb
設定資料庫
mysql_secure_installation


1.MariaDB 的 root 帳號,預設是沒有密碼,所以案Enter就好。
2.然後因為預設無密碼,所以要設定 root 的密碼,密碼需輸入兩次作為確認。
3.移除匿名帳號的登入權限。
4.拒絕 root 帳號從遠端登入,沒有特殊疑慮就選n,方便root遠端操作。
5.刪除測試資料庫。
6.是否要重新載入table的權限。
重新載入使用者權限並且新增資料庫使用者。
在下面紅字部分為範例,請自己另外設定帳號密碼避免使用user:password此過於簡單的設定。
mysql -u root -p
create database cactidb;
grant all on cactidb.* to 'user' identified by 'password';
GRANT SUPER ON *.* TO user@'localhost' IDENTIFIED BY 'password';
GRANT SELECT ON mysql.time_zone_name TO user IDENTIFIED BY 'password';
flush privileges;
exit
確認一下新增的使用者可以進入資料庫。
mysql -u user -p

Cacti 本身有提供SQL,將資料庫和資料表格式與資料等資訊匯入至資料庫裡。
mysql -u user -p -A cactidb < /usr/share/doc/cacti-1.1.7/cacti.sql

修改cacti.conf,在如下圖位置改成Require all granted(允許所有 IP 連線)。
記得要改成#Require host localhost把這條變註記
vi /etc/httpd/conf.d/cacti.conf
修改資料庫設定檔。
紅框部分請依照自己之前在MariaDB裡新增的資料庫、使用者及密碼創的來依據。
vi /etc/cacti/db.php
$database_default  = "cactidb";
$database_username = "user";
$database_password = "password";


編輯 PHP 主設定檔,指定時區為台北。
vi /etc/php.ini
date.timezone = "Asia/Taipei"
開放防火牆 HTTP 的權限。
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --reload
重新啟動Apache服務並設定之後開機啟動。
systemctl restart httpd && systemctl enable httpd

修改Cacti排程,設定每一分鐘抓資料。
vi /etc/cron.d/cacti
*/1 * * * *     cacti   /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1

要檢視設備相關資訊需透過Snmp回傳,所以要看本機資訊也需Snmp。
有三個部份要改
vi /etc/snmp/snmpd.conf

一.

二.

三.



重新啟動 SNMP。
systemctl restart snmpd && systemctl enable snmpd

Cacti 設定

打開瀏覽器輸入Cacti的網址就會出現License介面,紅圈打勾然後點Next開始安裝。
http://主機IP/cacti
舉例http://192.168.0.1/cacti

Cacti貼心的地方,網頁會檢查需要的套件有沒有安裝並顯示,如果有錯誤的地方請確定有正常安裝到。

關於TimeZone database is not populated的問題。
請用root權限。
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql -p


紅字部分為未依照系統建議,雖然可以略過,不過主要是優化完善Cacti的效果,像是提高快取緩衝等等細微的設定,修改方法如下。
vi /etc/my.cnf.d/server.cnf
innodb_buffer_pool_size=512M
join_buffer_size=128M
tmp_table_size=128M
max_allowed_packet=32M
max_heap_table_size=128M
innodb_additional_mem_pool_size=80M


其他紅字部分為當硬碟與SSD相關,就不另外變更了。
接下來就看到都正常了。
然後Next
因為是新建立的主機,選擇第一個選項就可以了。


Next,確定一下各元件的路徑是否正常,Spine用來改善cmd架構效能,非必要,將在另一篇講解安裝方式。

Next之後,這是在說明哪些位置安裝時須開放讀寫權限和必須持續開放權限的位置。
在這正在安裝的時候顯示/usr/share/cacti/resource目前Cacti權限不足,所以要先將權限暫時開放
暫時停止SELINUX然後將/usr/share/cacti/resource/擁有者變更為apache
setenforce 0
chown -R apache.apache /usr/share/cacti/resource/

Next,有可以添加的預設模板,全勾起來方便使用。
終於最後按下Finish就完成啦,會自動轉到登入畫面,預設的帳密都是admin。
第一次用預設帳密登入需再設定密碼,密碼要有符號和英數字。
終於看到這個介面了,感動。


因為安全原則,這些都是安裝完後可以拿掉權限的資料夾,記得拿掉並且恢復SELINUX。
setenforce 1
chown -R root.root /usr/share/cacti/resource/
chown -R root.root /var/lib/cacti/scripts

架設部分就到這邊了,趕快熟悉一下吧。



沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。