在 Linux 上安裝 NetData 性能監控工具


NetData 是一個用於系統和應用的分布式實時性能和健康監控工具。它提供了對系統中實時發生的所有事情的全面檢測。你可以在高度互動的 Web 儀表板中查看結果。使用 Netdata,你可以清楚地了解現在發生的事情,以及之前系統和應用中發生的事情。你無需成為專家即可在 Linux 系統中部署此工具。NetData 開箱即用,零配置、零依賴。只需安裝它然后坐等,之后 NetData 將負責其余部分。

它有自己的內置 Web 服務器,以圖形形式顯示結果。NetData 非常快速高效,安裝后可立即開始分析系統性能。它是用 C 編程語言編寫的,所以它非常輕量。它占用的單核 CPU 使用率不到 3%,內存占用 10-15MB。我們可以輕松地在任何現有網頁上嵌入圖表,並且它還有一個插件 API,以便你可以監控任何應用。

以下是 Linux 系統中 NetData 的監控列表。

  • CPU 使用率
  • RAM 使用率
  • 交換內存使用率
  • 內核內存使用率
  • 硬盤及其使用率
  • 網絡接口
  • IPtables
  • Netfilter
  • DDoS 保護
  • 進程
  • 應用
  • NFS 服務器
  • Web 服務器 (Apache 和 Nginx)
  • 數據庫服務器 (MySQL),
  • DHCP 服務器
  • DNS 服務器
  • 電子郵件服務
  • 代理服務器
  • Tomcat
  • PHP
  • SNP 設備
  • 等等

NetData 是自由開源工具,它支持 Linux、FreeBSD 和 Mac OS。

在 Linux 上安裝 NetData

Netdata 可以安裝在任何安裝了 Bash 的 Linux 發行版上。

最簡單的安裝 Netdata 的方法是從終端運行以下命令:

$ bash <(curl -Ss https://my-netdata.io/kickstart-static64.sh)

這將下載並安裝啟動和運行 Netdata 所需的一切。

有些用戶可能不想在沒有研究的情況下將某些東西直接注入到 Bash。如果你不喜歡此方法,可以按照以下步驟在系統上安裝它。

在 Arch Linux 上

Arch Linux 默認倉庫中提供了最新版本。所以,我們可以使用以下 pacman 命令安裝它:

$ sudo pacman -S netdata

在基於 DEB 和基於 RPM 的系統上

在基於 DEB (Ubuntu / Debian)或基於 RPM(RHEL / CentOS / Fedora) 系統的默認倉庫沒有 NetData。我們需要從它的 Git 倉庫手動安裝 NetData。

首先安裝所需的依賴項:

# Debian / Ubuntu
$ sudo apt-get install zlib1g-dev uuid-dev libuv1-dev liblz4-dev libjudy-dev libssl-dev libmnl-dev gcc make git autoconf autoconf-archive autogen automake pkg-config curl

# Fedora
$ sudo dnf install zlib-devel libuuid-devel libuv-devel lz4-devel Judy-devel openssl-devel libmnl-devel gcc make git autoconf autoconf-archive autogen automake pkgconfig curl findutils

# CentOS / Red Hat Enterprise Linux
$ sudo yum install epel-release
$ sudo yum install autoconf automake curl gcc git libmnl-devel libuuid-devel openssl-devel libuv-devel lz4-devel Judy-devel lm_sensors make MySQL-python nc pkgconfig python python-psycopg2 PyYAML zlib-devel

# openSUSE
$ sudo zypper install zlib-devel libuuid-devel libuv-devel liblz4-devel judy-devel openssl-devel libmnl-devel gcc make git autoconf autoconf-archive autogen automake pkgconfig curl findutils

安裝依賴項后,在基於 DEB 或基於 RPM 的系統上安裝 NetData,如下所示。

Git 克隆 NetData 倉庫:

$ git clone https://github.com/netdata/netdata.git --depth=100

上面的命令將在當前工作目錄中創建一個名為 netdata 的目錄。

切換到 netdata 目錄:

$ cd netdata/

最后,使用命令安裝並啟動 NetData:

$ sudo ./netdata-installer.sh

示例輸出:

Welcome to netdata!
Nice to see you are giving it a try!

You are about to build and install netdata to your system.

It will be installed at these locations:

- the daemon at /usr/sbin/netdata
 - config files at /etc/netdata
 - web files at /usr/share/netdata
 - plugins at /usr/libexec/netdata
 - cache files at /var/cache/netdata
 - db files at /var/lib/netdata
 - log files at /var/log/netdata
 - pid file at /var/run

This installer allows you to change the installation path.
Press Control-C and run the same command with --help for help.

Press ENTER to build and install netdata to your system > ## Press ENTER key

安裝完成后,你將在最后看到以下輸出:

-------------------------------------------------------------------------------

OK. NetData is installed and it is running (listening to *:19999).

-------------------------------------------------------------------------------

INFO: Command line options changed. -pidfile, -nd and -ch are deprecated.
If you use custom startup scripts, please run netdata -h to see the
corresponding options and update your scripts.

Hit http://localhost:19999/ from your browser.

To stop netdata, just kill it, with:

killall netdata

To start it, just run it:

/usr/sbin/netdata


Enjoy!

Uninstall script generated: ./netdata-uninstaller.sh

 

安裝 NetData

 

NetData 已安裝並啟動。

要在其他 Linux 發行版上安裝 Netdata,請參閱官方安裝說明頁面

在防火牆或者路由器上允許 NetData 的默認端口

如果你的系統在防火牆或者路由器后面,那么必須允許默認端口 19999 以便從任何遠程系統訪問 NetData 的 web 界面。

在 Ubuntu/Debian 中

$ sudo ufw allow 19999

在 CentOS/RHEL/Fedora 中

$ sudo firewall-cmd --permanent --add-port=19999/tcp

$ sudo firewall-cmd --reload

啟動/停止 NetData

要在使用 Systemd 的系統上啟用和啟動 Netdata 服務,請運行:

$ sudo systemctl enable netdata
$ sudo systemctl start netdata

要停止:

$ sudo systemctl stop netdata

要在使用 Init 的系統上啟用和啟動 Netdata 服務,請運行:

$ sudo service netdata start
$ sudo chkconfig netdata on

要停止:

$ sudo service netdata stop

通過 Web 瀏覽器訪問 NetData

打開 Web 瀏覽器,然后打開 http://127.0.0.1:19999 或者 http://localhost:19999/ 或者 http://ip-address:19999。你應該看到如下頁面。

 

Netdata 儀表板

 

在儀表板中,你可以找到 Linux 系統的完整統計信息。向下滾動以查看每個部分。

你可以隨時打開 http://localhost:19999/netdata.conf 來下載和/或查看 NetData 默認配置文件。

 

Netdata 配置文件

 

更新 NetData

在 Arch Linux 中,只需運行以下命令即可更新 NetData。如果倉庫中提供了更新版本,那么就會自動安裝該版本。

$ sudo pacman -Syyu

在基於 DEB 或 RPM 的系統中,只需進入已克隆它的目錄(此例中是 netdata)。

$ cd netdata

拉取最新更新:

$ git pull

然后,使用命令重新構建並更新它:

$ sudo ./netdata-installer.sh

卸載 NetData

進入克隆 NetData 的文件夾。

$ cd netdata

然后,使用命令卸載它:

$ sudo ./netdata-uninstaller.sh --force

在 Arch Linux 中,使用以下命令卸載它。

$ sudo pacman -Rns netdata

資源

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

###############################################################################################################################################

 

 

 

 

 

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-~]# 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  23:24 ?        00:00:06 /usr/sbin/netdata -P /var/run/netdata/netdata.pid -D netdata   14800  14787  23:24 ?        00:00:00 /usr/sbin/netdata --special-spawn-server netdata   14954  14787  23:24 ?        00:00:01 bash /usr/libexec/netdata/plugins.d/tc-qos-helper.sh 1 netdata   14974  14787  23:24 ?        00:00:02 /usr/bin/python /usr/libexec/netdata/plugins.d/python.d.plugin 1 root      14975  14787  23:24 ?        00:00:04 /usr/libexec/netdata/plugins.d/ebpf.plugin 1 netdata   14976  14787  23:24 ?        00:00:01 /usr/libexec/netdata/plugins.d/go.d.plugin 1 netdata   14977  14787  23:24 ?        00:00:05 /usr/libexec/netdata/plugins.d/apps.plugin 1 root      15277   1149  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...

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM