前篇有用 Apache 安裝過 cacti 這套監控流量軟體,這次要改用 Nginx + cacti 來安裝
將文章重新整理一次
示範環境:
CentOS 6.6 64bit
Nginx + php-fpm + Mysql
Cacti + rrdtool + SNMP
Cacti Server install
step1. 安裝建置所需套件
$ yum install net-snmp-devel net-snmp net-snmp-libs net-snmp-utils rrdtool mysql-server php php-fpm php-mysql freetype-devel libpng-devel libart_lgpl-devel
step2. 安裝 Nginx (要有 EPEL)
$ yum install nginx --enablerepo=epel
step3. 下載 cacti 0.8.8c 版本
$ wget http://www.cacti.net/downloads/cacti-0.8.8c.tar.gz $ wget http://www.cacti.net/downloads/spine/cacti-spine-0.8.8c.tar.gz $ tar zxvf cacti-0.8.8c.tar.gz -C /var/www/html $ mv /var/www/html/cacti-0.8.8c /var/www/html/cacti $ tar cacti-spine-0.8.8c.tar.gz -C /usr/local/src
step4. 更改 cacti 權限
這邊若修改有誤,會讓 poller.php 執行的時候無法產出 rrd 跟 log,在 UI 上就不會有數據
$ chown -R nginx.nginx /var/www/html/cacti $ chmod 777 -R /var/www/html/cacti/rra /var/www/html/cacti/log
step5. 建立 cacti 資料庫
$ service mysqld start mysql 安全性設置 $ mysql_secure_installation 建立資料庫 $ mysqladmin -u root -p create cacti $ mysql -u root -p -A cacti < /var/www/html/cacti/cacti.sql $ mysql -u root -p mysql> grant all on cacti.* to cacti_USER@localhost identified by "cacti_PWD"; mysql> flush privileges;
step6. 修改 cacti 設定檔
$ vim /var/www/html/cacti/include/config.php $database_type = "mysql"; $database_default = "cacti"; $database_hostname = "localhost"; $database_username = "cacti_USER"; $database_password = "cacti_PWD"; $database_port = "3306"; $database_ssl = false; $url_path = "/";
在 url_path 這邊要非常注意,若是沒有設定所有的 url 會自動加上 /cacti 為虛擬目錄
若是你想要跟小弟一樣直接打上 DomainName 就可以連的話就必須加上 $url_path = “/”;
step7. 加入 crontab 讓 cacti 定時 5 分鐘去撈 Client 資料
cacti 必須要有權限寫入 /var/www/html/cacti/rrd , log
$ adduser cacti -M $ vim /etc/crontab */5 * * * * cacti /usr/bin/php /var/www/html/cacti/poller.php > /dev/null
step8. 設定 php-fpm
$ vim /etc/php-fpm.d/www.conf listen = /var/run/php-fpm/cacti.socket user = nginx group = nginx 讓 php 有寫入session的權限,預設權限是 root.apache $ chown -R root.nginx /var/lib/php/session
step9. 設定 Nginx
$ vim /etc/nginx/conf.d/cacti.conf server{ listen 80; server_name cacti.twbbs.org; location / { root /var/www/html/cacti; index index.php index.html index.htm; } location ~ \.php$ { root /usr/share/nginx/html/cacti; fastcgi_pass unix:/var/run/php-fpm/cacti.socket; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
step10. 啟動服務
$ service php-fpm start $ service nginx start $ chkconfig php-fpm on $ chkconfig nginx on
step11. 開啟網頁測試是否可正常瀏覽 cacti
http://cacti.twbbs.org/install
第一次通常會引導到 install 頁面,並且確認每個項目的檔案都是 【OK: FILE FOUND】
Debug:
Q1: 可以看到 install 頁面,但所有的 css, js 等圖片都破圖?
Ans: 這是因為 step6 的 url_path 沒有設定好,導致抓不到風格檔案,到 nginx log 可查看到錯誤路徑為 /var/www/html/cacti/cacti/image/button_go.gif 多了一層 cacti
請設定為 $url_path = “/”;
Q2: cacti 抓不到流量資料,顯示 nan
Ans: 若是剛建立必須要等 poller.php 每5分鐘執行後才會有數據,若等待時間過後還是沒有,請確認 rrd , log 權限是否 cacti 可以寫入。
- 用 Cacti 來監控你的系統 – SNMP Client 設定 Round2
- 用 Cacti 來監控你的系統 – 用C語言的 spine 來撈資料 Round3
- 用 Cacti 來監控你的系統 – thold 告警通知功能 Round4
- 用 Cacti 來監控你的系統 – TCP Connection 監控 Round5
- 用 Cacti 來監控你的系統 – 自訂你的總流量、總頻寬圖 Round6