天天看點

幾個常用監控工具的使用

Cacti:監控伺服器多個性能名額(磁盤使用率,CPU使用率等等),并将資料儲存下來利用rrdtool實作繪圖功能

Nagios:監控主機狀态,有強大的報警功能

Ntop: 監控網絡流量

Cacti:

RRDtools

使用RRDtool來存儲和處理通過SNMP收集到的資料開始。這些資料很可能是某個網絡或計算機接收或發送的位元組數(比特數)。它也可以用來顯示潮水的波浪、陽光射線、電力消耗、展會的參觀人員、機場附近的噪音等級、你喜歡的度假區的溫度、電冰箱的溫度、以及任何你可以想象的東西。

你最需要一個度量資料,以及能夠提供這些資料給RRDtool的感應器就可以了。RRDtool會讓你建立資料庫、存儲資料、提取資料、建立用于在Web浏覽器中顯示的PNG格式的圖像。這些PNG圖像以來于你收集的資料,它可以是網絡平均使用率、峰值。

RRD

Round Robin Database環狀資料

常見應用:

伺服器資源:CPU、記憶體、磁盤、程序、連接配接數等

伺服器類型:WEB、Mail、FTP、資料庫、中間件

網絡接口:流量、轉發速度、丢包率

裝置運作狀态:風扇、電源、溫度

機房運作環境:電流、電壓、濕溫度

優點:開源、圖形界面、跨平台監控、可擴充性

具體過程:

[root@station39~]yum -y install httpd php php-mysql php-snmp mysql mysql-server perl-DBD-MySQL php-pdo net-snmp net-snmp-libs net-snmp-utils net-snmp-devel ruby ruby-devel

幾個常用監控工具的使用

[root@station39 cacti]# yum -y localinstall --nogpgcheck rrdtool-*.rpm

[root@station39 cacti]# cp /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.bak

[root@station39 cacti]# vim /etc/snmp/snmpd.conf

com2sec notConfigUser  127.0.0.1       //** public  line 41 update

access  notConfigGroup ""  any noauth  exact all systemview none none  //** line 62 update

view all    included  .1                               80  //** line 85

[root@station39 cacti]# service snmpd start

[root@station39 cacti]# service mysqld start

[root@station39 cacti]# service httpd start

[root@station39 cacti]# mysql

mysql> create database cacti;

mysql> grant all privileges on cacti.* to cacti@localhost identified by 'cati';

mysql> grant all privileges on cacti.* to [email protected] identified by 'cati';

mysql> grant all privileges on cacti.* to [email protected] identified by 'cati';

mysql> flush privileges;

mysql> quit

[root@station39 cacti]# mkdir /var/www/html/cacti

[root@station39 cacti]# tar zxvf cacti-0.8.7g.tar.gz -C /var/www/html/

[root@station39 cacti]# cd /var/www/html/

[root@station39 html]# mv cacti-0.8.7g  cacti

[root@station39 html]# cd cacti

[root@station39 cacti]# mysql -ucacti  -pcati cacti < cacti.sql

[root@station39 cacti]# vim include/config.php

$database_type = "mysql";

$database_default = "cacti";

$database_hostname = "localhost";

$database_username = "cacti";

$database_password = "cati";

$database_port = "3306";

[root@station39 cacti]# useradd cacti

[root@station39 cacti]# passwd cacti

[root@station39 cacti]# chown -R cacti rra/ log/

[root@station39 cacti]# crontab -e

*/5 * * * * php /var/www/html/cacti/poller.php > /dev/null 2>&1

使用浏覽器通路192.168.1.200/cacti就可以看到如下界面:

幾個常用監控工具的使用

使用者名和密碼都為admin,登陸之後要求改密碼。

幾個常用監控工具的使用
幾個常用監控工具的使用

下面開始插件的安裝:

要安裝别的插件前,先要安裝cacti的一個patch--Plugin Architecture,才能支援插件

[root@station39 cacti]# tar zxvf cacti-plugin-0.8.7g-PA-v2.8.tar.gz

[root@station39 cacti]# cp -R cacti-plugin-arch/* /var/www/html/cacti/

