(轉!)Netdata---Linux系統性能實時監控平臺部署

我一直覺得人是慢慢變老的,其實不是,人實際上是一瞬間變老的。javascript

                    -------村上春樹《舞!舞!舞!》html

轉自http://www.javashuo.com/article/p-yhoqvmcn-eu.html前端

一般來講,做爲一個Linux的SA,頗有必要掌握一個專門的系統監控工具,以便能隨時瞭解系統資源的佔用狀況。下面就介紹下一款Linux性能實時監測工具-Netdata,它是Linux系統實時性能監測工具,以web的可視化方式展現系統及應用程序的實時運行狀態(包括cpu、內存、硬盤輸入/輸出、網絡等linux性能的數據)。Netdata的web前端響應很快,並且不須要Flash插件。 UI很整潔,保持着 Netdata 應有的特性。第一眼看上去,你可以看到不少圖表,幸運的是絕大多數經常使用的圖表數據(像 CPU,RAM,網絡和硬盤)都在頂部。若是你想深刻了解圖形化數據,你只須要下滑滾動條,或者點擊在右邊菜單的項目。經過每一個圖表的右下方的按鈕,Netdata還能控制圖表的顯示,重置,縮放。Netdata文檔地址:https://github.com/firehol/netdata/wikijava

Netdata用可視化的手段,將被監測者最細微的細節,展示了出來。這樣即可以清晰地瞭解linux系統和應用程序此時的情況。Netdata主要功能:node

1
2
3
4
5
6
7
8
9
10
11
12
優美的界面:bootstrap框架下的控制界面, 酷炫(主要是dark主題,light主題就沒這感受了)
自定義的控制界面:你可使用簡單的HTML代碼去自定義控制界面(不須要使用javascript)
極其的快速而高效:程序使用C進行編寫(默認安裝下,預計只有2%的單核CPU使用率和少量的內存使用率)
零配置:你只須要去安裝它,接着它就會自動地監測一切數據
零依賴:它的靜態網絡文件和網絡接口擁有本身的網絡服務器. netdata有本身的web server, 提供靜態web文件和web API
可擴展:用它自身的插件API(可使用許多方式來製做它的插件,從 bash 到node.js),你能夠檢測任何能夠衡量的數據。
可嵌入:它能夠在任何Linux內核能夠運行的地方運行
零維護:只管跑上!
匪夷所思的快。。。全部請求每一個metreic都在0.5ms內響應,即使是一臺爛機器
很是高效,每秒採集數千個指標,但僅佔cpu單核1%,少許MB的內存以及徹底沒有磁盤IO
提供複雜的、各類類型的告警,支持動態閾值、告警模板、多種通知方式等
支撐多種時間序列後端服務,好比graphite, opentsdb, prometheus, json document DBs

監測內容:下面是Netdata目前檢測的內容(大多數都不須要進行配置,安裝後便可開始監測)mysql

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
1.CPU的使用率,中斷,軟中斷和頻率(總量和每一個單核)
2.RAM,互換和內核內存的使用率(包括KSM和內核內存deduper)
3.硬盤輸入/輸出(每一個硬盤的帶寬,操做,整理,利用等)
4.IPv4網絡(數據包,錯誤,分片):
TCP:鏈接,數據包,錯誤,握手
UDP:數據包,錯誤
廣播:帶寬,數據包
組播:帶寬,數據包
5.Netfilter /iptables  Linux防火牆(鏈接,鏈接跟蹤事件,錯誤等)
6.進程(運行,受阻,分叉,活動等)
7.NFS文件服務器,v2,v3,v4(輸入/輸出,緩存,預讀,RPC調用)
8.網絡服務質量(惟一一個可實時可視化網絡情況的工具)
9.應用程序,經過對進程樹進行分組(CPU,內存,硬盤讀取,硬盤寫入,交換,線程,管道,套接字等)
10.Apache Web服務器狀態(v2.2, v2.4)
11.Nginx Web服務器狀態
12.Mysql數據庫(多臺服務器,單個顯示:帶寬,查詢 /s , 處理者,鎖,問題,臨時操做,鏈接,二進制日誌,線程,innodb引擎等)
13.ISC Bind域名服務器(多個服務器,單個顯示:客戶,請求,查詢,更新,失敗等)
14.Postfix郵件服務器的消息隊列(條目,大小)
15.Squid代理服務器(客戶帶寬和請求,服務帶寬和請求)
16.硬件傳感器(溫度,電壓,風扇,電源,溼度等)
17.NUT UPSes(負載,充電,電池電壓,溫度,使用指標,輸出指標)
能夠監測任意數量的SNMP服務,不過你須要進行配置,還能夠對此軟件進行擴展,可使用任何語言編寫插件,以此來從任何來源收集數據

下面簡單記錄下Netdata的部署過程(Cetnos下):linux

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
netdata下載地址:http: //firehol .org /download/netdata/releases/v1 .0.0/
autogen下載地址:http: //ftp .gnu.org /gnu/autogen/5 .11.8/
 
[root@monit ~] # yum install zlib-devel gcc make git autoconf autogen guile-devel automake pkgconfig
[root@monit ~] # rpm -ivh autogen-5.11.8-5.x86_64.rpm --force                    //yum安裝autogen可能會報錯說沒有此包,那麼就單獨下載autogen的rpm包進行安裝
[root@monit ~] # tar -jvxf netdata-1.0.0.tar.bz2
[root@monit ~] # cd netdata-1.0.0
[root@monit netdata-1.0.0] # ./netdata-installer.sh --install /data
 
按照上面命令執行後的提示進行安裝,安裝後,netdata會自動重啓。端口爲19999
[root@monit ~] # ps -ef|grep netdata
netdata  10976     1  0 17:01 ?        00:00:03  /data/netdata/usr/sbin/netdata
netdata  10982 10976  0 17:01 ?        00:00:00  /bin/bash  /data/netdata/usr/libexec/netdata/plugins .d /tc-qos-helper .sh 1
netdata  10984 10976  0 17:01 ?        00:00:07  /bin/bash  /data/netdata/usr/libexec/netdata/plugins .d /charts .d.plugin 1
root     10986 10976  0 17:01 ?        00:00:04  /data/netdata/usr/libexec/netdata/plugins .d /apps .plugin 1
netdata  29395 10982  0 17:22 ?        00:00:00  sleep  0.998
netdata  29401 10984  0 17:22 ?        00:00:00  sleep  0.2
root     29403 25980  0 17:22 pts /0     00:00:00  grep  netdata
[root@monit ~] # lsof -i:19999
COMMAND   PID    USER   FD   TYPE DEVICE SIZE /OFF  NODE NAME
netdata 10976 netdata    3u  IPv6 499147      0t0  TCP *:dnp-sec (LISTEN)
 
啓動與關閉
啓動: /data/netdata/usr/sbin/netdata
關閉:killall netdata

或者經過下面方式進行安裝:git

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1) 安裝準備
Netdata提供了一個很是簡便的安裝方法,只須要執行下面的命令便可完成安裝netdata所依賴的各類東西:
# curl -Ss 'https://raw.githubusercontent.com/firehol/netdata-demo-site/master/install-required-packages.sh' >/tmp/kickstart.sh && bash /tmp/kickstart.sh -i netdata
 
注意,上面的命令是安裝基本的部分,不包括mysql / mariadb, postgres, named, hardware sensors and SNMP. 若是要完整安裝,則須要執行下面的命令:
# curl -Ss 'https://raw.githubusercontent.com/firehol/netdata-demo-site/master/install-required-packages.sh' >/tmp/kickstart.sh && bash /tmp/kickstart.sh -i netdata-all
 
2) 安裝Netdata
安裝Netdata也很簡單,按照wiki的說明便可:
# git clone https://github.com/firehol/netdata.git --depth=1
# cd netdata
# ./netdata-installer.sh
 
注意上面要使用root權限,執行命令後的提示信息也很豐富有趣
 
安裝完後,還能夠根據wiki所說的配置開機啓動,照作以後執行service netdata start啓動服務,能夠訪問http: //localhost :19999/ 看到監控界面。

Netdata的訪問,http://localhost:19999     運行動態效果圖以下:github

Netdata backend
Netdata也能夠後臺服務收集監控指標,多服務器的監控指標彙總到前臺展現,或者歸檔彙總後提供給其餘工具如grafana, 以下圖:web

Netdata支持以下幾個backends:
-  graphite;
-  opentsdb;
-  json document DBs.

Netdata還提供了3種計算模式:
-  as collected;
-  average;
-  sum or volume。

具體的能夠到netdata wiki查看。利用這種方式,應該也較容易可以折騰出來一個集羣監控的解決方案,而且netdata和grafana的界面看起來都很是的酷炫!

相關文章
相關標籤/搜索