版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 清潔能源施工合同
- 酒店用品招投標(biāo)合同模板
- 犬種改良協(xié)議樣本
- 釀酒行業(yè)顧問服務(wù)協(xié)議
- 短期導(dǎo)購員聘用協(xié)議樣本
- 健身器材租賃合同模板
- 傳媒行業(yè)業(yè)務(wù)代表勞動合同
- 市場調(diào)研助理招聘協(xié)議
- 礦山開采基礎(chǔ)施工合同
- 跨國公司區(qū)域總監(jiān)招聘協(xié)議
- 高水平現(xiàn)代農(nóng)業(yè)技術(shù)專業(yè)群建設(shè)方案
- 導(dǎo)管相關(guān)性血流感染
- 學(xué)前心理學(xué) 期末考試題庫
- Ubuntu Linux操作系統(tǒng)試卷和答案
- 螺栓球網(wǎng)架原地安裝整體吊裝施工工法高巖
- YY/T 0872-2013輸尿管支架試驗方法
- GB/T 22594-2018水處理劑密度測定方法通則
- GB 19517-2004國家電氣設(shè)備安全技術(shù)規(guī)范
- 【表格】面試評分等級標(biāo)準(zhǔn)表
- 山西省太原市市藥品零售藥店企業(yè)藥房名單目錄
- 全面設(shè)備保養(yǎng)TPM培訓(xùn)教材課件
評論
0/150
提交評論