對于維護、管理Linux系統來說,它的性能監控非常重要,特別是實時監控資料,這個資料有利于我們判斷服務器的負載壓力,及時調整資源調配,也有助于更好的服務于業務,所以,今天民工哥給大家安利一款 Linux 性能實時監測工具:Netdata,
先搞張效果圖大家先look look
Netdata介紹
Netdata是一款Linux系統性能實時監控工具,是一個高度優化的Linux守護行程,可以對Linux系統、應用程式(包括但不限于Web服務器,資料庫等)、SNMP服務等提供實時的性能監控,
Netdata用可視化的手段,將其被監控的資訊展現出來,以便你清楚的了解到你的系統、程式、應用的實時運行狀態,而且還可以與Prometheus,Graphite,OpenTSDB,Kafka,Grafana等相集成,
Netdata是免費的開源軟體,目前可在Linux,FreeBSD和macOS以及從它們衍生的其他系統(例如Kubernetes和Docker)上運行,
Netdata倉庫地址:https://github.com/netdata/ne...
Netdata特性
- 1、友好、美觀的可視化界面
- 2、可自定義的控制界面
- 3、安裝快速且高效
- 4、配置簡單,甚至可零配置
- 5、零依賴
- 6、可擴展,自帶插件API
- 7、支持的系統平臺廣
Netdata是如何作業的?
Netdata是一個高效,高度模塊化的指標管理引擎,它的無鎖設計使其非常適合度量標準上的并發操作,

上圖的各個組件的作用描述,有興趣的可以參考官方的說明,這里不再贅述了,
Netdata可監控什么?
Netdata可以收集來自200多種流行服務和應用程式的指標,以及數十種與系統相關的指標,例如CPU,記憶體,磁盤,檔案系統,網路等,我們將這些收集器稱為,它們由插件管理,該插件支持多種編程語言,包括Go和Python,
流行的收集器包括Nginx,Apache,MySQL,statsd,cgroups(容器,Docker,Kubernetes,LXC等),Traefik,Web服務器access.log檔案等,
詳細的支持串列請參考下面的說明:https://github.com/netdata/ne...
Netdata安裝
1、直接安裝
首先需要更新升級系統內核和一些依賴庫檔案
[root@CentOS7-1 ~]# yum update -y
如果沒有操作,你在直接安裝時會出現下面的提示,輸入y讓系統自動更新也是可以的,

執行完更新操作后,直接執行下面的命令進行安裝Netdata,
[root@CentOS7-1 ~]# bash <(curl -Ss https://my-netdata.io/kickstart.sh)
然后,程式會自動執行安裝動作,去下載一系列的包進行安裝,中間需要確認操作一次,如下:

可能會由于訪問國外的資源,和根據你的網路關系,等待的時間或長或短,

一些關鍵的資訊,從安裝程序中也是可以看的出來的,如下圖,

從上圖資訊可以看出訪問方法,啟動、停止服務的命令,
安裝完成如下圖