[root@station39 cacti]# cd /var/www/html/cacti/

[root@station39 cacti]# mysql -ucacti -pcati cacti < pa.sql

[root@station39 cacti]# patch -p1 -N < cacti-plugin-0.8.7g-PA-v2.8.diff

$url_path = "/cacti/";   //line 42

儲存退出,在浏覽器中打開192.168.1.200/cacti 進行配置:

Console----->User Management------> admin ------> Realm Permissions-----> plugin Management 啟用插件管理。

常用插件安裝:

Monitor, Settings, thold

幾個常用監控工具的使用

[root@station39 cacti]# tar zxvf settings-latest.tgz

[root@station39 cacti]# tar zxvf monitor-latest.tgz

[root@station39 cacti]# tar zxvf thold-latest.tgz

[root@station39 cacti]# mv settings-0.6/  /var/www/html/cacti/plugins/settings

[root@station39 cacti]# mv monitor-0.9/  /var/www/html/cacti/plugins/monitor

[root@station39 cacti]# mv thold-0.41/  /var/www/html/cacti/plugins/thold

OK!Console----->plugin Management 進行安裝:

幾個常用監控工具的使用

PS:在安裝thold時,可能會出現 You are missing a dependency for thold, please install the 'Settings' plugin. 這樣的警告。隻需要先安裝settings插件就OK。

啟用報警功能:

Console------> Utilitie------>Altering/Thold

幾個常用監控工具的使用

Mail/DNS

幾個常用監控工具的使用
幾個常用監控工具的使用
幾個常用監控工具的使用

MSN 實作報警:

[root@station39 cacti]# cp sendMsg.zip /var/www/html

[root@station39 cacti]# cd /var/www/html

[root@station39 html]# unzip sendMsg.zip

幾個常用監控工具的使用

使用浏覽器進行通路:

幾個常用監控工具的使用

使用腳本實作自動化報警:

修改/var/www/html/cacit/plugins/thold目錄下的thold_functions.php檔案

[root@station39 thold]# vim thold_functions.php

exec("echo $subject >>/var/www/html/cacti/plugins/thold/alert.log");

exec("sh /var/www/html/cacti/plugins/thold/sendmessage.sh");    //** line 560-561

儲存退出!

腳本

#!/bin/sh

echo `echo -n "date:"&&date +%Y-%m-%d-%H:%M` >> /var/www/html/sendMsg/msn.txt.1

cat /var/www/html/cacti/plugins/thold/alert.log >>/var/www/html/sendMsg/msn.txt.1

now=`date +%Y-%m-%d-%H:%M`

SA=(test)

msnaddr=([email protected])

sendMsg()

{

num=0

while [ $num -lt 1 ];

do

wget —post-data "[email protected]&password=123456&recipient=${1}&message=${2}" http://127.0.0.1/sendMsg/index.php -O /var/www/html/sendMsg/index.php.1 >/dev/null 2>&1

if [ -f /var/www/html/sendMsg/index.php.1 ]; then

if cat /var/www/html/sendMsg/index.php.1 |grep -i successfully >/dev/null 2>&1;then

num=1

elif cat /var/www/html/sendMsg/index.php.1 |grep -i "The user appears to be offline" >/dev/null 2>&1;then

echo "The user is offline."

exit 0

elif cat /var/www/html/sendMsg/index.php.1 |grep -i "Something went wrong trying to connect to the server" >/dev/null 2>&1;then

echo "MSN server is online."

else

fi

rm -f /var/www/html/sendMsg/index.php.1

done

}

mv /var/www/html/sendMsg/msn.txt /var/www/html/sendMsg/bak/msn$now.txt -f 1>/dev/null 2>&1

mv /var/www/html/sendMsg/msn.txt.1 /var/www/html/sendMsg/msn.txt -f 1>/dev/null 2>&1

rm /var/www/html/cacti/plugins/thold/alert.log -f 1>/dev/null 2>&1

for i in 0

if cat /var/www/html/sendMsg/msn.txt ; then

messages=`cat /var/www/html/sendMsg/msn.txt `

sendMsg "${msnaddr[$i]}" "$messages"

continue

