Linux雲主機 監控方案淺析

一、爲什麼須要監控

監控是運維工程師的眼睛,它可幫助運維工程師第一時間發現系統的問題。html

對於服務器的整個生命週期,都要和監控打交道:ios

  • 當有服務器上架,都須要加入好比CPU負載、內存、網絡、磁盤等基礎監控項;shell

  • 當服務器上開始跑應用時,須要加入對應的應用監控,好比Tomcat/Resin,MySQL等;緩存

  • 當服務器進行維護時,須要暫停監控項的告警提示,不然當咱們在維護MySQL,監控系統還會給咱們報警說MySQL掛了。安全

以上操做,光靠手動去作將很是繁瑣,監控系統需與其餘運維繫統共同協做來完成。舉個例子,好比CMDB中一臺服務器上架了,那麼監控系統需自動爲其加入基礎監控項。bash

若是沒有監控,咱們就沒法知道系統與應用的運行情況,當問題發生時,監控系統需第一時間發出告警信息;告警信息中除了出問題的節點,還應該有些數據和簡單的分析。好比問題先後一段時間的CPU負載、網絡情況等,以幫助接到報警的人員快速定位問題。服務器

在出現故障之後進行問題分析時,還要靠監控系統。由於監控系統真實的記錄了故障發生現場這臺服務器的情況。咱們能夠經過不一樣緯度的分析,找出問題的緣由。微信

二、三種 Linux雲主機 監控方案

2.一、Linux 自帶命令實現監控

在Linux環境下,能夠經過Python或Shell命令來獲取系統的狀態信息,網絡

經常使用的監控命令的如:運維

一、監控系統負載

[root@CloudBility ~]# uptime
 13:42:08 up 3 days, 4 min,  1 user,  load average: 0.05, 0.04, 0.05
複製代碼

二、監控內存使用狀況

[root@CloudBility ~]# free
              total        used        free      shared  buff/cache   available
Mem:        1016396      340256       95112       75516      581028      413272
Swap:             0           0           0
複製代碼

三、監控CPU使用狀況

[root@CloudBility ~]# mpstat
Linux 3.10.0-514.26.2.el7.x86_64 (keegv) 	2019年03月01日 	_x86_64_	(1 CPU)

13時44分39秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
13時44分39秒  all    1.79    0.00    0.39    0.59    0.00    0.00    0.00    0.00    0.00   97.22
複製代碼

四、監控系統進程

[root@keegv ~]# ps -el | more
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0     1     0  0  80   0 - 31293 ep_pol ?        00:00:04 systemd
1 S     0     2     0  0  80   0 -     0 kthrea ?        00:00:00 kthreadd
1 S     0     3     2  0  80   0 -     0 smpboo ?        00:00:03 ksoftirqd/0
複製代碼

五、監控I/O性能:

