主頁 > 知識庫 > Ubuntu上使用Netdata設置實時性能監(jiān)控的詳細流程

Ubuntu上使用Netdata設置實時性能監(jiān)控的詳細流程

熱門標簽:撫順地圖標注 高德地圖標注好做嗎 電銷機器人價值 達亞電銷機器人官網(wǎng) 新余高德地圖標注怎么修改 如何分析地圖標注 大連400電話如何申請 電銷機器人怎么接線路 外呼系統(tǒng)坐席費計入會計哪個科目

介紹

Netdata通過可擴展的Web儀表板提供準確的性能監(jiān)控,可以顯示Linux系統(tǒng)上的流程和服務。它監(jiān)控有關CPU,內(nèi)存,磁盤,網(wǎng)絡,進程等的指標。

Netdata一旦安裝就不需要額外的配置,但提供了重要的定制。該應用程序的效率和速度旨在與本機控制臺管理工具(如vmstatiostathtop)相媲美。

本教程中的步驟涵蓋了使用其內(nèi)置Web服務器或可選地使用Nginx成功設置運行Netdata的一臺Ubuntu 16.04服務器所需的一切。

準備

要學習本教程,您需要:

  • 一個Ubuntu 16.04服務器,包括具有sudo權限的非root用戶。
  • 服務器上安裝Git。
  • (可選)在服務器上安裝Nginx。這不是強制性的,但允許比Netdata的內(nèi)置Web服務器更多的功能和安全性。

第一步 - 安裝Netdata

在我們安裝任何東西之前,請確保系統(tǒng)包索引是最新的。

$ sudo apt-get update

接下來,安裝Netdata的依賴項,其中包括gcc(一個C編譯器),GNU Autoconf工具,GUID管理和Netdata內(nèi)部Web服務器的壓縮庫。

$ sudo apt-get install zlib1g-dev uuid-dev libmnl-dev gcc make autoconf autoconf-archive autogen automake pkg-config curl

下一組軟件包是可選的,但Netdata推薦使用,包括Python,一些Python軟件包和Node.JS。與系統(tǒng)包管理器捆綁在一起的穩(wěn)定版Node.js適用于Netdata的要求。接下來安裝它們。

$ sudo apt-get install python python-yaml python-mysqldb python-psycopg2 nodejs lm-sensors netcat

要安裝Netdata本身,我們必須使用項目的GitHub存儲庫。將Netdata存儲庫克隆到您的主目錄中。

$ git clone https://github.com/firehol/netdata.git --depth=1 ~/netdata

移至新克隆的目錄。

$ cd ~/netdata

現(xiàn)在使用此目錄中的netdata-installer.sh shell腳本構(gòu)建和安裝應用程序。確保在這里附加sudo,否則Netdata收集系統(tǒng)數(shù)據(jù)的方式(通過數(shù)據(jù)收集器)將無法正常運行。

$ sudo ./netdata-installer.sh

您最初將看到的輸出包含有關Netdata將存儲其所有組件的位置的信息。您可以通讀這些內(nèi)容,這樣您就可以更熟悉程序在安裝后如何在文件系統(tǒng)上展開。

Installer Output
. . .
 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
. . .

ENTER繼續(xù)安裝。片刻之后,在輸出的末尾,您將看到以下消息:

Installer Output
. . .
 ^
 |.-. .-. .-. .-. .-. . netdata    .-. .-
 | '-' '-' '-' '-' '-' is installed and running now! -' '-' 
 +----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+--->
 enjoy real-time performance and health monitoring...

Netdata現(xiàn)在已成功安裝并運行,并且在重新啟動服務器時也會自動運行。如果您啟用了UFW,您需要為Netdata的內(nèi)部Web服務器打開端口19999。

$ sudo ufw allow 19999/tcp

此時,您可以通過在您喜歡的瀏覽器中訪問http:// your_server_ip:19999/來查看默認儀表板。 您將看到系統(tǒng)的實時指標的概述。

第二步 - 配置Netdata的內(nèi)存使用情況

您可以通過在瀏覽器中訪問http://your_server_ip:19999/netdata.conf查看Netdata的當前配置。

