六.下面開始cacti安裝php
注意:我這個是從我本身的WORD 文檔貼過來的 後面的都沒弄圖html
詳細的看個人PDF 文檔,全部的插件包也有,最底下下載。mysql
1.設置數據庫權限linux
/usr/local/mysql/bin/mysql -u root -pnginx
Enter password:web
2.建立一個用戶cacti(密碼cacti)並受權:
mysql> create database cacti;
mysql> show databases like 'cacti';sql
mysql> GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'cactiuser';
mysql> flush privileges;
mysql> quit
shell
tar -zxvf cacti-0.8.7h.tar.gz -C /www數據庫
mv cacti-0.8.7h cactiapache
cd /www/cacti/
/usr/local/mysql/bin/mysql -u cactiuser -p'cactiuser' cacti < cacti.sql
3.修改cacti配置文件:
vi /www/cacti/include/config.php
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "cactiuser";
$database_port = "3306";
useradd cacti -d /www/cacti
chown
-R cacti /www/cacti/rra /www/cacti/
log
修改 apache 主配置文件
##########################cacti############
Alias /cacti /www/cacti
<Directory /www/cacti>
DirectoryIndex index.php
AllowOverride all
order deny,allow
deny from all
allow from all
AddType application/x-httpd-php .php
php_flag magic_quotes_gpc on
php_flag track_vars on
</Directory>
4. apt-get install rrdtool 安裝RRDTOOL 工具
5安裝cacti
http://192.168.3.107:7000/cacti/ 打開瀏覽器 下一步
PHP Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Chongqing' for 'CST/8.0/no DST' instead in /var/www/html/cacti/include/global_arrays.php on line 640
解決辦法是:
# /usr/local/php-5.3.8/lib/php.ini
date.timezone = PRC
重啓apache
下一步中中間可能有些路徑錯誤 暫時不要管他
原始帳戶:admin
原始密碼:admin
這裏會強制你修改的密碼的。

6.設置定時採集數據
vim /etc/crond
*/5 * * * * root /usr/local/php-5.3.8/bin/php /www/cacti/poller.php > /dev/null 2>&1
7最後 裝SNMP
① 安裝snmp
# apt-get install snmp snmpd
② 配置snmp
# vi /etc/snmp/snmpd.conf
註釋15行
#agentAddress udp:127.0.0.1:161
取消註釋17行
agentAddress udp:161,udp6:[::1]:161
表示監聽全部地址
在44行(system + hrSystem groups only)下添加一行
view AllView included .1
修改51行爲
rocommunity cacti default -V AllView
cacti是團體名
最後重啓一下snmp服務就完成了
③配置好團體名後
8.修改cacti SNMP的路徑
修改前的圖:

root@houzaicun:/usr/local# find / -name "snmpwalk"
/usr/bin/snmpwalk
root@houzaicun:/home/net-snmp-5.2.4.1# find / -name "rrdtool"
/etc/bash_completion.d/rrdtool
/usr/share/doc/rrdtool
查找出來 對應的路徑填上

啓動SNMP
root@houzaicun:/usr/local# /etc/init.d/snmpd start
#snmpwalk -v2c 192.168.3.107 -c 團體名 system 執行下測試 是否有問題
錯誤提示是snmpwalk;error while loading shared libraries: libcrypto.so.4: cannot open shared object file: No such file or directory
報錯
root@houzaicun:/lib# ldd snmpwalk 查詢多須要的庫
linux-vdso.so.1 => (0x00007fff66bff000)
libcrypto.so.4 => not found
libm.so.6 => /lib/libm.so.6 (0x00007f8d0ad0c000)
libc.so.6 => /lib/libc.so.6 (0x00007f8d0a9aa000)
/lib64/ld-linux-x86-64.so.2 (0x00007f8d0af95000)
缺乏的確實是這個 並且這個須要的庫路徑是/lib
root@houzaicun:/var# whereis libcrypto.so.4 查詢有沒有這個庫文件
libcrypto.so: /usr/lib/libcrypto.so /usr/lib64/libcrypto.so
系統有的 。
作個軟鏈接 :ln -s /usr/lib/libcrypto.so /usr/lib/libcrypto.so.4
問題解決 。從新加下主機
9.最後cacti 遠程主機的添加 咱們這裏用本身的IP 192.168.3.107,SNMP 遠程測試。
http://hzcsky.blog.51cto.com/1560073/475631 看這篇的後面的部分
最後結果

七.cacti的Apache-狀態監控
1.對Apache Server Status的啓用
對Apache的狀態管理的模塊是LoadModule status_module modules/mod_status.so,因此這個須要有
root@houzaicun:/www/cacti/scripts# /usr/local/apache-2.2.21/bin/apachectl -l |grep status
mod_status.c
2.而後打開下面的配置
ExtendedStatus On
配置Apache Server Status的權限
<location /server-status>
SetHandler server-status
Order Deny,Allow
Deny from all
Allow from www.hou.com
</location>
測試機器 all 無所謂
字段 說明
Server Version Apache 服務器的版本。
Server Built Apache 服務器編譯安裝的時間。
Current Time 目前的系統時間。
Restart Time Apache 從新啓動的時間。
Parent Server Generation Apache 父程序 (parent process) 的世代編號,就是 httpd 接收到 SIGHUP 而從新啓動的次數。
Server uptime Apache 啓動後到如今通過的時間。
Total accesses 到目前爲此 Apache 接收的聯機數量及傳輸的數據量。
CPU Usage 目前 CPU 的使用情形。
_SWSS…. 全部 Apache process 目前的狀態。每個字符表示一個程序,最多能夠顯示 256 個程序的狀態。
Scoreboard Key 上述狀態的說明。如下爲每個字符符號所表示的意義:
* _:等待連結中。
* S:啓動中。
* R: 正在讀取要求。
* W:正在送出迴應。
* K:處於保持聯機的狀態。
* D:正在查找 DNS。
* C:正在關閉連結。
* L:正在寫入記錄文件。
* G:進入正常結束程序中。
* I:處理閒置。
* .:尚無此程序。
Srv 本程序與其父程序的世代編號。
PID 本程序的 process id。
Acc 分別表示本次聯機、本程序所處理的存取次數。
M 該程序目前的狀態。
CPU 該程序所耗用的 CPU 資源。
SS 距離上次處理要求的時間。
Req 最後一次處理要求所耗費的時間,以千分之一秒爲單位。
Conn 本次聯機所傳送的數據量。
Child 由該子程序所傳送的數據量。
Slot 由該 Slot 所傳送的數據量。
Client 客戶端的地址。
VHost 屬於哪個虛擬主機或本主機的 IP。
Request 聯機所提出的要求信息。
5.添加apache服務器的主機
6.最後添加圖標樹中就能夠
7.完成
八.cacti的mysql-狀態監控
mysql > grant super, process, replication client on *.* to cm@
cactiIP identified by '123';
mysql> FLUSH PRIVILEGES;
4.修改腳本
vi /www/cacti/scripts/ss_get_mysql_stats.php
$mysql_user = 'cm';
$mysql_pass = '123';
$cache_dir = "/www/cacti/cache/";
-----------------------------------------------------------
mkdir –p /www/cacti/cache/
chmod 777 -R /www/cacti/cache/
4. 添加 mysql組
九.TCP-鏈接狀態監控
1. 下載netstat_tcp.zip後,解壓,將lvm_netstat_tcp.pl 上傳至cacti根目錄的scripts內。
2.進入cacti後臺,Import/export - Import Templates 導入cacti_graph_template_snmp_get_tcp_connection_status2_340.xml
模板文件。
爲了肯定其能正常工做,能夠在scripts目錄下,執行
/usr/bin/perl lvm_netstat_tcp.pl 127.0.0.1 2c public 161 500
嘗試能不能去到tcp鏈接的值。若是能取到,基本就沒有什麼問題了。
3.CACTI模版配置
找到Templates-->Host Templates-->找到又上方的Add添加一個主機模版
點開add以後輸入建立的主機模版的名字例如:LINUX-TCP-點擊create 進入下一步配置
在Associated Graph Templates選擇--Get TCP Connection Status--點擊Add添加
在Associated Data Queries選擇網絡狀態---點擊Add添加
最後點擊 Save 保存完成。
4.爲主機建立Graphs
Devices --> 選擇 一個主機 --> Host Template 選擇剛剛建立的LINUX-TCP 點擊保存
點擊上方的 *Create Graphs for this Host在下面就能看到Get TCP Connection Status。
十.cacti的磁盤-IO監控
注意:這個我在debian6.0沒測試成功繼續研究中,debian6.0的SNMP 不同。
所需軟件:此軟件網上並非太好找,建議你們好好收藏
snmpdiskio-0.9.6.zip
下載點http://www.colderboy.com/wp-content/uploads/2011/08/snmpdiskio.rar
1.把解壓以後文件夾下的snmpdiskio文件上傳到被監控服務器的/usr/local/bin目錄下;
因爲9.4太老不支持2.6內核,須要修改, 這裏下載的包我已經更新過已經支持2.6內核.
2.把解壓以後文件夾下的 partition.xml上傳到cacti監控服務器的
/www/cacti/resource/snmp_queries/目錄下,這裏個人CACTI的
目錄文件爲以上,你們能夠根據實際狀況修改。
且分別導入2個模板:
cacti_graph_template_disk_io_bytessec.xml
cacti_data_query_snmp_disk_statistics.xml
3.:修改snmp配置文件/etc/snmp/snmpd.conf
#----------------------------------------------------------------------------------
com2sec local
localhost public
com2sec local
監控IP 地址
public
com2sec mynetwork NETWORK/24
COMMUNITY
group MyRWGroup v1
local
group MyRWGroup v2c
local
group MyRWGroup usm
local
group MyROGroup v1
mynetwork
group MyROGroup v2c
mynetwork
group MyROGroup usm
mynetwork
view all
included .1 80
access MyROGroup ""
any noauth exact all none none
access MyRWGroup ""
any noauth exact all all none
syslocation etiantian.org
syscontact Me <zlyzhangluya@163.com>
proc mountd
proc ntalkd 4
proc sendmail 10 1
proc httpd
10 1
exec echotest /bin/echo hello world
exec disk_used_shell
/bin/sh /root/current_disk_used.sh
exec httpd_proc
/bin/sh /root/current_httpd_proc.sh
disk /
10000
disk /boot
10000
load 12 14 14
#如下五行是我添加的內容
exec .1.3.6.1.4.1.2021.55 hdIndex /bin/sh /usr/local/bin/snmpdiskio hdIndex
exec .1.3.6.1.4.1.2021.56 hdDescr /bin/sh /usr/local/bin/snmpdiskio hdDescr
exec .1.3.6.1.4.1.2021.57 hdInBlocks /bin/sh /usr/local/bin/snmpdiskio hdInBlocks
exec .1.3.6.1.4.1.2021.58 hdOutBlocks /bin/sh /usr/local/bin/snmpdiskio hdOutBlocks
#----------------------------------------------------------------------------------
4.:重啓snmpd服務
/etc/init.d/snmpd restart
5:在cacti監控主機上測試
yum install -y net-snmp-utils*
[root@mail ~]# snmpwalk -v 2c -c public localhost .1.3.6.1.4.1.2021.58
UCD-SNMP-MIB::ucdavis.58.1.1 = INTEGER: 1
UCD-SNMP-MIB::ucdavis.58.2.1 = STRING: "hdOutBlocks"
UCD-SNMP-MIB::ucdavis.58.3.1 = STRING: "/bin/sh /usr/local/bin/snmpdiskio hdOutBlocks"
UCD-SNMP-MIB::ucdavis.58.100.1 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.58.101.1 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.2 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.3 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.4 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.5 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.6 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.7 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.8 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.9 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.10 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.11 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.12 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.13 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.14 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.15 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.16 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.17 = STRING: "641941504"
UCD-SNMP-MIB::ucdavis.58.101.18 = STRING: "701440"
UCD-SNMP-MIB::ucdavis.58.101.19 = STRING: "224997888"
UCD-SNMP-MIB::ucdavis.58.101.20 = STRING: "297335296"
UCD-SNMP-MIB::ucdavis.58.101.21 = STRING: "2048"
UCD-SNMP-MIB::ucdavis.58.101.22 = STRING: "66200576"
UCD-SNMP-MIB::ucdavis.58.101.23 = STRING: "659456"
UCD-SNMP-MIB::ucdavis.58.101.24 = STRING: "51835904"
UCD-SNMP-MIB::ucdavis.58.101.25 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.26 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.102.1 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.58.103.1 = ""
看到以上內容說配置成功.
6:CACTI模版配置,這裏有點小難度,須要特別注意
找到Templates-->Host Templates-->找到又上方的Add添加一個主機模版
點開add以後輸入建立的主機模版的名字例如:LINUX-disk-io點擊create 進入下一步配置
在Associated Graph Templates選擇Disk-I/O (bytes/sec)點擊Add添加
在Associated Data Queries選擇SNMP-Disk Statistics點擊 Add 添加
最後點擊 Save 保存完成。
6:爲主機建立Graphs
Devices --> 選擇 一個主機 --> Host Template 選擇剛剛建立的linux-disk-io 點擊保存
點擊上方的 *Create Graphs for this Host在下面就能看到Data Query [SNMP - Disk Statistics]
這樣列表,列表內顯示你硬盤的信息。選擇你須要監控的磁盤點擊建立完成。
十一cacti的nginx狀態監控
1. 修改nginx服務器配置 使其支持狀態信息顯示
vi /usr/local/nginx/conf/nginx.conf
server {.......
在server{}中加入下面:
location /nginx_status {
stub_status on;
access_log off;
}
.....}
首先導入模板,兩個文件
cacti_graph_template_nginx_clients_stat.xml
cacti_graph_template_nginx_sockets_stat.xml
將兩個pl腳本放到/www/cacti/scripts 下 》受權 755
而後添加NGINX主機,這時候模塊欄並無出現nginx的模塊選擇,那麼咱們先選擇基本的主機監控模塊。按下 create ,
在最下面處選擇nginx-clients-stat 按ADD
再選nginx-sockets-stat add
create 完成後點SAVE 就完成了,抽顆小煙就出來圖了。