使用飛信報警:

[root@station39 html]# cp -r /root/cacti/linuxso_20101113 sendsms/linuxso

[root@station39 html]# cp -r /root/cacti/fetion sendsms/linuxso/fetion

[root@station39 html]# chmod 777 -R sendsms/linuxso

exec("/var/www/html/cacti/plugins/thold/sendsms.sh");     //** line 562

腳本:

#send sms by fetion

#Write by [email protected]

if [ ! -e "/var/www/html/cacti/plugins/thold/alert.log" ];then

echo "Usage:alert.log does not exist"

exit

if [ -n "`cat /var/www/html/cacti/plugins/thold/alert.log`" ]; then

admin="158XXXX"

echo "sms $admin "`cat /var/www/html/cacti/plugins/thold/alert.log` >>/var/www/html/cacti/plugins/thold/sms.txt

echo "exit" >> /var/www/html/cacti/plugins/thold/sms.txt

echo "Usage:no alert"

if [ -n "`cat /var/www/html/cacti/plugins/thold/sms.txt`" ] ; then

LD_LIBRARY_PATH=/var/www/html/sendsms/linuxso /var/www/html/sendsms/linuxso/fetion --mobile=158XXXXXX --pwd=123xxx --to=$admin --file-utf8=/var/www/html/cacti/plugins/thold/sms.txt

rm -f /var/www/html/cacti/plugins/thold/sms.txt 1>/dev/null 2>&1

rm -f /var/www/html/cacti/plugins/thold/alert.log 1>/dev/null 2>&1

echo "Usgae:no message to send"

Ntop

ntop是一款網絡監控工具,類似于網絡嗅探器,可以監視網絡流量,甚至可以列出每個節點計算機的網絡帶寬使用率。

它可以通過分析網絡流量來确定網絡上存在的各種問題;也可以用來判斷是否有黑客正在攻擊網絡系統;還可以很友善地顯示出特定的網絡協定、占用大量帶寬的主機、各次通信的目标主機、資料包的發送時間、傳遞資料包的延時等詳細資訊。通過了解這些資訊,網管可以對故障做出及時的響應,對網絡進行相應的優化調 整,以保證網絡運作的效率和安全。

主要功能:

自動從網絡中識别有用的資訊;

◆ 将截獲的資料包轉換成易于識别的格式;

◆ 對網絡環境中通信失敗的情況進行分析;

◆ 探測網絡環境中的通信瓶頸;

◆ 記錄網絡通信的時間和過程;

◆ 自動識别用戶端正在使用的作業系統

所需軟體包:ntop-4.0.1.tar.gz

輔助軟體

庫檔案支援:libpcap、libcap-devel、libpng、gdbm、gd

GeoIP-1.4.7-0.1.20090931cvs.el5.i386.rpm

GeoIP-devel-1.4.7-0.1.20090931cvs.el5.i386.rpm

RRDtool: rrdtool-1.4.4.tar.gz

過程:安裝所依賴的輔助檔案:

[root@station39 ~]# yum install libpcap libpcap-devel libpng gdbm gdbm-devel glib libxml2-devel pango pango-devel gd -y

幾個常用監控工具的使用

[root@station39 ntop]# yum localinstall --nogpgcheck GeoIP-1.4.7-0.1.20090931cvs.el5.i386.rpm GeoIP-devel-1.4.7-0.1.20090931cvs.el5.i386.rpm -y

源代碼編譯安裝rrdtool:

[root@station39 ~]# cd rrdtool-1.4.4

[root@station39 rrdtool-1.4.4]# ./configure --prefix=/usr/local

[root@station39 rrdtool-1.4.4]# make && make install

安裝Ntop

[root@station39 ~]# tar xvf ntop-4.0.1.tar.gz

[root@station39 ~]# cd ntop-4.0.1

[root@station39 ntop-4.0.1]# ./autogen.sh --with-tcpwrap

[root@station39 ntop-4.0.1]# make && make install

[root@station39 ntop-4.0.1]# chown -R nobody /usr/local/var/ntop

使用TCPWrapper禁止其他主機通路:

[root@station39 ntop-4.0.1]# vim /etc/hosts.allow

ntop: 192.168.1.13

[root@station39 ntop-4.0.1]# vim /etc/hosts.deny

ntop:ALL

[root@station39 ntop-4.0.1]# ntop -d -i eth0   //**以背景守護程序方式(-d)運作ntop服務, 

                                          并監測eth0網卡所連接配接的流量

使用浏覽器通路http://192.168.1.15:3000 :

幾個常用監控工具的使用
幾個常用監控工具的使用

Ntop相關參數說明:

-d : 放入背景執行。 常用

    -L : 輸出訊息寫入系統記錄檔案。 

    -r : 設定頁面的自動更新頻率,預設每 3 秒更新一次. 。

    -w : 使用其它端口 (預設是 3000) 。

    -W : 同 -w , 不過這個是使用 SSL 聯機 。

    -u : 指定使用其它身份執行 。

    -i : 指定 ntop 監聽的網卡,"," 隔開多個網卡。

    -M : 使用 -i 指定多張網卡時, 預設是合并統計.

Ntop網頁說明:

About: 線上手冊。

o Summary : 目前網絡的整體概況

Traffic : 流量

Hosts : 所有主機使用概況

Network Load : 各時段的網絡負載

Netflows : 網絡流量圖。

o IP Summary : 各主機的流量狀況與排名明細

Traffic : 所有主機的流量明細

Multicast : 多點傳送情況。

Domain : 域名

Distribution : 通訊量狀況

Local >>Local 本地流量。

Local>>Remote : 所有主機對外的明細

Remote>>Local :

Remote>>Remote :

o All Protocols : 檢視各主機占用的頻寬與各時段網絡使用者等的明細

Traffic : 流量。

Throughput : 頻寬使用明細表 (點選主機,可以看到該主機詳細的資訊及使用狀況)

Activity : 各時段所有主機使用流量(狀況). (點選主機,可以看到該主機詳細的資訊及使用狀況)

o Local IP : 區域網路絡内各主機使用狀況.

Routers : 路由器狀況。3.2版的ntop中已經好像沒有這一項了

Ports Used : 端口使用情況。

Active TCP Sessions : 目前正在進行的聯機 。

Host Fingerprint : 主機快照情況。

Host Characterization : 主機描述。

Local Matrix : 區域網路絡内各主機間的流量明細。

o Media: 進階貨,一般人用不到的東西

Fibre Channel  光纖通道,企業級存儲時使用的東西

o Utils 日志一類的東西

oPlugins 一些插件

Nagios

幾個常用監控工具的使用

[root@station39 ~]# rpm -q httpd gcc glibc glibc-common gd gd-devel

[root@station39 ~]# groupadd nagcmd

[root@station39 ~]# useradd -m nagios

[root@station39 ~]# usermod -a -G nagcmd nagios

[root@station39 ~]# usermod -a -G nagcmd apache

幾個常用監控工具的使用

[root@station39 nagios]# tar zxvf nagios-3.2.1.tar.gz

[root@station39 nagios-3.2.1]# ./configure --with-command-group=nagcmd

[root@station39 nagios-3.2.1]# make all

[root@station39 nagios-3.2.1]# make install

[root@station39 nagios-3.2.1]# make install-init

[root@station39 nagios-3.2.1]# make install-config

[root@station39 nagios-3.2.1]# make install-commandmode

[root@station39 nagios-3.2.1]# vim /usr/local/nagios/etc/objects/contacts.cfg

email           nagios@localhost   //**line 35 x修改接收警告資訊的郵件位址

[root@station39 nagios-3.2.1]# make install-webconf   //**在httpd的配置檔案目錄(conf.d)中

建立Nagios的Web程式配置檔案

[root@station39 nagios-3.2.1]# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

//** 建立登入nagios web程式的使用者

[root@station39 nagios-3.2.1]# service httpd restart

[root@station39 nagios]# tar zxvf nagios-plugins-1.4.15.tar.gz

[root@station39 nagios]# cd nagios-plugins-1.4.15

[root@station39 nagios-plugins-1.4.15]# ./configure --with-nagios-user=nagios --with-nagios-group=nagios

