中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
IT運(yùn)維之Linux服務(wù)器監(jiān)控方案
隨著Linux應(yīng)用日益廣泛,絕大部分的網(wǎng)絡(luò)服務(wù)器都使用Linux操作系統(tǒng)。為了全面掌握網(wǎng)絡(luò)服務(wù)器的運(yùn)行狀況和趨勢,需要對服務(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)計(jì)分析每天的各種數(shù)據(jù),從而能及時反映出服務(wù)器哪里存在性能瓶頸、安全隱患等。另外是要有危機(jī)意識,就是了解服務(wù)器有可能出現(xiàn)哪些嚴(yán)重的問題,出現(xiàn)這些問題后該如何去迅速處理。比如數(shù)據(jù)庫的數(shù)據(jù)丟失,日志容量過大,被黑客入侵等等。說到底,預(yù)防是關(guān)鍵。
    監(jiān)控,是預(yù)防的其中的一項(xiàng)重要工作。這里先說說我需要監(jiān)控的內(nèi)容。系統(tǒng)負(fù)載、cpu使用率、內(nèi)存占用、磁盤空間、網(wǎng)絡(luò)流量、端口、進(jìn)程、apachetomcat的連接數(shù)、mysql的運(yùn)行狀態(tài)這些都是我想要監(jiān)控的東西,但又能做到多少呢,我只能盡力而為了。要了解服務(wù)器每時每刻的整體運(yùn)行狀態(tài),單靠幾個Linux自帶的性能監(jiān)測命令是很難實(shí)現(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)控工具都十分方便和實(shí)用,比如有zabbixcacti、nagios等,而且能夠針對不同的監(jiān)控內(nèi)容,生成好看的便于觀察的曲線圖,多數(shù)的開源監(jiān)控工具都比較成熟,至于哪個好用就得用過才知道。由于這些監(jiān)控工具都有許多熱血人士寫了安裝和使用的文檔,我這里就不寫進(jìn)來了。想了解下的朋友也可以到我的博客上走走,在這里我主要是把自己寫的一些shell監(jiān)控腳本分享一下,希望大家能給點(diǎn)意見。
    我這里寫了四個腳本(performance.sh 性能監(jiān)控,process.sh 進(jìn)程監(jiān)控,network.sh 流量監(jiān)控,#sh流量分析統(tǒng)計(jì)),并使用crontab定時執(zhí)行腳本進(jìn)行監(jiān)控?cái)?shù)據(jù)的記錄,形成每天的監(jiān)控日志放在如下相應(yīng)的文件夾,并且超過自己設(shè)定的告警值后發(fā)郵件通知,如果是騰訊企業(yè)郵箱,163郵箱那些有免費(fèi)短信通知功能的可以嘗試一下,收到郵件告警后很快就能收到短信了,十分方便。


性能監(jiān)控腳本
##############################################################################
#!/bin/bash

#監(jiān)控cpu系統(tǒng)負(fù)載
IP=`ifconfig eth0 | grep "inet addr" | cut -f 2 -d ":" | cut -f 1 -d " "`
cpu_num=`grep -c 'model name' /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)) print 0;print a" | bc`  
average_int=`echo $average_load | cut -f 1 -d "."`  
load_warn=0.70  
if [ $average_int -gt 0
]

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)重告警" XXXX@qq.com
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 -n 1 | grep Cpu | awk '{print $5}' | cut -f 1 -d "."`  
if [ $cpu_idle -lt 20 ]
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告警"
XXXX@qq.com
else

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

fi


#監(jiān)控交換分區(qū)
swap_total=`free -m | grep Swap | awk '{print  $2}'`
swap_free=`free -m | grep Swap | awk '{print  $4}'`

swap_used=`free -m | grep Swap | awk '{print  $3}'`

if [ $swap_used -ne 0 ]
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 -eq 0 ]
then
    echo "$IP服務(wù)器swap交換分區(qū)只剩下 $swap_free M 未使用,剩余不足20%,使用率已經(jīng)超過80%,請及時處理。">>/usr/monitor/performance/performance_$(date +%Y%m%d).log

echo "$IP服務(wù)器swap交換分區(qū)只剩下 $swap_free M 未使用,剩余不足20%, 使用率已經(jīng)超過80%, 請及時處理。" | mail -s "$IP服務(wù)器內(nèi)存告警"
XXXX@qq.com
else
    echo "$IP服務(wù)器swap交換分區(qū)剩下 $swap_free M未使用,使用率正常">>/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 $5}' | cut -f 1 -d "%"`
if [ $disk_sda1 -gt 80 ]
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ù)器硬盤告警" XXXX@qq.com

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

