IT運維之Linux服務(wù)器監(jiān)控方案_第1頁
IT運維之Linux服務(wù)器監(jiān)控方案_第2頁
IT運維之Linux服務(wù)器監(jiān)控方案_第3頁
IT運維之Linux服務(wù)器監(jiān)控方案_第4頁
IT運維之Linux服務(wù)器監(jiān)控方案_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

IT運維之Linux服務(wù)器監(jiān)控方案隨著Linux應(yīng)用日益廣泛,絕大部分的網(wǎng)絡(luò)服務(wù)器都使用Linux操作系統(tǒng)。為了全面掌握網(wǎng)絡(luò)服務(wù)器的運行狀況和趨勢,需要對服務(wù)器進(jìn)行全面的監(jiān)控。

利用Linux發(fā)行版搭建一個網(wǎng)絡(luò)服務(wù)器可能對于許多人都是一件很容易的事情,但網(wǎng)絡(luò)服務(wù)器正式上線后,服務(wù)器數(shù)據(jù)流動、連接數(shù)、網(wǎng)絡(luò)流量、系統(tǒng)負(fù)荷等各方面都會增加,安全問題也隨之而來,再考慮到日志、數(shù)據(jù)庫的重要性,我想無論是哪一位系統(tǒng)管理員,都應(yīng)該迫不及待地想把服務(wù)器上線的前期工作做好吧。

那我們究竟需要做好哪些工作準(zhǔn)備呢?之前有看過一篇文章說到系統(tǒng)管理員應(yīng)該定期完成的九件事情,我分析過后,認(rèn)為有幾件事情是必須得做的。首先是備份,做好定時備份策略,備份所有你認(rèn)為重要的數(shù)據(jù),并且定期檢查你的備份是否有效、全面;日志輪換,無論你想用哪種輪換方式,控制日志增長避免驅(qū)動器已滿是你的目的;做一定的安全措施,如防火墻iptables的訪問控制,用denyhosts防止黑客遠(yuǎn)程暴力破解,mysql遠(yuǎn)程登錄權(quán)限等等;最后就是服務(wù)器監(jiān)控,也是我主要想講述的內(nèi)容。

對于服務(wù)器的硬件資源、性能、帶寬、端口、進(jìn)程、服務(wù)等都必須有一個可靠和持續(xù)的監(jiān)測,統(tǒng)計分析每天的各種數(shù)據(jù),從而能及時反映出服務(wù)器哪里存在性能瓶頸、安全隱患等。另外是要有危機(jī)意識,就是了解服務(wù)器有可能出現(xiàn)哪些嚴(yán)重的問題,出現(xiàn)這些問題后該如何去迅速處理。比如數(shù)據(jù)庫的數(shù)據(jù)丟失,日志容量過大,被黑客入侵等等。說到底,預(yù)防是關(guān)鍵。

監(jiān)控,是預(yù)防的其中的一項重要工作。這里先說說我需要監(jiān)控的內(nèi)容。系統(tǒng)負(fù)載、cpu使用率、內(nèi)存占用、磁盤空間、網(wǎng)絡(luò)流量、端口、進(jìn)程、apache或tomcat的連接數(shù)、mysql的運行狀態(tài)這些都是我想要監(jiān)控的東西,但又能做到多少呢,我只能盡力而為了。要了解服務(wù)器每時每刻的整體運行狀態(tài),單靠幾個Linux自帶的性能監(jiān)測命令是很難實現(xiàn)的。所以,利用shell腳本和開源監(jiān)控工具進(jìn)行服務(wù)器監(jiān)控成為了我的兩個主要的選擇。

利用shell腳本監(jiān)控能夠很好把握的監(jiān)控的內(nèi)容,時間,警告峰值,以及方便地進(jìn)行告警通知,自定義監(jiān)控日志內(nèi)容等等;而許多開源的監(jiān)控工具都十分方便和實用,比如有zabbix、cacti、nagios等,而且能夠針對不同的監(jiān)控內(nèi)容,生成好看的便于觀察的曲線圖,多數(shù)的開源監(jiān)控工具都比較成熟,至于哪個好用就得用過才知道。由于這些監(jiān)控工具都有許多熱血人士寫了安裝和使用的文檔,我這里就不寫進(jìn)來了。想了解下的朋友也可以到我的博客上走走,在這里我主要是把自己寫的一些shell監(jiān)控腳本分享一下,希望大家能給點意見。