[root@station39 nagios-plugins-1.4.15]# make && make install

[root@station39 nagios-plugins-1.4.15]# chkconfig --add nagios

[root@station39 nagios-plugins-1.4.15]# chkconfig nagios on

檢查配置檔案文法是否正确:

[root@station39 nagios-plugins-1.4.15]# /usr/local/nagios/bin/nagios

-v /usr/local/nagios/etc/nagios.cfg

[root@station39 nagios-plugins-1.4.15]# service nagios start

使用浏覽器通路192.168.1.15/nagios :

幾個常用監控工具的使用

安裝配置Nagios基于web的管理接口fruity(第三方工具)

#tar zxf fruity-1.0-rc2.tar.gz

# mv fruity-1.0-rc2  /var/www/html/fruity

# cd /var/www/html/fruity

mysql> create database fruity;

mysql> use fruity;

mysql> source sqldata/fruity-mysql.sql

mysql>GRANT SELECT,INSERT,DROP,EMPTY ON fruity.* TO fruity@localhost IDENTIFIED BY '123456';

# vi includes/config.inc

$sitedb_config['host'] = 'localhost';

$sitedb_config['username'] = 'fruity';

$sitedb_config['password'] = '123456';                         

$sitedb_config['database'] = 'fruity';                         

$sitedb_config['dbserv'] = 'mysql'; 

使用浏覽器通路192.168.1.15/fruity 就可以對nagios 進行管理。

NDOUtils的安裝與設定

NDOUTILS ADDON主要用來将Nagios的配置資訊和event産生的資料存入資料庫以友善實作資料的快速檢索和處理,并且為其它通過web接口程式來管理這些資料提供了保障。

幾個常用監控工具的使用

[root@station39 nagios]# tar zxvf ndoutils-1.4b9.tar.gz

[root@station39 nagios]# cd ndoutils-1.4b9

[root@station39 ndoutils-1.4b9]# ./configure --enable-mysql --with-mysql-lib=/usr/lib --with-mysql-inc=/usr/include  --disable-pgsql

[root@station39 ndoutils-1.4b9]# make

[root@station39 ndoutils-1.4b9]# cp -v src/{ndomod-3x.o,ndo2db-3x,file2sock,log2ndo}  /usr/local/nagios/bin

mysql> create database ndodb;

mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON ndodb.* TO ndouser@localhost IDENTIFIED BY '123456';

[root@station39 ndoutils-1.4b9]# cd db

[root@station39 db]# ./installdb -u ndouser -p 123456 -h localhost -d ndodb

[root@station39 ndoutils-1.4b9]# cd config

[root@station39 config]# cp ndo2db.cfg-sample ndo2db.cfg

[root@station39 config]# cp ndomod.cfg-sample ndomod.cfg

[root@station39 ndoutils-1.4b9]#  cp -v config/{ndo2db.cfg,ndomod.cfg} /usr/local/nagios/etc

[root@station39 ndoutils-1.4b9]# vim /usr/local/nagios/etc/nagios.cfg

broker_module=/usr/local/nagios /bin/ndomod-3x.o config_file=/usr/local/nagios/etc/ndomod.cfg

編輯ndo2db守護程序和ndomod的配置檔案

[root@station39 ndoutils-1.4b9]# vim /usr/local/nagios/etc/ndo2db.cfg

socket_type=tcp     //** line 33

db_servertype=mysql  //** line 78

db_host=localhost     //** line 86

db_port=3306        //** line 95

db_prefix=nagios_    //** line 111

db_user=ndouser    //** line 121

db_pass=123456     //** line 122

[root@station39 ndoutils-1.4b9]# vim /usr/local/nagios/etc/ndomod.cfg

output_type=tcpsocket   //** line 26

output=127.0.0.1        //** line 39

啟動ndo2db守護程序

[root@station39 ndoutils-1.4b9]# /usr/local/nagios/bin/ndo2db-3x

                              -c /usr/local/nagios/etc/ndo2db.cfg

停止并重新啟動:

# killall -SIGHUP nagios

# rm -f /usr/local/nagios/var/nagios.lock

# /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg