搭建Cacti監控
Cacti是一套基於PHP,MySQL,SNMP及RRDTool開發的網路流量監測圖形分析工具。它通過snmpget來獲取資料,使用 RRDtool繪畫圖形,而且你完全可以不需要了解RRDtool複雜的引數。它提供了非常強大的資料和使用者管理功能,可以指定每一個使用者能檢視樹狀結構、host以及任何一張圖,還可以與LDAP結合進行使用者驗證,同時也能自己增加模板,功能非常強大完善。
Cacti三層架構:資料展現層、資料儲存層、資料採集層,其具體如下:
資料採集層:通過SNMP或自定義指令碼進行資料採集
資料儲存層:通過cacti模板等資料存放至MYSQL中
資料展現層:通過WEB方式呈現出來
Cacti應用場景
1)網路裝置
(1)介面流量(進與出的頻寬)
(2)監控CPU的負載、記憶體等等
(3)溫度等等
2)主機系統
(1)網路介面流量(進與出的頻寬)
(2)監控CPU的負載、記憶體等等
(3)監控磁碟的空間、程式數等等
3)cacti常見的監測物件
(1)伺服器資源:CPU、記憶體、磁碟、程式、連線數等
(2)伺服器型別:WEB、Mail、FTP、資料庫、中介軟體
(3)網路介面:流量、轉發速度、丟包率
(4)網路裝置效能、配置檔案(對比與備份)、路由數
(5)安全裝置效能、連線數、攻擊數
(6)裝置執行狀態:風扇、電源、溫度
(7)機房執行環境:電流、電壓、溫溼度
nagios介紹
cacti 和 nagios 是不同功用的系統, nagios 適合監視大量伺服器上面的大批服務是否正常, 重點並不在圖形化的監控, 其整合的很多功能例如報警,都是 cacti 沒有或者很弱的. cacti 主要用途還是用來收集歷史資料和畫圖, 所以介面比 nagios 漂亮很多.
Nagios通常由一個主程式(Nagios)、一個外掛程式(Nagios-plugins)和四個可選的附件(NRPE、NSCA、 NSClient++和NDOUtils)組成。
Nagios的監控工作都是通過外掛實現的,因此,Nagios和Nagios-plugins是伺服器端工作所必須的元件。
其它四個附件:
(1)NRPE:用來在監控的遠端Linux/Unix主機上執行指令碼外掛以實現對這些主機資源的監控
(2)NSCA:用來讓 被監控的遠端Linux/Unix主機主動將監控資訊傳送給Nagios伺服器(這在冗餘監控模式中特別要用到)
(3)NSClient++:用來監控 Windows主機時安裝在Windows主機上的元件
(4)NDOUtils:則用來將Nagios的配置資訊和各event產生的資料存入資料庫,以實現 這些資料的快速檢索和處理
這四個ADDON(附件)中,
NRPE和NSClient++工作於客戶端,
NDOUtils工作於伺服器端,
而NSCA則需要同時安裝在伺服器端和客戶端
nagios主要功能
網路服務監控(SMTP、POP3、HTTP、NNTP、ICMP、SNMP、FTP、SSH)
主機資源監控(CPU load、disk usage、system logs),也包括Windows主機(使用NSClient++ plugin)
可以指定自己編寫的Plugin通過網路收集資料來監控任何情況(溫度、警告……)
可以通過配置Nagios遠端執行外掛遠端執行指令碼
遠端監控支援SSH或SSL加通道方式進行監控
簡單的plugin設計允許使用者很容易的開發自己需要的檢查服務,支援很多開發語言(shell scripts、C++、Perl、ruby、Python、PHP、C#等)
包含很多圖形化資料Plugins(Nagiosgraph、Nagiosgrapher、PNP4Nagios等)
可並行服務檢查
能夠定義網路主機的層次, 允許逐級檢查, 就是從父主機開始向下檢查
當服務或主機出現問題時發出通告,可通過email, pager, sms 或任意使用者自定義的plugin進行通知
能夠自定義事件處理機制重新啟用出問題的服務或主機
自動日誌迴圈
支援冗餘監控
包括Web介面可以檢視當前網路狀態,通知,問題歷史,日誌檔案等
3、結合實際應用選型軟體
分析:
1)、 NRPE與SNMP協議
Cacti在LINUX下主要採用SNMP協議;snmp是簡單網路管理協議,通過固定協議執行方式以OID格式提供系統執行狀態的全面資訊,然後通過snmp agent去獲取這些資訊並繪製流量。
NAGIOS在LINUX下主要採用NRPE外掛,NRPE通過ssl方式在C/S結構下呼叫被監控主機的狀態監測指令碼,並將獲得的資訊實時提供到監控伺服器。
2)、NAGIOS與CACTI區別
Cacti:在監控方面繪圖比較不錯,在流量與圖型展現比較存在優勢
Nagios:在故障分析比較不錯,報警機制相對來說比較好,報警機制:郵箱、簡訊等,而且也比Cacti靈活;同時適用監控大量伺服器以及伺服器上面大批服務狀態是否正常,重點不在圖形化,而在狀態故障的監控
綜合所知:
cacti偏沉於收集流量畫圖,系統負載方面的。而nagios偏沉於系統狀態正常與否方面的, nagios能夠和簡訊傳送機共同用來規模較大的網路,Cacti+Nagios 兩者結合使用取長補短方為上上之策。
Cacti是一款使用PHP語言開打的效能與流量監測工具,監測的物件可以是linux或windows伺服器,也可以是路由器,交換機等網路裝置,主要基於SNMP(簡單網路管理協議)蒐集CPU佔用,記憶體佔用,執行程式數,磁碟空間,網路卡流量等各種資料。
Cacti本身只是一個Web介面的管理軟體,通過呼叫Net-SNMP工具來採集監測資料,並結合RRDtool(輪詢資料庫工具)記錄資料並繪製圖片。
注意:Cacti監測系統的搭建需要LAMP環境的支援,因此在搭建Cacti環境之前需要先將LAMP環境搭建好,還有本文的系統使用rhel6.0的系統,參考時注意自己系統的版本。
伺服器端配置(主控端-Cacti)
1、構建支援Cacti的LAMP平臺
在此使用系統光碟中的rpm格式的包,並使用yum進行安裝,相關軟體包如下。
[root@localhost/]#yum -y install httpd
[root@localhost/]#yum -y install mysql mysql-server mysql-connector*
[root@localhost/]#yum -y install php php-mysql php-pdo perl-DBD*unixODBC-*
上述分別是安裝http mysql和php,也就是LAMP平臺。
2、安裝net-snmp-utils軟體包
Cacti平臺通過SNMP協議採集監測資料,因此需要用到snmpget,snmpwalk等SNMP資料採集工具,如下:使用yum一併安裝。
[root@localhost/]#yum -y install net-snmp* lm_sensors
3、安裝RRDtool軟體包
[root@localhost/]# tar zxf rrdtool-1.4.5.tar.bz
[root@localhost/]# cd rrdtool-1.4.5
[root@localhostrrdtool-1.4.5]#./configure–prefix=/usr/local
[root@localhostrrdtool-1.4.5]# make&&make install
4、部署Cacti原始碼包
將下載好的Cacti原始碼包釋放至Web伺服器的網頁目錄。
[root@localhost/]# tar zxf cacti-0.8.7g.tar.bz
[root@localhost/]# mv cacti-0.8.7g/ /var/www/html/cacti
5、新增一個程式使用者,用來讀取檢測的資料。
[root@localhost/]# useradd runct
[root@localhost/]# cd /var/www/html/cacti
[root@localhostcacti]# chown -R root:root./
[root@localhostcacti]# chown -R runct:runct rra/log/
6、建立資料庫,並匯入表。
先建立用於Cacti檢測平臺的資料庫,並授權一個資料庫使用者,然後使用cacti原始碼目錄下的cacti.sql指令碼,匯入預設的各種資料表。
如下圖所示:
需要先啟動mysqld服務,然後登陸mysq進行建立資料庫操作。
[root@localhostcacti]# mysql-uroot -p
Mysql>create database cactidb default characterset utf8;
Mysql>grant all on cactidb.* to cactiuser@`localhost` identified by`123.qwe`;
Mysql>exit
[root@localhostcacti]# mysql-u cactiuser -p cactidb <cacti.sql
7、調整Cacti配置檔案
Cacti的配置檔案位於原始碼目錄中的include/檔案下,名為config.php。要使Cacti系統能夠正確訪問並使用資料庫,必須修改config.php檔案,確保資料庫連線引數真確無誤。修改如下:
[root@localhostcacti]#vim /var/www/html/cacti/include/config.php
$database_type=”mysql”;
$database_default=”cactidb”;
$database_hostname=”lcoalhost”;
$database_username=”cactiuser”;
$database_password=”123.qwe”;
$database_port=”3306″;
$database_ssl=false;
$url_path=”/”;
除此之外,為了在檢測影像中正確顯示中文,需要使用Cacti系統識別本機的中文語言環境。
需要修改“/lib/functions.php”檔案。修改如下:
[root@localhost/]#vim /var/www/html/cacti/lib/functions.php
<?php
Setlocale(LC_CTYPE,”zh_CN.UTF-8″);
……//省略部分內容
8、修改httpd服務的主配置檔案,設定好網站根目錄,自動索引頁,預設字符集等相關引數,然後啟動http服務。修改如下:
[root@localhost/]#vim /etc/httpd/conf/httpd.conf
DocumentRoot”/var/www/html/cacti”
<Directory”/var/www/html/cacti”>
OptionsIndexesFollowSymLinks
AllowOverrideNone
Orderallow,deny
Allowfromall
</Directory>
DirectoryIndexindex.phpindex.html
AddDefaultCharsetUTF-8
[root@localhost/]#service httpd start
9、初始化安裝Cacti系統
在瀏覽器中訪問Cacti伺服器的Web服務,根據提示進行cacti初始化的安裝操作。如下圖所示:在瀏覽器中輸入“http://cacti伺服器的地址”根據提示選擇“next”進行下一步安裝,Cacti初始化安裝時會檢測安裝環境,安裝完成後,會出現Cacti登陸介面,預設使用者名稱,密碼都是“admin”,初次登陸會提示更改密碼。
客戶端配置(被控端-SNMPD)
無論是交換機,路由器,還是Linux系統或windows系統,只要正確支援SNMP協議,並允許Cacti伺服器採集資料,就能夠進行集中檢測了。作者在此分別使用Linux系統和Windows系統來演示客戶端的配置操作。
1、Linux客戶端
在linux客戶端,需要安裝net-snmp、lm_sensors等軟體包,並修改snmpd.conf配置檔案,啟動snmpd服務即可。
snmpd.conf配置檔案修改如下:
[root@localhost]#vim /etc/snmp/snmpd.conf
……//省略部分內容
41com2secnot Configuser 192.168.1.1 Public
62accessnotConfigGroup””anynoauthexactallnonenone
85viewallincluded.1
2、windows客戶端
windows客戶端需要安裝SNMP服務
安裝完成以後,通過“伺服器管理器”修改“SNMPService”服務的屬性,指定授權地址(即cacti伺服器的地址),共同體名等(即Public)。
使用Cacti檢測客戶端主機
1、新增被監控端主機
單擊導航欄中“Management”下的“Devices”連結,可以管理被控制端裝置或主機。通過右上角的“Add”連結,可以開啟新增新裝置的頁面。
建立新的被監控裝置以後,將自動連線目標執行SNMP查詢,若查詢成功則可以繼續後面的檢測專案設定,否則應檢測被控端的SNMP設定,網路連線,防火牆限制,共同體名等相關因素以排除故障。成功連線被控端後會看到“SaveSucessful”的提示資訊,頁面下方可看到預設檢測專案,管理員可根據需要檢測的專案進行勾選。
2、生成檢測影像
單擊導航欄中“Create”下的“NewGraphs”連結,進入影像建立頁面,選擇指定被監控主機或裝置,並選擇其中最需要的影像條目。
單擊導航欄中“Management”下的“GraphTrees”連結,在單擊“DefaultTree”,可以對預設的影像檢測樹進行管理。我們可以單擊右邊的“Add”連結,將剛才建立的影像新增至檢測樹彙總。
3、定期採集檢測資料
Cacti系統通過“poller.php”頁面來採集檢測資料,需要使用php程式解釋執行。為了獲得持續穩定的資料,應結合計劃任務定期進行採集。
[root@localhost/]#su – runct//切換為資料採集賬戶
[runct@localhost/]# php /var/www/html/cacti/poller.php//手動執行資料採集
[runct@localhost/]# crontab -e //設定計劃任務
*/5****/usr/bin/php /var/www/html/cacti/poller.php&>/dev/null
[runct@localhost/]#exit
[root@localhost/]#service crond start
[root@localhost/]#chkconfig crond on
4、檢視檢測結果
單擊Cacti管理控制檯左上方的“graphs”標籤,然後展開左側欄的“DefaultTree”樹,選擇被監控主機後即可看到個項檢測影像。
新增Monitor、Thold外掛
Cacti檢測系統支援外掛擴充套件,允許自定義影像模板和資料查詢,從而能夠靈活滿足更加多樣化的檢測需求。下面通過安裝及使用Monitor、Thold外掛,介紹擴充套件Cacti檢測系統功能的基本方法。
1、安裝Monitor和Thold外掛
將下載好的外掛包解壓到/var/www/html/cacti/plugins目錄下即可。
[root@localhost/]#tar zxf monitor-0.8.2.tar.gz -C /var/www/html/cacti/plugins
[root@localhost/]#tar zxf thold-0.4.3.tar.gz -C /var/www/html/cacti/plugins
2、調整cacti配置以識別外掛
在cacti系統的web控制檯中,單擊導航欄中的“Utilites”下的“UserManagement”連結,修改admin使用者的屬性,選中“PluginManagement”項,單擊“Save”儲存即可。
重新整理cacti控制檯頁面,左側導航欄中“configuration”下將多出一個“PluginManagement”連結。單擊此連結進入外掛管理頁面,通過“Actions”列的按鈕可依次載入Monitor、Settings、Thold外掛,並啟用Thold外掛。
使用狀態監視外掛——Monitor
單擊導航欄中“configuration”下的“setings”連結,切換至“Misc”頁面並選中“ShowlconLegend”以顯示圖例,將檢視“View”設為“Tiles”。
若不希望某個裝置被Monitor外掛檢測,則可以修改被監控主機屬性,取消選中的“MonitorHost”即可。
使用閾值告警外掛——Thold
1、設定接收告警郵件的郵箱地址
單擊導航欄中的“ConfigUration”下的“Settings”連結,切換至“Thresholds”頁面,選中“DeadHostNotifications”以便當機或恢復時傳送通知,同時應在“DeadhostsNotificationsEmail”外指定告警郵箱地址。
2、設定SMTP發信、DNS伺服器等引數。
單擊導航欄中的“ConfigUration”下的“Settings”連結,切換至“Mail/DNS”頁面,將“MailServices”設為“SMTP”,並填寫實際可用的發信地址,SMTP伺服器,SMTP認證使用者和密碼,以及DNS伺服器地址等資訊。
3、設定需要報警的檢測專案
單擊導航欄中“Templates”下的“ThresholdTemplates”連線,切換至預警模板設定頁面,單擊“Add”可以新增預警項,資料模板應與被控裝置使用的模板想匹配。
在設定各種檢測模板時,告警閾值的預設計量單位如下:CPU使用率為百分比(不含%),網路卡流量為Byte/S,硬碟空間為KB,記憶體佔用為KB。
4、為被控主機啟用閾值告警
單擊導航欄中“Create”下的“NewGraphs”連線,選擇指定的被控主機,然後單擊右上方的“Auto-createthresholds”連線,將會自動建立可用的閾值告警專案。
5、檢視,管理閾值警告。
單擊導航欄中“Management”下的“Thresholds”連線,可以對以啟用的閾值告警項進行管理(檢視,新增,刪除等);或者通過cacti管理頁面上方的“Thold”選項卡,可以檢視閾值告警情況,達到告警條件的檢測項將以紅色顯示。
環境:
相關軟體:
Linux AS4 up4
mysql-5.0.22.tar.gz
httpd-2.2.4.tar.gz
php-5.2.4.tar.gz
cgilib-0.5.tar.gz
phpMyAdmin-2.11.1-all-languages.tar.gz
rrdtool-1.2.11.tar.gz
net-snmp-5.2.4.tar.gz
cacti-0.8.6g.tar.gz
安裝配置:
mysql安裝
解壓縮:tar –zvxf mysql-5.0.22.tar.gz
改變目錄:cd mysql-5.0.22.tar.gz
新增組:groupadd –g 20000 mysql
把使用者加入組中:useradd –u 20000 –g mysql mysql
編譯前的配置:
./configure –prefix=/usr/local/mysql –sysconfdir=/etc –localstatedir=/var/lib/mysql
編譯:make
安裝:make install
初始化資料庫:/usr/local/mysql/bin/mysql_install_db
設定目錄許可權:Chown –R mysql /var/lib/mysql
複製配置檔案:Cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf
啟動資料庫:/usr/local/mysql/bin/mysqld_safe –user=root &
修改root密碼:/usr/local/mysql/bin /mysqladmin –u root password bobo365
測試資料庫:/usr/local/mysql/bin/mysql –u root –p
Mysql>
新增到自動啟動:
# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
# chkconfig –add mysqld
#chkconfig –level 3 mysqld on
安裝apache
Tar –zvxf httpd-2.2.4.tar.gz
Cd httpd-2.2.4
./configure –prefix=/usr/local/apache –enable-so –enable-rewrite –with-included-apr (–enable-module=so –enable-module=most –enable-shared=max)
Make
Make install
安全加固:
隱藏和偽裝apache版本:找到關鍵字ServerSignature將其設定為
ServerSignature off
ServerTokens Pord
安裝前編譯ap_release.h檔案,修改
“#define AP_SERVER_BASEPRODUCT”Apache””為“#define AP_SERVER_BASEPRODUCT”Microsoft-IIS/5.0””
編輯os/unix/os.h,修改“define PLATFORM”Unix””為“define PLATFORM”Win32””
禁止顯示動態目錄索引:
Options –Indexes FollowSymLinks
在rc.local上加入一行/usr/local/apache/bin/apachectl –k start,系統啟動時啟動Apache服務。
安裝php
(安裝libxml,RedHat AS 4預設安裝libxml包,但版本太低,PHP5需要更高版本的libxml包。
rpm -e libxml-devel
rpm -e libxml
http://xmlsoft.org/sources/old/
# tar –zxvf libxml2-2.6.25.tar.gz
# cd libxml2-2.6.25
# ./configure
# make
# make install
Tar –zvxf php-5.2.4.tar.gz
Cd php-5.2.4
./configure –prefix=/usr/local/php –with-mysql=/usr/local/mysql –with-apxs2=/usr/local/apache/bin/apxs –enable-sockets
(# ./configure –prefix=/usr/local/php –with-apxs2=/usr/local/apache2/bin/apxs –with-mysql=/usr/local/mysql –with-gd=/usr/local/libgd –enable-gd-native-ttf –with-ttf –enable-gd-jis-conv –with-freetype-dir=/usr/local/freetype –with-mail –with-jpeg-dir=/usr/local/libjpeg –with-png –with-zlib-dir=/usr/local/zlib –enable-xml –enable-mbstring –enable-sockets)
(./configure –prefix=/usr/local/php –with-apxs2=/usr/local/apache/bin/apxs –with-config-file-path=/usr/local/php –enable-sockets –with-mysql=/usr/local/mysql
–with-zlib-dir=/usr/include –with-gd)
Make
Make install
Cp php.ini-dist /usr/local/lib/php/php.ini
修改httpd.conf檔案:
AddType application/x-httpd-php .php
AddType application/x-httpd-php –source .phps
測試:<? phpinfo(); ?>
4、設定mysql
[root@Bleach php-4.3.10]# /usr/local/mysql/bin/mysql -u root -pmysql
mysql> create database cactidb;
mysql> grant all on cactidb.* to root;
mysql> grant all on cactidb.* to root@localhost;
mysql> grant all on cactidb.* to cactiuser;
mysql> grant all on cactidb.* to cactiuser@localhost;
mysql> set password for cactiuser@localhost=password(`cactipw`);
注:以上語句輸出 Query OK, 0 rows affected (0.01 sec) 表示成功
mysql> exit
Mysql設定完畢
5、安裝phpMyAdmin
Tar –zvxf phpMyAdmin-2.11.1-all-languages.tar.gz
Mv phpMyAdmin-2.11.1 /var/www/html/phpMyAdmin
Vi config.inc.php
$cfg[`Servers`][$i][`user`] = `root`;
$cfg[`Servers`][$i][`password`] = `bobo365`;
設定資料庫連線。
6、安裝rrdtool
(1).安裝cgilib
tar -zxf cgilib-0.5.tar.gz
cd cgilib-0.5
make CC=gcc CFLAGS=”-O3 -fPIC –I.”
cp cgi.h /usr/include/
cp libcgi.a /usr/local/bin/
1).安裝cgilib
tar -zxf cgilib-0.5.tar.gz
cd cgilib-0.5
make CC=gcc CFLAGS=”-O3 -fPIC -I.”
mkdir -p /usr/local/cgilib/include
cp *.h /usr/local/cgilib/include
mkdir -p /usr/local/cgilib/lib
cp libcgi* /usr/local/cgilib/lib
(2)安裝libart_lgpl
Rpm –ivh libart_lgpl-2.3.11-2.i386.rpm
Rpm –ivh libart_lgpl-devel-2.3.11-2.i386.rpm
(3)安裝rrdtool
tar -zxf rrdtool-1.2.11.tar.gz
cd rrdtool-1.2.11
./configure –prefix=/usr/local/rrdtool –disable-python –disable-tcl
make
make install
ln –s /usr/local/rrdtool/bin5 * * * * /usr/local/php/bin/php /usr/local/apache/htdocs/cacti /poller.php > /dev/null 2>&1
儲存退出:wq
全部設定完畢。
開啟瀏覽器 http://ip/cacti 進入cacti的初始設定頁面
第一次預設登陸賬號:admin 密碼 admin
登陸後在新改個密碼就OK
需要說明的還有路徑
[Copy to clipboard]CODE:
snmpwalk Binary Path : /usr/bin/snmpwalk
snmpget Binary Path: /usr/bin/snmpget
RRDTool Binary Path: /usr/rrdtool-1.0.50/src/rrdtool
PHP Binary Path: /www/php/bin/php
Cacti Log File Path: /www/htdocs/cacti/log/cacti.log
Cactid Poller File Path: /www/htdocs/cacti/poller.php
注:此時graphs還不能顯示圖形,需要將服務重新啟動一下
[Copy to clipboard]CODE:
[root@Bleach scripts]# service snmpd restart
[root@Bleach scripts]# service mysql restart
[root@Bleach scripts]# service httpd restart
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
如果您是Linux主機的話請先確定你的snmpd.conf有無下面字串
view systemview included .1.3.6.1.2.1.2
如果沒有請自行加入
此字串是偵測Interfaces
請先確定您的Devices的Data Query有新增SNMP – Interface Statistics
到Create → New Graphs → 選擇您要偵測的Host
在Data Query [SNMP – Interface Statistics]裡面勾選您要偵測的網路卡介面
選擇右下角的Select a graph type:In/Out Bits或者您想要的單位
好了之後點選右下方的create送出新增
再到Graph Trees把剛剛的Host或者Graphs新增進去即可查詢
cacti-0.8.7.tar.gz
cacti-plugin-arch.tar.gz
cacti-spine-0.8.7.tar.gz
CACTI的安裝涵蓋了LAMP各個方面,實際環境中完全可以使用成型的CactiEZ中文版直接安裝。
安裝完CactiEZ中文版後,授權其他裝置有MYSQL管理許可權:
[root@CactiEZ init.d]#service mysqld stop
[root@CactiEZ init.d]# mysqld_safe –user=mysql –skip-grant-tables –skip-networking &
[root@CactiEZ init.d]# mysql -u root mysql
mysql> update mysql.user set password=password(“bobo365″) where user=”root”;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 3 Changed: 0 Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> quit
Bye
[root@CactiEZ init.d]# ./mysqld start
Starting mysqld: [ OK ]
[root@CactiEZ init.d]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 3
Server version: 5.1.47 Source distribution
mysql> show databases;
+——————–+
| Database |
+——————–+
| information_schema |
| cacti |
| mysql |
| test |
+——————–+
4 rows in set (0.00 sec)
mysql>
mysql> GRANT ALL PRIVILEGES ON *.* TO root@192.168.2.243 IDENTIFIED BY `bobo365` WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> quit
[root@CactiEZ init.d]# ./mysqld restart
120731 12:07:58 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
Stopping mysqld: [ OK ]
Starting mysqld: [ OK ]
[1]+ Done mysqld_safe –user=mysql –skip-grant-tables –skip-networking
放行80、3306埠
# iptables -I INPUT -p tcp –dport 80 -jACCEPT ; iptables -I INPUT -p tcp–dport 3306 -j ACCEPT ;
#service iptables save
1安裝cacti依賴的軟體,安裝過程全選Y
#yum install httpd php php-process php-ldap php-mbstringphp-gd php-pdo php-snmp php-mysql lm_sensors net-snmp net-snmp-utilsnet-snmp-libs rrdtool rrdtool-devel perl-DBI perl-rrdtool perl-DBD-MySQL wqy-zenhei-fonts
2裝好依賴軟體之後,snmp有3個地方需要配置一下
3 #vim /etc/snmp/snmpd.conf
第41行:將 com2secnotConfigUser default public 中的 “default” 改為 “127.0.0.1”
提示 :41可直接跳到41行,下面同理
第62行:
將 accessnotConfigGroup “” any noauth exact systemview none none 中的 “systemview” 改為
“all”
第85行:將 #viewall include .1 80 這一行前面的 # 號去掉
4 配置好snmp以後我們來啟動2個重要的服務
#s
ervice snmpd start ;
service httpdstart ;
chkconfig snmpd on ;
chkconfig httpd on
5安裝並配置cacti
#wget http://www.cacti.net/downloads/cacti-1.0.1.tar.gz
#tar xzvf cacti-1.0.1.tar.gz
#mv cacti-1.0.1 /var/www/html/cacti
6下載和設定mysql資料庫
#wget https://dev.mysql.com/get/mysql57-community-release-el6-9.noarch.rpm //下載mysql的yum源,以安裝mysql5.7,預設的版本和cacti不相容
# rpm -ivh mysql57-community-release-el6-9.noarch.rpm
# yum install mysql-community-server
7修改MySQL的配置檔案(預設為/etc/my.cnf),
在[mysqld]下新增一行
skip-grant-tables
#service mysqld start;
chkconfig mysqld on
#mysql
mysql> update mysql.user setauthentication_string=password(`新密碼`) where user=`root` and Host =`localhost`;
mysql> flush privileges;
mysql> quit;
8將/etc/my.cnf檔案還原,重新啟動mysql
#mysql -uroot -p //輸入剛才設定的密碼
mysql> ALTER USER `root`@`localhost` IDENTIFIED BY `資料庫密碼`;
//再次執行修改密碼的命令(和之前的密碼相同),新版資料庫的安全要求高
mysql>create database cacti; //首先建立cacti資料庫,注意別丟了分號
mysql>grant all privileges oncacti.* to cacti@localhost identified by `新密碼` with grant option; //建立cacti使用者並授權
mysql>use cacti;
mysql>source /var/www/html/cacti/cacti.sql; //匯入cacti資料庫檔案
mysql>grant select on mysql.time_zone_nameto `cacti`@`localhost` identified by `資料庫密碼`; //給cacti 對mysql.time_zone_name表的查詢許可權(這兩個命令需執行,否則安裝中途會報錯)
mysql> flush privileges;
mysql>exit
9 #vim /var/www/html/cacti/include/config.php
$database_type = “mysql”;
$database_default = “cacti”;
$database_hostname =”localhost”;
$database_username = “cacti”;
$database_password = ” 資料庫密碼 “;
$database_port = “3306”;
執行命令,否則安裝過程會報錯
# mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -p mysql
10修改mysql預設引數,以支援cacti版本要求(直接貼上到最後一行)
#vim /etc/my.cnf
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
max_heap_table_size=400M
max_allowed_packet=16777216
tmp_table_size=64M
join_buffer_size=64M
innodb_buffer_pool_size=1912M
innodb_doublewrite=OFF
innodb_flush_log_at_timeout=3
innodb_read_io_threads=32
innodb_write_io_threads=16
# service mysqld restart
11修改目錄的所有者為apache
# cd /var/www/html/
# chown -R apache:apache cacti
12:增加cacti 使用者以用來寫入rrd和log目錄的資料,否則就會生成不了圖片
#useradd cacti
#cd cacti
#chown -R cacti rra/ log/
13:新增任務計劃
具體多長時間讓cacti生成一次監控圖表自己決定,這裡以cacti的預設時間5分鐘生成一次為例
#crontab -e
加入這一行儲存即可
*/5 * * * * php /var/www/html/cacti/poller.php > /dev/null 2>&1
14在瀏覽器輸入 http://ip/cacti
圖片不太清晰,在倒數第三個圖注意下,其它的預設下一步就行了
被監控伺服器 需要檢視網路卡流量, 磁碟空間等資訊。修改如下。
vi /etc/snmp/snmpd.conf
1、找到com2sec notConfigUser default public
改為:com2sec notConfigUser 192.168.1.1(改成監控伺服器的ip) public
2、找到access notConfigGroup “” any noauth exact systemview none none
改 為:access notConfigGroup “” any noauth exact all none none
3、找到#view all included .1 80
將前面的 # 註釋 去掉。
#以下為訪問專案,如果想監控磁碟空間,load等需把註釋去掉
#編譯安裝預設已去掉,自帶安裝的需手動把註釋去掉
# Make sure mountd is running
proc mountd #去掉前面的”#”
# Make sure there are no more than 4 ntalkds running, but 0 is oktoo.
proc ntalkd 4
# Make sure at least one sendmail, but less than or equal to 10 arerunning.
proc sendmail 10 1
# Check the / partition and make sure it contains at least 10 megs.
disk / 10000
# Check for loads:
load 12 14 14
相關文章
- linux下cacti監控平臺的搭建Linux
- Cacti+Nagios監控平臺完美整合iOS
- zabbix、cacti、nagios,伺服器監控還有更好的選擇嗎?iOS伺服器
- python搭建系統監控Python
- 搭建Lepus 天兔 監控MySQLMySql
- linux監控平臺搭建Linux
- Zabbix監控平臺的搭建
- 前端監控系統Sentry搭建前端
- Prometheus + Grafana 監控平臺搭建PrometheusGrafana
- 前端監控基礎篇 — Docker + Sentry 搭建前端監控系統前端Docker
- 搭建前端錯誤監控系統前端
- Centos7 搭建Cerebro Elasticsearch監控CentOSElasticsearch
- Docker 快速搭建主從 + 哨兵監控Docker
- 視覺化監控搭建過程視覺化
- 搭建私有的前端監控服務: sentry前端
- jmeter+influxdb+grafana監控平臺搭建JMeterUXGrafana
- Docker容器視覺化監控中心搭建Docker視覺化
- 手把手教你搭建高逼格監控平臺,第三彈,監控JVMJVM
- 手把手教你搭建高逼格監控平臺,第二彈,監控mysqlMySql
- 轉轉支付通道監控系統的搭建
- 使用樹莓派搭建區域網監控樹莓派
- 從零搭建Prometheus監控報警系統Prometheus
- Jmeter監控平臺搭建:JMeter+InfluxDB+GrafanaJMeterUXGrafana
- 黑盒監控、日誌監控
- 利用TICK搭建Docker容器視覺化監控中心Docker視覺化
- 詳解Docker容器視覺化監控中心搭建Docker視覺化
- 搭建前端監控,如何採集異常資料?前端
- docker-compose 搭建 Prometheus+Grafana監控系統DockerPrometheusGrafana
- MySQL資料庫與Nacos搭建監控服務MySql資料庫
- 6.prometheus監控--監控dockerPrometheusDocker
- TiDB監控實現--存活監控TiDB
- 監控
- 手把手教你搭建高逼格監控平臺,第四彈,監控主機存活狀態
- 使用滴滴雲快速搭建 Open-Falcon 監控平臺
- docker-compose快速搭建 Prometheus+Grafana監控系統DockerPrometheusGrafana
- grafana+prometheus快速搭建MySql監控系統實踐GrafanaPrometheusMySql
- 教你如何使用樹莓派搭建區域網監控樹莓派
- 藉助Docker搭建JMeter+Grafana+Influxdb監控平臺DockerJMeterGrafanaUX
- 聊聊前端監控——錯誤監控篇前端