我這里寫了四個腳本(performance.sh性能監(jiān)控,process.sh進(jìn)程監(jiān)控,network.sh流量監(jiān)控,#sh流量分析統(tǒng)計),并使用crontab定時執(zhí)行腳本進(jìn)行監(jiān)控數(shù)據(jù)的記錄,形成每天的監(jiān)控日志放在如下相應(yīng)的文件夾,并且超過自己設(shè)定的告警值后發(fā)郵件通知,如果是騰訊企業(yè)郵箱,163郵箱那些有免費短信通知功能的可以嘗試一下,收到郵件告警后很快就能收到短信了,十分方便。

性能監(jiān)控腳本

##############################################################################

#!/bin/bash

#監(jiān)控cpu系統(tǒng)負(fù)載

IP=`ifconfigeth0|grep"inetaddr"|cut-f2-d":"|cut-f1-d""`

cpu_num=`grep-c'modelname'/proc/cpuinfo`

count_uptime=`uptime|wc-w`

load_15=`uptime|awk'{print$'$count_uptime'}'`

average_load=`echo"scale=2;a=$load_15/$cpu_num;if(length(a)==scale(a))print0;printa"|bc`

average_int=`echo$average_load|cut-f1-d"."`

load_warn=0.70

if[$average_int-gt0

]

then

echo"$IP服務(wù)器單個核心15分鐘的平均負(fù)載為$average_load,超過警戒值1.0,請立即處理?。?!$(date+%Y%m%d/%H:%M:%S)">>/usr/monitor/performance/performance_$(date+%Y%m%d).log

echo"$IP服務(wù)器單個核心15分鐘的平均負(fù)載為$average_load,超過警戒值1.0,請立即處理!?。?(date+%Y%m%d/%H:%M:%S)"|mail-s"$IP服務(wù)器系統(tǒng)負(fù)載嚴(yán)重告警"[email=denghj@]XXXX@[/email]

else

echo"$IP服務(wù)器單個核心15分鐘的平均負(fù)載值為$average_load,負(fù)載正常$(date+%Y%m%d/%H:%M:%S)">>/usr/monitor/performance/performance_$(date+%Y%m%d).log

fi

#監(jiān)控cpu使用率

cpu_idle=`top-b-n1|grepCpu|awk'{print?}'|cut-f1-d"."`

if[$cpu_idle-lt20]

then

echo"$IP服務(wù)器cpu剩余$cpu_idle%,使用率已經(jīng)超過80%,請及時處理。">>/usr/monitor/performance/performance_$(date+%Y%m%d).log

echo"$IP服務(wù)器cpu剩余$cpu_idle%,使用率已經(jīng)超過80%,請及時處理?。。?|mail-s"$IP服務(wù)器cpu告警"[email=denghj@]XXXX@[/email]

else

echo

"$IP服務(wù)器cpu剩余$cpu_idle%,使用率正常">>/usr/monitor/performance/performance_$(date+%Y%m%d).log

fi

#監(jiān)控交換分區(qū)

swap_total=`free-m|grepSwap|awk'{printū}'`

swap_free=`free-m|grepSwap|awk'{print?}'`

swap_used=`free-m|grepSwap|awk'{printū}'`

if[$swap_used-ne0]

then

swap_per=0`echo"scale=2;$swap_free/$swap_total"|bc`

swap_warn=0.20

swap_now=`expr$swap_per\>$swap_warn`

if[$swap_now-eq0]

then

echo"$IP服務(wù)器swap交換分區(qū)只剩下$swap_freeM未使用,剩余不足20%,使用率已經(jīng)超過80%,請及時處理。">>/usr/monitor/performance/performance_$(date+%Y%m%d).log

echo"$IP服務(wù)器swap交換分區(qū)只剩下$swap_freeM未使用,剩余不足20%,使用率已經(jīng)超過80%,請及時處理。"|mail-s"$IP服務(wù)器內(nèi)存告警"[email=denghj@]XXXX@[/email]

else

echo"$IP服務(wù)器swap交換分區(qū)剩下$swap_freeM未使用,使用率正常">>/usr/monitor/performance/performance_$(date+%Y%m%d).log

fi

else

echo"$IP服務(wù)器交換分區(qū)未使用">>/usr/monitor/performance/performance_$(date+%Y%m%d).log

fi

#監(jiān)控磁盤空間

disk_sda1=`df-h|grep/dev/sda1|awk'{print?}'|cut-f1-d"%"`

if[$disk_sda1-gt80]

then

echo"$IP服務(wù)器/根分區(qū)使用率已經(jīng)超過80%,請及時處理。">>/usr/monitor/performance/performance_$(date+%Y%m%d).log

echo"$IP服務(wù)器/根分區(qū)使用率已經(jīng)超過80%,請及時處理。"|mail-s"$IP服務(wù)器硬盤告警"[email=denghj@]XXXX@[/email]

else

echo"$IP服務(wù)器/根分區(qū)使用率為$disk_sda1%,使用率正常">>/usr/monitor/performance/performance_$(date+%Y%m%d).log

fi

#監(jiān)控登錄用戶數(shù)

users=`uptime|awk'{print?}'`

if[$users-gt2]

then

echo"$IP服務(wù)器用戶數(shù)已經(jīng)達(dá)到$users個,請及時處理。">>/usr/monitor/performance/performance_$(date+%Y%m%d).log

echo"$IP服務(wù)器用戶數(shù)已經(jīng)達(dá)到$users個,請及時處理。"|mail-s"$IP服務(wù)器用戶登錄數(shù)告警"[email=denghj@]XXXX@[/email]

else

echo"$IP服務(wù)器當(dāng)前登錄用戶為$users個,情況正常">>/usr/monitor/performance/performance_$(date+%Y%m%d).log

fi

###############################################################################

性能監(jiān)控日志/usr/monitor/performance/performance_%Y%m%d.log

進(jìn)程監(jiān)控腳本

###############################################################################

#!/bin/bash

IP=`ifconfigeth0|grep"inetaddr"|cut-f2-d":"|cut-f1-d""`

tomcat_dir="/opt/apache-tomcat-7.0.8"

mysql_dir="/usr/local/mysql/bin/mysqld_safe"

vsftp_dir="/usr/sbin/vsftpd"

ssh_dir="/usr/sbin/sshd"

fordirin$tomcat_dir$mysql_dir$vsftp_dir$ssh_dir

do

process_count=$(ps-ef|grep"$dir"|grep-vgrep|wc-l)

forserviceintomcatmysqlvsftpssh

do

echo"$dir"|grep-q"$service"

if[$?-eq0]

then

if[$process_count-eq0]

then

echo"$serviceisdownat$(date+%Y%m%d%H:%M:%S)">>/usr/monitor/process/process_$(date+%Y%m%d).log

echo"$serviceisdownat$(date+%Y%m%d%H:%M:%S)"|mail-s"$IP服務(wù)器$service服務(wù)關(guān)閉告警"[email=denghj@]XXXX@[/email]

else

echo"$serviceisrunningat$(date+%Y%m%d%H:%M:%S)">>/usr/monitor/process/process_$(date+%Y%m%d).log

fi

else

continue

fi

done

done

###############################################################################

進(jìn)程監(jiān)控日志/usr/monitor//process/process_%Y%m%d.log

流量監(jiān)控腳本

###############################################################################

#!/bin/bash

#

R1=`cat/sys/class/net/eth0/statistics/rx_bytes`

T1=`cat/sys/class/net/eth0/statistics/tx_bytes`

sleep1

R2=`cat/sys/class/net/eth0/statistics/rx_bytes`

T2=`cat/sys/class/net/eth0/statistics/tx_bytes`

TBPS=`expr$T2-$T1`

RBPS=`expr$R2-$R1`

TKBPS=`expr$TBPS/1024`

RKBPS=`expr$RBPS/1024`

echo"上傳速率eth0:$TKBPSkb/s下載速率eth0:$RKBPSkb/sat$(date+%Y%m%d%H:%M:%S)">>/usr/monitor/network/network_$(date+%Y%m%d).log

###############################################################################

流量監(jiān)控日志/usr/monitor/network/network_$(date+%Y%m%d).log

流量分析腳本

###############################################################################

#!/bin/bash

#

TX=0;

RX=0;

MAX_TX=0;

MAX_RX=0;

whilereadline

do

a=`echo$line|grep"eth0"|awk'{printū}'`

if[$a-ge0]

then

TX=$a

if[$TX-ge$MAX_TX]

then

MAX_TX=$TX

fi

fi

b=`echo$line|grep"eth0"|awk'{print?}'`

if[$b-ge0]

then

RX=$b

if[$RX-ge$MAX_RX]

then

MAX_RX=$RX

fi

fi

done</usr/monitor/network/network_$(date+%Y%m%d).log

echo"最高上傳速度為$MAX_TXkb/sat$(date+%Y%m%d)">>/usr/monitor/network/#log

echo"最高下載速度為$MAX_RXkb/sat$(date+%Y%m%d)">>/usr/monitor/network/#log

###############################################################################

流量分析日志/usr/monitor/network/#log

利用腳本進(jìn)行系統(tǒng)監(jiān)控是一個不錯的選擇,簡單實用。之后我還想到用shell腳本進(jìn)行對myqsl的監(jiān)控,對日志增長的監(jiān)控,對apache連接數(shù)監(jiān)控等等,這個有待后面的研究了。

利用shell腳本進(jìn)行監(jiān)控當(dāng)然是方便,可靠,但單靠一堆數(shù)據(jù)日志,很難發(fā)現(xiàn)什么趨勢變化,再加上當(dāng)你維護(hù)的服務(wù)器量較多的時候,更是手忙腳亂的。這里我推薦一些開源的監(jiān)控工具來幫助大家更好地去做好系統(tǒng)監(jiān)控。

Cacti,是一套基于PHP,MySQL,SNMP及RRDTool開發(fā)的網(wǎng)絡(luò)流量監(jiān)測圖形分析工具。它通過snmpget來獲取數(shù)據(jù),使用RRDtool繪畫圖形。在眾多監(jiān)測圖形分析工具中,RRDTool所畫的圖是最好看的,而且Cacti還能定制模板,按需增加插件,功能十分強(qiáng)大。想要實現(xiàn)異常通知功能的話,可以整合Nagios來一起使用。Nagios是一個監(jiān)視系統(tǒng)運行狀態(tài)和網(wǎng)絡(luò)信息的監(jiān)視系統(tǒng)。能監(jiān)視所指定的本地或遠(yuǎn)程主機(jī)以及服務(wù),同時提供異常通知功能等。同時提供一個WEB界面以方便系統(tǒng)管理人員查看網(wǎng)絡(luò)狀態(tài),各種系統(tǒng)問題,以及日志等等。Cacti+Nagios這個組合

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論