1. 監控摘要
Linux伺服器要確保高可用性,就要對其進行有效的監控,即時了解到伺服器的運作狀況,各項效能指標是否正常,以防患以未然,進行維運日誌的記錄,圖形化的監控,出現問題的訊息警報機制,都是保證Linux伺服器能正常對外提供服務的先決條件。
監控,是預防的其中一項重要的工作。這裡先說說我需要監控的內容。系統負載、cpu使用率、記憶體佔用、磁碟空間、網路流量、連接埠、進程、apache或tomcat的連線數、mysql的運作狀態這些都是需要監控的東西。要了解伺服器每時每刻的整體運作狀態,單靠幾個Linux自帶的效能監控指令是很難實現的。所以,利用shell腳本和開源監控工具進行伺服器監控成為兩個主要的選擇。
首先是要明白Linux伺服器監控的一些常見指令,以及這些指令所寫的監控腳本,最後,一些成熟的開源監控工具也是必要的。
1) 【iostat】:iostat指令用來顯示儲存子系統的詳細信息,通常用它來監控磁碟 I/O 的情況。
2)【meminfo 和free】:cat /proc/meminfo free
3)【mpstat】:即時系統監控工具,多CPUs系統裡,其不但能查看所有CPU的平均狀況信息,而且能夠查看特定CPU的信息
4)【netstat】:顯示了大量跟隨網絡相關的信息
5)【nmon】:開源工具,用以監控Linux 系統的效能,下載及安裝
6)【pmap】:pmap 指令用來報告每個行程佔用記憶體的詳細情況,可用來看是否有進程超支了,該指令需要進程id 作為參數。
7)【ps pstree】:ps 告訴你每個進程佔用的記憶體和CPU 處理時間,而pstree以樹形結構顯示進程之間的依賴關係,包括子進程資訊
8)【sar】:sar 可用來顯示CPU 使用率、記憶體頁資料、網路I/O 和傳輸統計、進程建立活動和磁碟裝置的活動詳情。
9)【strace】:診斷進程工具,如strace ls ,但是被診斷進程會變慢
10)【tcpdump】網路監控工具,用來做基本的協定分析,看看那些進程在使用網路以及如何使用網路。
11)【uptime】:該指令告訴你這台伺服器從開機啟動到現在已經運行了多久了
12)【 vmstat 】來監控虛擬記憶體
13)【Wireshark】:是一個網路協定偵測程序,讓您透過程式擷取運作的網站的相關資訊
14)【dstat】 多型資源統計工具:該指令整合了vmstat, iostat和ifstat三種指令
15)【htop】: 更友善的top,兩者差異見:「關於htop和top的比較」
16)【ss】: 用來記錄套接字統計訊息,它可以顯示類似netstat相同的訊息,同時也能顯示更多TCP和狀態資訊
17)【lsof】 : 清單顯示開啟的檔案
18 )【iftop】是另一個基於網路資訊的類似top的程式。它能夠顯示目前時刻按照頻寬使用量或上傳或下載量排序的網路連線狀況
這裡提供四個腳本(performance.sh 效能監控, process.sh 進程監控,network.sh 流量監控,tongji.sh流量分析統計),並使用crontab定時執行腳本進行監控資料的記錄,形成每天的監控日誌放在如下相應的資料夾,並且超過自己設定的告警值後發郵件通知,那些有免費短信通知功能的郵箱如騰訊企業郵箱,163郵箱可以嘗試一下,收到郵件告警後很快就能收到短信了,很方便。
## 程式碼GitHub位址: 程式碼截圖如下,有四個
#3.2.2 行程監控腳本process.sh
#程式監控腳本process.sh##3.2.3 流量監控腳本network.sh
流量監控腳本network.sh #3.2.4 流量分析統計腳本tongji.sh程式碼GitHub位址:
【Cacti】:Cacti是一套基於PHP,MySQL, SNMP及RRDTool開發的網路流量監控圖形分析工具。
### 【Nagios】: Nagios是監視系統運作狀態和網路資訊的監控系統。能監視所指定的本地或遠端主機以及服務,同時提供異常通知功能等######3.3.2)Zabbix###### 【Zabbix】: Zabbix除了能監視各種網路參數,確保伺服器系統的安全運作之外,還能提供如簡訊、郵件、jabber等通知機制讓系統管理員快速定位/解決存在的各種問題。基本上能實現cacti+nagios的功能###以上是Linux伺服器監控的實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!