顯示Netdata已經啟動完成,我們可以使用命令來查看一下是否啟動完成?
[root@CentOS7-1 ~]# lsof -i :19999 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME netdata 14787 netdata 4u IPv4 27995 0t0 TCP *:dnp-sec (LISTEN) netdata 14787 netdata 5u IPv6 27996 0t0 TCP *:dnp-sec (LISTEN) [root@CentOS7-1 ~]# ps -ef|grep netdata netdata 14787 1 2 23:24 ? 00:00:06 /usr/sbin/netdata -P /var/run/netdata/netdata.pid -D netdata 14800 14787 0 23:24 ? 00:00:00 /usr/sbin/netdata --special-spawn-server netdata 14954 14787 0 23:24 ? 00:00:01 bash /usr/libexec/netdata/plugins.d/tc-qos-helper.sh 1 netdata 14974 14787 0 23:24 ? 00:00:02 /usr/bin/python /usr/libexec/netdata/plugins.d/python.d.plugin 1 root 14975 14787 1 23:24 ? 00:00:04 /usr/libexec/netdata/plugins.d/ebpf.plugin 1 netdata 14976 14787 0 23:24 ? 00:00:01 /usr/libexec/netdata/plugins.d/go.d.plugin 1 netdata 14977 14787 1 23:24 ? 00:00:05 /usr/libexec/netdata/plugins.d/apps.plugin 1 root 15277 1149 0 23:29 pts/0 00:00:00 grep --color=auto netdata
2、Docker方式安裝
首先準備Docker環境,然后直接執行下面的命令即可完成安裝操作,
docker run -d --name=netdata -p 19999:19999 -v netdatalib:/var/lib/netdata -v netdatacache:/var/cache/netdata -v /etc/passwd:/host/etc/passwd:ro -v /etc/group:/host/etc/group:ro -v /proc:/host/proc:ro -v /sys:/host/sys:ro -v /etc/os-release:/host/etc/os-release:ro --restart unless-stopped --cap-add SYS_PTRACE --security-opt apparmor=unconfined netdata/netdata
安裝完成后,就可以通過下面的方式進行訪問了,
界面展示
1、總體資料界面
2、記憶體
3、CPU
4、磁盤
5、網路
6、應用
7、網路介面
8、資料同步功能
Netdata儀表板上的圖表彼此同步,沒有主圖表,可以隨時平移或縮放任何圖表,其他所有圖表也將隨之出現,
通過使用滑鼠拖動可以平移圖表,當滑鼠指標懸停在圖表上時,可以使用SHIFT+ 放大/縮小mouse wheel圖表,
Netdata強大之處
之所以如此強大,是因為它與各類應用的配合與支持,直接上圖說明:
Netdata集群管理方案
上面展示的只是單一服務器的監控資料,而且netdata有一個缺點就是所有被監控的服務器都需要安裝agent,所以,這里就是出現一個問題,就是如何將監控資料統一管理與展示?
netdata官方并沒設計主從模式,像zabbix那樣,可以一臺做為主服務器,其它的做為從服務器,將資料收集到主服務器統一處理與展示,但是,官方也給出了相關的解決方案,
- 1、netdata.cloud
使用自帶的 netdata.cloud,也就是每一個安裝節點WEB界面右上角的signin,只要我們使用同一個賬號登錄netdata.cloud(需要kexue上網),之后各個節點之間就可以輕松通過一個賬號控制,每個節點開啟19999埠與允許管理員查看資料,然后控制中心通過前端從各節點的埠收集的資料,傳給netdata.cloud記錄并展示,
這是一種被動的集群監控,本質上還是獨立的機器,且不方便做自定義的集群dashboard,
- 2、stream 插件
所以,為了解決上面這種方案的弊端,netdata又提供了另一種方法,將各節點的資料集中匯總到一臺(主)服務器,資料處理也在這臺服務器上,其它節點無需開放19999埠, 算是一種主動傳輸模式,把收集到的資料發送到主服務器上,這樣在主服務器上可以進行自定義的dashboard開發,
缺點:主服務器流量、負載都會比較大(在集群服務器數量較多的情況下),如果主服務器負載過高,我們可以通過設定節點服務器的資料收集周期(update every)來解決這個問題,
Netdata集群監控配置
很多文章都只是介紹了其安裝與一些界面的展示結果,并沒有提供集群監控這一解決方案與其具體的配置,民工哥也是查了很多的資料,現在將其配置程序分享給大家,
對于streaming的配置不熟悉的可以參考官方的檔案說明:https://docs.netdata.cloud/st...
1、節點服務器配置
[root@CentOS7-1 ~]# cd /etc/netdata/ [root@CentOS7-1 netdata]# vim netdata.conf #修改配置如下 [global] memory mode = none hostname = [建議修改成你的主機名] [web] mode = none
然后,在/etc/netdata/目錄下新建一個檔案stream.conf,然后將其配置為如下:
[stream] enabled = yes destination = MASTER_SERVER_IP:PORT api key = xxxx-xxxx-xxxx-xxxx-xxxx #引數說明如下 destination = MASTER_SERVER_IP:PORT 主服務器地址與埠 api key 必需為uuid的字串,Linux系統中可以使用下面的命令自動生成, [root@CentOS7-1 netdata]# uuidgen 480fdc8c-d1ac-4d6f-aa26-128eba744089
配置完成之后,需要重啟節點的netdata服務即可完成整個配置,
[root@CentOS7-1 ~]# systemctl restart netdata
2、主服務器配置
在netdata.conf的同一目錄下新建stream.conf并寫入如下配置:
[API_KEY]/[480fdc8c-d1ac-4d6f-aa26-128eba744089] enabled = yes default history = 3600 default memory mode = save health enabled by default = auto allow from = * [API_KEY] enabled = yes default history = 3600 default memory mode = save health enabled by default = auto allow from = * #其中,API_KEY對應節點服務器的api key(字串),allow from可以設定資料流的允許來源以保證安全, #如果有多個節點服務器,則一起寫在stream.conf里面
完成配置后重啟netdata:
systemctl restart netdata
所有的配置完成后,就可以在主服務器的WEB界面右上角看到下拉選單(主機名),點擊即可看到相關的監控資訊了,
如果需要自定義控制面板,可以參考官方的檔案,去修改xml檔案, 原文地址:https://docs.netdata.cloud/we...
到這里,這款實用、酷炫的服務器性能實時監控工具就介紹完了,原創不易,如有幫助,請點在贊、轉發分享支持一下民工哥,你們支持是我最大的創作動力,
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/174372.html
標籤:Linux
下一篇:關于Qwt繪制動態折線的嘗試