您將在此處看到所有(或大多數(shù))可配置選項都已注釋掉(即以#開頭)。這是因為Netdata的配置使用一組假定的默認值。任何禁用的設置都使用Netdata的默認值; 如果取消注釋某個設置,則指定的值將覆蓋默認值。這使配置文件僅包含您修改的內(nèi)容。

回到您的服務器上,配置文件本身就是/etc/netdata/netdata.conf。我們將在本教程中自定義的選項是history參數(shù)。它控制Netdata使用的內(nèi)存數(shù)據(jù)庫的大小。

在這里,您需要確定要為Netdata提供多少RAM,或者在丟失之前將記錄的圖表數(shù)據(jù)保留多長時間:

  • 3600秒(圖表數(shù)據(jù)保留1小時)使用15 MB RAM
  • 7200秒(圖表數(shù)據(jù)保留2小時)使用30 MB RAM
  • 14400秒(圖表數(shù)據(jù)保留4小時)使用60 MB RAM
  • 28800秒(圖表數(shù)據(jù)保留8小時)使用120 MB RAM
  • 43200秒(圖表數(shù)據(jù)保留12小時)使用180 MB RAM
  • 86400秒(24小時圖表數(shù)據(jù)保留)使用360 MB RAM

請記住,上述估算是基于庫存儀表板使用的圖表數(shù)量。將來刪除或添加自定義圖表會影響這些估算值。

使用nano或您喜歡的文本編輯器打開Netdata的主配置文件。

$ sudo nano /etc/netdata/netdata.conf

找到[global]部分中的history選項。

/etc/netdata/netdata.conf

復制代碼 代碼如下:
. . .[global] # glibc malloc arena max for plugins = 1. . . # hostname = test-netdata # history = 3600 # update every = 1. . .

將3600值替換為您之前決定的值。在這里,我們正在使用14400,這為我們提供了4小時的數(shù)據(jù)保留。確保通過除#符號來取消注釋該行,以便Netdata不再忽略此選項。

/etc/netdata/netdata.conf

. . .
[global]
 # glibc malloc arena max for plugins = 1
. . .
 # hostname = test-netdata
 # history = 3600
 # update every = 1
. . .

進行此更改后保存并關閉文件。雖然這種修改可能會增加Netdata將使用的RAM量,但我們將在下一步中實施的下一個修改應該會顯著減少它。

第三步 - 啟用內(nèi)核同頁合并

即使Netdata直接運行并初始情況下使用,我們可以對Netdata使用系統(tǒng)資源的方式進行更多修改,這將加速并優(yōu)化其性能。我們將從啟用內(nèi)核同頁合并(簡稱KSM)開始。Netdata開發(fā)人員估計這會將Netdata的內(nèi)存使用量降低40-60%。

啟用后,KSM守護程序會定期掃描內(nèi)存,查找可由單個寫保護頁替換的相同內(nèi)容的頁面。在此上下文中,它允許在系統(tǒng)上運行的不同進程或程序之間共享相同的內(nèi)存頁。這減少了不必要的重復內(nèi)存內(nèi)容的創(chuàng)建。

要永久啟用Linux系統(tǒng)內(nèi)核的此方面,請使用文本編輯器打開/etc/rc.local文件。

復制代碼 代碼如下:
$ sudo nano /etc/rc.local

在啟動所有其他正常Linux系統(tǒng)服務和進程之后,將執(zhí)行/etc/rc.local文件或運行控制文件。它對于指定自定義服務很有用-或者,在我們的示例中,用于在服務器運行時啟用KSM。

將下面顯示的兩個命令添加到文件末尾,在最后exit 0一行之前,如下所示:

/etc/rc.local

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
echo 1 > /sys/kernel/mm/ksm/run
echo 1000 > /sys/kernel/mm/ksm/sleep_millisecs
exit 0

echo 1 > /sys/kernel/mm/ksm/run 第一個命令將1添加到runKSM內(nèi)核文件中,該文件啟用該功能。第二個命令echo 1000 > /sys/kernel/mm/ksm/sleep_millisecs 告訴KSM守護程序每秒運行一次并評估100個頁面以進行重復數(shù)據(jù)刪除。

保存并關閉文件后,KSM現(xiàn)在將在下次服務器重新啟動時啟用,并在將來重新啟動時保留。要在此服務器的當前正常運行時間內(nèi)啟用它,您需要在命令行上手動運行您添加到rc.local的兩個命令。

首先,通過在sudo中使用-s標志,啟動并輸入新的shell會話作為服務器的root用戶。這是必要的,因為早期的兩個命令使用輸出重定向(通過>運算符)并且需要由root shell執(zhí)行才能成功。

$ sudo -s

現(xiàn)在輸入之前的兩個命令:

echo 1 > /sys/kernel/mm/ksm/runecho 1000 > /sys/kernel/mm/ksm/sleep_millisecs

然后,保留root shell并返回正常的shell會話。

$ exit

最后,要應用我們在此步驟以及此前的步驟中執(zhí)行的所有更改,我們必須重新啟動Netdata。

$ sudo systemctl restart netdata

您可以通過在Netdata儀表板中查找新添加的活動KSM圖表來驗證KSM現(xiàn)在是否已啟用。這可以在右側(cè)菜單樹中的Memory > Memory Deduper下找到。

KSM Chart Image

現(xiàn)在我們知道儀表板和KSM正在運行,值得通過像Nginx這樣的Web服務器而不是內(nèi)置的Web服務器來訪問儀表板。這不是完全必要的,但建議使用,因此請按照下一步進行設置。

第四步 - 通過Nginx托管儀表板(可選)

通過Nginx托管Netdata可以更輕松地保護對儀表板的訪問,并且如果需要,還可以讓您在將來指向其他服務器的Netdata儀表板。

您還需要安裝apache2-utils軟件包。該軟件包包含htpasswd程序,稍后我們將需要該程序來保護對儀表板頁面的訪問。

$ sudo apt-get install apache2-utils

接下來,創(chuàng)建一個新的Nginx主機配置文件。請注意,在這里,我們在/conf.d目錄中使用了一個文件,但是如果您使用Nginx進行Netdata以外的其他操作,則可以使用/sites-available/ sites-enabled。

$ sudo nano /etc/nginx/conf.d/default.conf

此配置文件將告訴Nginx代理儀表板頁面的傳入請求。我們還將添加一個簡單的身份驗證提示,以便只有具有正確用戶名和密碼的人才能訪問它。

以下是您要復制和粘貼的整個配置文件。將上述listenserver_name指令的兩個紅色突出顯示項分別更改為服務器的IP地址和分配的域名。注意在每個末尾包括;。如果您沒有域名,可以將server_name指令保留為example.com

/etc/nginx/conf.d/default.conf

upstream netdata-backend {
 server 127.0.0.1:19999;
 keepalive 64;
}

server {
 listen your_server_ip:80;
 server_name example.com;

 auth_basic "Authentication Required";
 auth_basic_user_file netdata-access;

 location / {
 proxy_set_header X-Forwarded-Host $host;
 proxy_set_header X-Forwarded-Server $host;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_pass http://netdata-backend;
 proxy_http_version 1.1;
 proxy_pass_request_headers on;
 proxy_set_header Connection "keep-alive";
 proxy_store off;
 }
}

一旦確定自己的文件與此代碼塊匹配,就可以保存并退出以返回到命令提示符。

讓我們解釋一下這個文件,讓你了解它在做什么。這是第一部分:

/etc/nginx/conf.d/default.conf

upstream netdata-backend { server 127.0.0.1:19999; keepalive 64;}

這個名為netdata-backendupstream模塊使用服務器的環(huán)回地址127.0.0.1和Netdata的端口19999來定位內(nèi)置的Netdata Web服務器。keepalive指令設置在任何給定時間(對于每個Nginx工作進程)可以保持打開的上游空閑連接的最大數(shù)量。proxy_pass指令稍后需要此upstream模塊定義。

在此之后直接是主要server塊。

/etc/nginx/conf.d/default.conf

upstream netdata-backend {
 server 127.0.0.1:19999;
 keepalive 64;
}

塊中的前兩行定義了Nginx在客戶端嘗試連接時應該listen的外部IP地址。server_name指令告訴Nginx在客戶端使用指定的域名時運行此服務器塊。

此代碼段中的最后兩行設置了簡單的HTTP用戶名和密碼身份驗證。它使用auth_basic模塊顯示用戶名和密碼提示。您可以自定義提示消息;

在這里,它設置為Authentication Required。auth_basic_user_file指定用于存儲身份驗證提示的登錄憑據(jù)的文件名和位置,稍后在此步驟中創(chuàng)建。

最后一個location塊嵌套在server塊內(nèi),處理代理并將傳入的請求傳遞給Nginx。

/etc/nginx/conf.d/default.conf

server {
 listen your_server_ip:80;
 server_name example.com;
 auth_basic "Authentication Required";
 auth_basic_user_file netdata-access;

總而言之,此代碼是將客戶端請求傳遞給Netdata Web服務器,然后是儀表板的代碼。proxy_pass指令行引用回文件開頭的upstream模塊必須通過名稱netdata-backend指向它。

如果尚未安裝,則可以保存并關閉此配置文件。這里是apache2-utils包中的htpasswd程序幫助我們?yōu)閮x表板登錄提示創(chuàng)建用戶登錄憑據(jù)的地方。

首先,我們將創(chuàng)建用戶名和密碼。運行以下命令,將sammy替換為您要在Netdata中使用的用戶名。出現(xiàn)提示時,輸入您要使用的密碼。

$ sudo htpasswd -c /etc/nginx/netdata-access sammy

這將在/etc / nginx / netdata-access中創(chuàng)建一個包含您提供的用戶名和密碼的文件。

生成的密碼在文件中加密,因此不能將其視為純文本。

重新啟動Nginx以使我們添加的新配置處于活動狀態(tài)。

$ sudo systemctl restart nginx

要首次測試Nginx配置,請在您喜歡的Web瀏覽器訪問http://your_server_ip。您將看到身份驗證提示。輸入您在此步驟中先前提供的用戶名和密碼,以訪問儀表板,我們將在第五步中進行探討。

第五步 - 探索儀表板

如果您沒有按照可選第四步進行操作,請立即在您喜歡的瀏覽器訪問http://your_server_ip:19999/以訪問儀表板。

您將看到儀表板以及系統(tǒng)實時指標的概述。當您在后續(xù)圖形中的每個時間段上鼠標懸停時,頁面頂部的HUD樣式指示器會發(fā)生變化。

HUD Indicators Image

此概述部分中的各個圖形和圖表提供了每個系統(tǒng)方面的詳細說明,范圍從CPU到內(nèi)存到網(wǎng)絡流量等。

CPU Chart Example

圖表是交互式的,可以使用鼠標按鈕向左或向右拖動,以在不同的時間間隔內(nèi)來回平移。

RAM Chart Example

按住SHIFT并使用鼠標滾輪在圖形上滾動或滾出將縮小或加寬時間標記。雙擊圖表將其重置為默認外觀和視圖。

Network Chart Example

在儀表板上導航的最快方法是使用頁面右側(cè)的菜單樹。這會根據(jù)您當前正在查看的頁面部分更改焦點和顏色。

Menu Tree

向下滾動頁面或使用菜單樹可以訪問更深入的圖表。這些非常詳細,并且以與初始概述部分中的圖表相同的方式進行控制。

Menu Tree Image

Netdata提供了許多這些額外的特定于統(tǒng)計數(shù)據(jù)的圖表。

GUI的一個重要部分是更新頁面。Netdata定期接收更新,并使您的安裝保持最新狀態(tài)。儀表板頂部包含一個“更新”按鈕,可用于檢查新版本是否可供下載。

Update Button Image

單擊此按鈕將打開一個包含更多詳細信息的新菜單,并打開“立即檢查”按鈕以手動檢查更新。

Update Check Details Image

如果有可用的更新,您只需要從Netdata Git存儲庫運行提供的更新腳本,我們在第一步中將其克隆到Linux用戶的主目錄。也就是說,當更新可用時,只需從命令行運行sudo ~/netdata/netdata-updater.sh。

結(jié)論

Netdata wiki中介紹了Netdata注冊表,設置警報和安裝自定義圖表/模塊的信息,還討論了生成HTML徽章或處理Netdata日志文件等主題。

總結(jié)

以上所述是小編給大家介紹的Ubuntu上使用Netdata設置實時性能監(jiān)控的詳細流程,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

標簽:衡水 南通 楊凌 海東 黃石 湖南 新鄉(xiāng) 遼源

巨人網(wǎng)絡通訊聲明:本文標題《Ubuntu上使用Netdata設置實時性能監(jiān)控的詳細流程》,本文關鍵詞  Ubuntu,上,使用,Netdata,設置,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Ubuntu上使用Netdata設置實時性能監(jiān)控的詳細流程》相關的同類信息!
  • 本頁收集關于Ubuntu上使用Netdata設置實時性能監(jiān)控的詳細流程的相關信息資訊供網(wǎng)民參考!
  • 推薦文章