企業(yè)除需要具有系統(tǒng)和設(shè)備的監(jiān)控功能外,還需要對(duì)其收集利用狀況進(jìn)行周到的監(jiān)控、措置和優(yōu)化,才能切實(shí)地包管企業(yè)信息安然。在企業(yè)級(jí)Linux把持系統(tǒng)中,供給了良多優(yōu)良的開(kāi)源收集監(jiān)控東西輔助收集治理人員和信息安然工作人員來(lái)進(jìn)行收集監(jiān)控和治理。是以,本文將遴選一個(gè)企業(yè)利用最為遍及和不變的Cacti東西來(lái)進(jìn)行介紹。
Cacti首要功能簡(jiǎn)介
Cacti是一個(gè)跟著時(shí)候推移(時(shí)候序列數(shù)據(jù))用圖表顯示系統(tǒng)和收集信息的收集監(jiān)測(cè)東西,并供給一個(gè)全功能的Web界面,可以瀏覽和查抄收集設(shè)備的及時(shí)機(jī)能。例如,可以建設(shè)Cacti來(lái)監(jiān)控顛末本地辦事器上的收集端口、本地收集上的互換機(jī)和路由器端口的收集流量。Cacti圖形供給收集各個(gè)部門(mén)的流量級(jí)別信息。例如,當(dāng)收集速度很慢時(shí),可以參考汗青圖表,查看是不是產(chǎn)生了任何超出通俗收集流量的工作,Cacti可以匯集CPU操縱率、磁盤(pán)空間利用率、Web辦事器上的頁(yè)面瀏覽量和本地收集上的幾近所有其它數(shù)據(jù)。
Cacti匯集跟著時(shí)候推移的基線(xiàn)(典型值)數(shù)據(jù)。可利用這些信息來(lái)增加對(duì)系統(tǒng)和收集及時(shí)行動(dòng)的洞察力,并幫忙解決標(biāo)題問(wèn)題。這些信息乃至可以猜想將來(lái)可能產(chǎn)生的工作(例如,當(dāng)磁盤(pán)很可能被占滿(mǎn)時(shí))。當(dāng)安裝并建設(shè)Cacti時(shí),它會(huì)按期輪詢(xún)收集設(shè)備以獲得所需數(shù)據(jù),并把數(shù)據(jù)存儲(chǔ)在RRD文件,用于RRDtool(輪循數(shù)據(jù)庫(kù)東西)。Cacti Web界面承諾瀏覽設(shè)備和圖形列表,并可看到跟著時(shí)候推移的設(shè)備的可視化暗示。
Cacti是下一代監(jiān)測(cè)東西的一部門(mén)。它是在從以往東西接收教訓(xùn)的根本上構(gòu)建的,如MRTG和Cricket東西。這些東西都具有以下功能:
按期輪詢(xún)跟蹤設(shè)備數(shù)據(jù)。匯集這些數(shù)據(jù)最常常利用的東西是SNMP(簡(jiǎn)單收集治理和談; www.net- snmp.org)。
把數(shù)據(jù)存儲(chǔ)在一個(gè)RRD文件。
具有Web界面,可以查抄從存儲(chǔ)數(shù)據(jù)生成的圖表。這些圖表凡是顯示每天、每周、每個(gè)月和每年的信息。
Cacti的建設(shè)是經(jīng)由過(guò)程其Web界面來(lái)實(shí)現(xiàn)的,而MRTG和Cricket的建設(shè)是經(jīng)由過(guò)程編纂文本文件來(lái)實(shí)現(xiàn)。RRD文件和RRDtool是Cacti良多功能的關(guān)頭。Cacti網(wǎng)站將Cacti描述為“完全的基于RRDtool的圖形解決方案?!盧RD文件存儲(chǔ)有效的時(shí)候序列數(shù)據(jù),經(jīng)由過(guò)程利用聚合功能,更等閑保留比來(lái)時(shí)候段的大年夜量細(xì)節(jié)信息,但逐步削減Cacti文件中時(shí)候較長(zhǎng)的細(xì)節(jié)數(shù)據(jù)。RRDtool可以很等閑地從RRD文件產(chǎn)生既簡(jiǎn)單又復(fù)雜的圖形。
利用前預(yù)備
1. 建設(shè)SNMP
假定想監(jiān)控本地系統(tǒng)上的數(shù)據(jù)源,起首在本地系統(tǒng)上安裝和運(yùn)行SNMP守護(hù)過(guò)程。
2. 設(shè)置LAMP
Cacti是一個(gè)LAMP(Linux、Apache、MySQL和PHP)利用法度,在建設(shè)Cacti之前必需安裝和建設(shè)這些利用法度。本節(jié)申明如安在運(yùn)行Cacti的系統(tǒng)上設(shè)置該軟件。默許環(huán)境下,Cacti設(shè)置本地系統(tǒng)來(lái)運(yùn)行Cacti,并作為數(shù)據(jù)源。
設(shè)置LAMP時(shí)利用名為mysql和cacti的MySQL數(shù)據(jù)庫(kù)。安裝MySQL時(shí)Fedora/RHEL設(shè)置mysql數(shù)據(jù)庫(kù)。需要設(shè)置以下數(shù)據(jù)庫(kù)用戶(hù)。每個(gè)帳戶(hù)都應(yīng)當(dāng)有暗碼:
為mysql數(shù)據(jù)庫(kù)設(shè)置root用戶(hù)。此用戶(hù)必需被定名為root。MySQL安裝腳本設(shè)置這個(gè)用戶(hù)。
為mysql數(shù)據(jù)庫(kù)設(shè)置cactiuser用戶(hù)。可以更改此用戶(hù)名,但Cacti安裝時(shí),設(shè)置Cacti利用cactiuser。
為cacti數(shù)據(jù)庫(kù)設(shè)置Cacti治理用戶(hù)。正如安裝Cacti時(shí)的設(shè)置,此用戶(hù)具有admin用戶(hù)名和admin暗碼??梢栽O(shè)置別的的Cacti用戶(hù)帳戶(hù)。
1)事前安裝軟件包
安裝以下軟件包:
cacti(僅Fedora; 從fedoraproject.org/wiki/EPEL下載RHEL的Cacti)
mysql
mysql-server
php(和cacti一路安裝)
httpd(Apache與cacti一路安裝)
rrdtool(與cacti一路安裝)
net-snmp(可選;只需要監(jiān)督本地系統(tǒng))
net-snmp-utils(可選)
2)防火墻設(shè)置
snmpd守護(hù)法度運(yùn)行在由Cacti監(jiān)控的系統(tǒng)上,利用UDP端口161。假定監(jiān)控系統(tǒng)運(yùn)行著防火墻或在防火墻后面,則必需打開(kāi)此端口。利用system-config-firewall,選擇“其它端口”選項(xiàng)卡,勾選User Defined復(fù)選框,并添加UDP端口161。假定想從沒(méi)有運(yùn)行Cacti的系統(tǒng)上的瀏覽器中利用Cacti,則需要在運(yùn)行Cacti的系統(tǒng)上打開(kāi)TCP端口80。
3)SELinux設(shè)置
當(dāng)設(shè)置SELinux利用方針策略時(shí),httpd(系統(tǒng)上運(yùn)行Cacti)和snmpd(在被監(jiān)測(cè)的系統(tǒng)上)都由SELinux呵護(hù)。假定有需要,可以禁用此呵護(hù)。
4)建設(shè)MySQL
安裝MySQL,運(yùn)行chkconfig,并啟動(dòng)mysqld守護(hù)過(guò)程。必然要經(jīng)由過(guò)程利用mysql_secure_installation或mysqladmin為MySQL的root用戶(hù)指定暗碼。
5)成立cacti數(shù)據(jù)庫(kù)
下一步利用以下號(hào)令來(lái)成立cacti數(shù)據(jù)庫(kù),成立mysql數(shù)據(jù)庫(kù)的cactiuser用戶(hù),授予該用戶(hù)需要的權(quán)限,并給該用戶(hù)分派暗碼。用你選擇的暗碼替代以下例子中的cactipassword。雖然FLUSH PRIVILEGES語(yǔ)句不是必需的,但最好包含它。
# mysql -p
Enter password:
Welcome to the MySQL monitor. Commands end with ;or \g.
Your MySQL connection id is 5
Server version: 5.5.10 MySQL Community Server (GPL)
...
mysql> CREATE DATABASE cacti;
Query OK, 1 row affected (0.00 sec)
mysql> GRANT ALL ON cacti.*
-> TO cactiuser@localhost
-> IDENTIFIED BY 'cactipassword';
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
6)設(shè)置和移植cacti數(shù)據(jù)庫(kù)
利用下面的號(hào)令來(lái)設(shè)置和移植cacti數(shù)據(jù)庫(kù)。當(dāng)MySQL提示輸進(jìn)暗碼,供給MySQL的root用戶(hù)暗碼(不是MySQL的cactiuser用戶(hù))。
# mysql -p cacti
Enter password:
假定有SQL語(yǔ)法弊端,上述號(hào)令會(huì)掉敗。要解決這個(gè)弊端,編纂cacti.sql并刪除呈現(xiàn)的所有字符串TYPE=MyISAM(即用空字符串替代每個(gè)TYPE=MyISAM字符串:s/TYPE=MyISAM//)。
在安裝時(shí),/etc/cacti/db.php文件中的大年夜大都信息都是準(zhǔn)確的。編纂這個(gè)文件來(lái)更改付與$database_password的值,從cactiuser更改成成立cacti數(shù)據(jù)庫(kù)時(shí)(MySQL 的cactiuser用戶(hù)的暗碼)為cactipassword利用的不異值。不要更改付與$database_username的值。
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "cactiuser";
$database_port = "3306";
7)建設(shè) Apache
安裝Apache并運(yùn)行chkconfig并利用service來(lái)啟動(dòng)httpd守護(hù)過(guò)程。Cacti供給該內(nèi)容。/etc/httpd/conf.d/cacti.conf文件節(jié)制Apache辦事器上Cacti的位置和可拜候性。默許環(huán)境下,Cacti供給127.0.0.1/cacti(基于別號(hào)聲明),只有127.0.0.1上的用戶(hù)(非localhost;基于Allow from語(yǔ)句)可以拜候Cacti。默許的cacti.conf文件以下:
$ cat /etc/httpd/conf.d/cacti.conf
#
# Cacti: An rrd based graphing tool
#
Alias /cacti /usr/share/cacti
< Directory /usr/share/cacti/>
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
< /Directory>
要遵守本節(jié)中的例子,當(dāng)即在Allow from 127.0.0.1下面添加Allow from localhost行??梢蕴砑宇~外的行以承諾從其它系統(tǒng)拜候。以下的容器承諾從127.0.0.1、localhost和位于172.16.192.150的長(zhǎng)途系統(tǒng)來(lái)拜候:
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
Allow from localhost
Allow from 172.16.192.150
< /Directory>