#監(jiān)控登錄用戶數(shù)
users=`uptime |awk '{print $6}'`
if [ $users -gt 2 ]
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ù)告警"
XXXX@qq.com
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=`ifconfig eth0 | grep "inet addr" | cut -f 2 -d ":" | cut -f 1 -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"

for dir in $tomcat_dir $mysql_dir $vsftp_dir  $ssh_dir
do
process_count=$(ps -ef | grep "$dir" | grep -v grep | wc -l)

        for service in tomcat mysql vsftp ssh
        do
                echo "$dir" |grep -q "$service"
                if [ $? -eq 0 ]
                then
                        if [ $process_count -eq 0 ]
                        then
                            echo "$service is down at $(date +%Y%m%d%H:%M:%S)" >>/usr/monitor/process/process_$(date +%Y%m%d).log
                            echo "$service is down at $(date +%Y%m%d%H:%M:%S)" | mail -s "$IP服務(wù)器 $service服務(wù)關(guān)閉告警" XXXX@qq.com
                        else
                            echo "$service is running at $(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`
sleep 1
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: $TKBPS kb/s 下載速率 eth0: $RKBPS kb/s at $(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;
while read line
do
        a=`echo $line | grep "eth0" |awk '{print $3}'`
if [ $a -ge 0 ]
then
        TX=$a
        if [ $TX -ge $MAX_TX ]
        then
                MAX_TX=$TX
        fi
fi
        b=`echo $line | grep "eth0" |awk '{print $7}'`
if [ $b -ge 0 ]
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_TX kb/s at $(date +%Y%m%d)">>/usr/monitor/network/#log

                                      echo "最高下載速度為 $MAX_RX kb/s at $(date +%Y%m%d)">>/usr/monitor/network/#log
###############################################################################
流量分析日志 /usr/monitor/network/#log


    利用腳本進(jìn)行系統(tǒng)監(jiān)控是一個不錯的選擇,簡單實(shí)用。之后我還想到用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)大。想要實(shí)現(xiàn)異常通知功能的話,可以整合Nagios來一起使用。Nagios是一個監(jiān)視系統(tǒng)運(yùn)行狀態(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這個組合很好用,但配置過程比較復(fù)雜,大家可以嘗試去搭建一個這樣的實(shí)用而方便的分布式監(jiān)控系統(tǒng)。
    另外一個要介紹的監(jiān)控工具叫Zabbix,除了能監(jiān)視各種網(wǎng)絡(luò)參數(shù),保證服務(wù)器系統(tǒng)的安全運(yùn)營之外,還能提供如短信、郵件、jabber等通知機(jī)制以讓系統(tǒng)管理員快速定位/解決存在的各種問題。基本上能實(shí)現(xiàn)cacti+nagios的功能。安裝配置過程也比較簡單,我的博客上有在ubuntu環(huán)境和centos環(huán)境下搭建zabbix監(jiān)控系統(tǒng)的文章,大家有空可以參考一下。



zabbix的性能監(jiān)控分析圖


    其實(shí)除了以上提到的shell腳本和監(jiān)控方案,要使服務(wù)器監(jiān)控的效果更好,還有一項(xiàng)工作是必須做的,就是監(jiān)控?cái)?shù)據(jù)及運(yùn)維操作的記錄,我這里把它叫做運(yùn)維日志吧。每天有寫運(yùn)維日志的習(xí)慣是很重要的,這可以有利于我們分析服務(wù)器的趨勢,比如增加哪些服務(wù)后,服務(wù)器的cpu占用會有上升的趨勢;哪個時段是流量的高峰期;哪個時段服務(wù)器比較空閑,可以進(jìn)行數(shù)據(jù)庫備份的操作等等。更有好處的是,把我們?nèi)粘5牟僮餍袨橥ㄟ^日志形式記錄下來,萬一除了什么問題,可以通過查詢操作日志,了解是否人為操作而引起的。最后一點(diǎn),有幾個重要的性能監(jiān)測工具可別忘記了,top、vmstat、w、uptime、ps、free、iostat、netstat、/proc等,這些是Linux系統(tǒng)內(nèi)置或附件的工具,記住每個命令的詳細(xì)用法,有時候可以直接找出造成性能問題的原因。
    關(guān)于服務(wù)器監(jiān)控這個話題,很多專家給出了不同的意見,但無可否認(rèn)的,監(jiān)控工作必須做,至于監(jiān)控什么是重點(diǎn),用怎樣的監(jiān)控方式去實(shí)現(xiàn),通過監(jiān)控能達(dá)到多大的效果,這個就視乎服務(wù)器應(yīng)用需求及個人需求了,本文只是提出一些個人的見解,供大家參考。最后簡單總結(jié)一下本文的主要內(nèi)容:監(jiān)控的重要性;shell監(jiān)控腳本;開源監(jiān)控方案;記住寫運(yùn)維日志和常用Linux監(jiān)控工具。希望大家都能夠找出適合自己的、適合企業(yè)的服務(wù)器監(jiān)控方案。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Linux系統(tǒng)的負(fù)載與CPU、內(nèi)存、硬盤、用戶數(shù)監(jiān)控的shell腳本
如何拿下面試Get高薪Offer(二)
冰點(diǎn)論壇-Linux系統(tǒng)類-【轉(zhuǎn)帖】Linux輔導(dǎo):一步一步安裝服務(wù)器監(jiān)視軟件MRTG
獲取linux內(nèi)存、cpu、磁盤IO等信息腳本及其原理詳解
Solaris SysAdmin Commands
centos 7 安裝 redis 3.2,并實(shí)現(xiàn)開機(jī)自啟動
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服