[root@CloudBility ~]# iostat 
Linux 3.10.0-514.26.2.el7.x86_64 (keegv) 	2019年03月01日 	_x86_64_	(1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.79    0.00    0.39    0.59    0.00   97.22

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               3.74        15.27        25.55    3955533    6616344
vdb               0.00         0.00         0.00        920          0
複製代碼

六、監控網絡性能:

[root@CloudBility ~]# netstat -i -c
Kernel Interface table
Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0      1500   930639      0      0 0       1012487      0      0      0 BMRU
lo       65536  1246803      0      0 0       1246803      0      0      0 LRU
eth0      1500   930652      0      0 0       1012502      0      0      0 BMRU
lo       65536  1246803      0      0 0       1246803      0      0      0 LRU
複製代碼

在此推薦使用Linux top 命令來對Linux系統進行監控。

Linux top命令詳解

top 命令是Liunx性能監控程序,它能夠在不少 類Unix 下使用,而且它也是 Linux 系統管理員最經常使用的監控系統性能的工具。

簡單來講,top 命令可以實時顯示系統中各個進程的資源佔用情況,相似於Windows的任務管理器,能夠按期顯示全部正在運行和實際運行進程而且更新到列表中。

top命令顯示出 CPU 的使用、內存的使用、交換內存、緩存大小、緩衝區大小、過程控制、用戶等信息。

它將顯示系統中CPU最「敏感」的任務列表。該命令能夠按CPU使用、內存使用和執行時間對任務進行排序;並且該命令的不少特性均可以經過交互式命令或者在我的定製文件中進行設定。

命令行輸入:

[root@CloudBility ~]# top
複製代碼

第一行 時間相關

top - 13:21:57 ,系統當前時間 
 
up 2 days, 23:45,  系統開機到如今通過了多少時間 

1 user, 當前1用戶在線 

load average: 0.02, 0.03, 0.05,系統1分鐘、5分鐘、15分鐘的CPU負載信息
複製代碼

第二行 Tasks: 任務

74 total, 很好理解,就是當前有74個任務,也就是74個進程。 

1 running, 1個進程正在運行 

73 sleeping, 73個進程睡眠

0 stopped,中止的進程數 

0 zombie,僵死的進程數
複製代碼

第三行 Cpu(s):表示這一行顯示CPU整體信息

1.7%us:用戶態進程佔用CPU時間百分比,不包含renice值爲負的任務佔用的CPU的時間

0.3%sy:內核佔用CPU時間百分比 

0.0%ni:改變過優先級的進程佔用CPU的百分比 

98.0%id:空閒CPU時間百分比 

0.0%wa:等待I/O的CPU時間百分比 

0.0%hi:CPU硬中斷時間百分比 

0.0%si:CPU軟中斷時間百分比 

注:這裏顯示數據是全部cpu的平均值,若是想看每個cpu的處理狀況,按1便可;摺疊,再次按1;
複製代碼

第四行 Men:內存的意思

1016396K total,  物理內存總量 

342660K used,  使用的物理內存量 

112116K free,   空閒的物理內存量 

561788K buffers  用做內核緩存的物理內存量

複製代碼

第五行 Swap:交換空間

0 total:交換區總量 

0 used:使用的交換區量 

0 free:空閒的交換區量 

411372k avail Mem:可用內存空間
複製代碼

進程信息

PID:進程的ID 

USER:進程全部者 

PR:進程的優先級別,越小越優先被執行 

NInice:值 

VIRT:進程佔用的虛擬內存 

RES:進程佔用的物理內存 

SHR:進程使用的共享內存 

S:進程的狀態。S表示休眠,R表示正在運行,Z表示僵死狀態,N表示該進程優先值爲負數 

%CPU:進程佔用CPU的使用率 

%MEM:進程使用的物理內存和總內存的百分比 

TIME+:該進程啓動後佔用的總的CPU時間,即佔用CPU使用時間的累加值。 

COMMAND:進程啓動命令名稱
複製代碼

注:強調一下,使用頻率最高的是P、T、M,由於一般使用top,咱們就想看看是哪些進程最耗cpu資源、佔用的內存最多;

P:CPU佔用百分比排序,%CPU;

T:累計佔據CPU時間排序,TIME+;

M:佔據內存百分比排序,%MEM;
複製代碼

停停停,咱們不可能每次都登陸上去看服務器的監控信息吧。

2.二、雲廠商的監控

雲廠商提供的監控服務可用於收集獲取雲資源的監控指標或自定義的監控指標,探測服務可用性,以及針對指標設置警報。

能讓咱們快速全面的瞭解雲資源使用狀況、業務的運行情況和健康度,並及時收到異常報警作出反應,保證應用程序順暢運行。

可是雲廠商提供的監控存在諸如監控項過少、監控數據丟失、監控頻率太低等問題。

三、行雲管家 一站式雲計算管理平臺

在行雲管家中,咱們爲用戶提供了兩種模式的監控服務:雲廠商監控和行雲管家Agent監控(須要在主機上安裝行雲管家Agent);

對於公有云主機而言,行雲管家經過API集成了各大雲廠商監控服務,用戶可直接在行雲管家中查看雲廠商的監控數據。同時,若是雲主機上已經安裝了行雲管家Agent,也可採用行雲管家Agent監控;

而對於局域網主機,咱們能夠經過安裝行雲管家Agent來得到監控服務。

3.一、行雲管家 與 雲廠商 監控模式對比

行雲管家Agent監控模式,由安裝在主機上的行雲管家Agent插件直接向服務器彙報監控數據,有着穩定性高、頻率高的優勢,下面表格展現了兩種監控模式的差別:

3.二、免安裝,免運維

無需安裝任何Agent,行雲管家已經支持了阿里雲、騰訊雲、華爲雲、京東雲、Ucloud、百度雲、AWS、青雲、、Azure等主流雲廠商,可以讓用戶在一個主控臺中完成對多雲廠商的統一管理與監控,行雲管家是運維人員最趁手的跨雲管理工具。

行雲管家支持Windows、Linux/Unix等主流操做系統,可無縫接入公有云廠商的雲監控API接口,支持CPU、內存、進程、網絡流量等十餘項監控指標,並提供基於微信的實時監控告警通知。

3.三、專業服務器性能監控

豐富的監控指標:支持CPU、內存、進程、磁盤IO、網絡流量、TCP鏈接數、平均負載等十餘項監控指標;

監控項數據保留時間長:每一個監控項均提供30天的監控詳情,監控詳情細緻入微;

監控數據頻度高:監控數據粒度最低可至1分鐘,報警更及時。

3.四、微信實時接收告警消息

基於微信的告警:只需綁定微信,便可接收告警消息;

查看告警方便快捷:可直接在手機中查看雲資源的異常狀態,第一時間解決問題;

告警推送不限量:告警推送不限次數,徹底免費。

3.五、不只僅是多雲主機監控平臺

行雲管家爲企業提供一站式的雲計算管理平臺,實現了對多家雲廠商多種雲計算資源的集中管理,從成本、監控、備份、安全等多個維度提供統一運維管控,對企業而言,只需一個控制檯,便可整合操做多個公有云、多個私有云 、混合雲以及各類異構資源,從而進行靈活的資源管理與運維。

目前,行雲管家雲計算管理平臺已在官網上線了Demo環境,咱們已經導入了多家雲服務商的資源,阿里雲、騰訊雲、華爲雲、AWS、Azure和私有云都包括,你們可直觀的進行體驗。

行雲管家Demo環境

除此以外咱們還提供了詳細的產品文檔,以及多雲管理介紹的博客和用例。

目前,行雲管家已經連續三年保持雲管理領域市場領先地位,咱們正幫助 20000+企業級用戶,管理着 100000 餘臺雲主機。做爲數字化解決方案領導者,行雲管家將以持續創新的多雲管理技術與方案,與企業攜手努力,致力消除複雜性,簡化百行百業的數字化轉型之旅。

你們有不明白的地方,能夠隨時諮詢我,我免費給你們解答。

(完)

相關文章
相關標籤/搜索