您好,登錄后才能下訂單哦!
這篇“Ubuntu上如何使用Netdata設置實時性能監控”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Ubuntu上如何使用Netdata設置實時性能監控”文章吧。
介紹
netdata通過可擴展的web儀表板提供準確的性能監控,可以顯示linux系統上的流程和服務。它監控有關cpu,內存,磁盤,網絡,進程等的指標。
netdata一旦安裝就不需要額外的配置,但提供了重要的定制。該應用程序的效率和速度旨在與本機控制臺管理工具(如vmstat
,iostat
和htop
)相媲美。
準備
要學習本教程,您需要:
一個ubuntu 16.04服務器,包括具有sudo權限的非root用戶。
服務器上安裝git。
(可選)在服務器上安裝nginx。這不是強制性的,但允許比netdata的內置web服務器更多的功能和安全性。
第一步 - 安裝netdata
在我們安裝任何東西之前,請確保系統包索引是最新的。
$ sudo apt-get update
接下來,安裝netdata的依賴項,其中包括gcc
(一個c編譯器),gnu autoconf工具,guid管理和netdata內部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。與系統包管理器捆綁在一起的穩定版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
現在使用此目錄中的netdata-installer.sh shell
腳本構建和安裝應用程序。確保在這里附加sudo
,否則netdata收集系統數據的方式(通過數據收集器)將無法正常運行。
$ sudo ./netdata-installer.sh
您最初將看到的輸出包含有關netdata將存儲其所有組件的位置的信息。您可以通讀這些內容,這樣您就可以更熟悉程序在安裝后如何在文件系統上展開。
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
繼續安裝。片刻之后,在輸出的末尾,您將看到以下消息:
installer output . . . ^ |.-. .-. .-. .-. .-. . netdata .-. .- | '-' '-' '-' '-' '-' is installed and running now! -' '-' +----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+---> enjoy real-time performance and health monitoring...
netdata現在已成功安裝并運行,并且在重新啟動服務器時也會自動運行。如果您啟用了ufw,您需要為netdata的內部web服務器打開端口19999
。
$ sudo ufw allow 19999/tcp
此時,您可以通過在您喜歡的瀏覽器中訪問http:// your_server_ip:19999/
來查看默認儀表板。 您將看到系統的實時指標的概述。
第二步 - 配置netdata的內存使用情況
您可以通過在瀏覽器中訪問http://your_server_ip:19999/netdata.conf
查看netdata的當前配置。
您將在此處看到所有(或大多數)可配置選項都已注釋掉(即以#開頭)。這是因為netdata的配置使用一組假定的默認值。任何禁用的設置都使用netdata的默認值; 如果取消注釋某個設置,則指定的值將覆蓋默認值。這使配置文件僅包含您修改的內容。
回到您的服務器上,配置文件本身就是/etc/netdata/netdata.conf
。我們將在本教程中自定義的選項是history參數。它控制netdata使用的內存數據庫的大小。
在這里,您需要確定要為netdata提供多少ram,或者在丟失之前將記錄的圖表數據保留多長時間:
3600秒(圖表數據保留1小時)使用15 mb ram
7200秒(圖表數據保留2小時)使用30 mb ram
14400秒(圖表數據保留4小時)使用60 mb ram
28800秒(圖表數據保留8小時)使用120 mb ram
43200秒(圖表數據保留12小時)使用180 mb ram
86400秒(24小時圖表數據保留)使用360 mb ram
請記住,上述估算是基于庫存儀表板使用的圖表數量。將來刪除或添加自定義圖表會影響這些估算值。
使用nano
或您喜歡的文本編輯器打開netdata的主配置文件。
$ sudo nano /etc/netdata/netdata.conf
找到[global]
部分中的histor
y選項。
/etc/netdata/netdata.conf
復制代碼 代碼如下:
. . .[global] # glibc malloc arena max for plugins = 1. . . # hostname = test-netdata # history = 3600 # update every = 1. . .
將3600值替換為您之前決定的值。在這里,我們正在使用14400,這為我們提供了4小時的數據保留。確保通過除#符號來取消注釋該行,以便netdata不再忽略此選項。
/etc/netdata/netdata.conf
. . . [global] # glibc malloc arena max for plugins = 1 . . . # hostname = test-netdata # history = 3600 # update every = 1 . . .
進行此更改后保存并關閉文件。雖然這種修改可能會增加netdata將使用的ram量,但我們將在下一步中實施的下一個修改應該會顯著減少它。
第三步 - 啟用內核同頁合并
即使netdata直接運行并初始情況下使用,我們可以對netdata使用系統資源的方式進行更多修改,這將加速并優化其性能。我們將從啟用內核同頁合并(簡稱ksm)開始。netdata開發人員估計這會將netdata的內存使用量降低40-60%。
啟用后,ksm守護程序會定期掃描內存,查找可由單個寫保護頁替換的相同內容的頁面。在此上下文中,它允許在系統上運行的不同進程或程序之間共享相同的內存頁。這減少了不必要的重復內存內容的創建。
要永久啟用linux系統內核的此方面,請使用文本編輯器打開/etc/rc.local
文件。
復制代碼 代碼如下:
$ sudo nano /etc/rc.local
在啟動所有其他正常linux系統服務和進程之后,將執行/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內核文件中,該文件啟用該功能。第二個命令echo 1000 > /sys/kernel/mm/ksm/sleep_millisecs
告訴ksm守護程序每秒運行一次并評估100個頁面以進行重復數據刪除。
保存并關閉文件后,ksm現在將在下次服務器重新啟動時啟用,并在將來重新啟動時保留。要在此服務器的當前正常運行時間內啟用它,您需要在命令行上手動運行您添加到rc.local
的兩個命令。
首先,通過在sudo
中使用-
s標志,啟動并輸入新的shell會話作為服務器的root
用戶。這是必要的,因為早期的兩個命令使用輸出重定向(通過>運算符)并且需要由root shell
執行才能成功。
$ sudo -s
現在輸入之前的兩個命令:
echo 1 > /sys/kernel/mm/ksm/runecho 1000 > /sys/kernel/mm/ksm/sleep_millisecs
然后,保留root shell
并返回正常的shel
l會話。
$ exit
最后,要應用我們在此步驟以及此前的步驟中執行的所有更改,我們必須重新啟動netdata。
$ sudo systemctl restart netdata
您可以通過在netdata儀表板中查找新添加的活動ksm圖表來驗證ksm現在是否已啟用。這可以在右側菜單樹中的memory > memory deduper下找到。
ksm chart image
現在我們知道儀表板和ksm正在運行,值得通過像nginx這樣的web服務器而不是內置的web服務器來訪問儀表板。這不是完全必要的,但建議使用,因此請按照下一步進行設置。
第四步 - 通過nginx托管儀表板(可選)
通過nginx托管netdata可以更輕松地保護對儀表板的訪問,并且如果需要,還可以讓您在將來指向其他服務器的netdata儀表板。
您還需要安裝apache2-utils
軟件包。該軟件包包含htpasswd
程序,稍后我們將需要該程序來保護對儀表板頁面的訪問。
$ sudo apt-get install apache2-utils
接下來,創建一個新的nginx主機配置文件。請注意,在這里,我們在/conf.d
目錄中使用了一個文件,但是如果您使用nginx進行netdata以外的其他操作,則可以使用/sites-available
和/ sites-enabled
。
$ sudo nano /etc/nginx/conf.d/default.conf
此配置文件將告訴nginx代理儀表板頁面的傳入請求。我們還將添加一個簡單的身份驗證提示,以便只有具有正確用戶名和密碼的人才能訪問它。
以下是您要復制和粘貼的整個配置文件。將上述listen
和server_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-backend
的upstream
模塊使用服務器的環回地址127.0.0.1
和netdata的端口19999
來定位內置的netdata web服務器。keepalive
指令設置在任何給定時間(對于每個nginx工作進程)可以保持打開的上游空閑連接的最大數量。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
指定用于存儲身份驗證提示的登錄憑據的文件名和位置,稍后在此步驟中創建。
最后一個location
塊嵌套在server
塊內,處理代理并將傳入的請求傳遞給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
程序幫助我們為儀表板登錄提示創建用戶登錄憑據的地方。
首先,我們將創建用戶名和密碼。運行以下命令,將sammy替換為您要在netdata中使用的用戶名。出現提示時,輸入您要使用的密碼。
$ sudo htpasswd -c /etc/nginx/netdata-access sammy
這將在/etc / nginx / netdata-access
中創建一個包含您提供的用戶名和密碼的文件。
生成的密碼在文件中加密,因此不能將其視為純文本。
重新啟動nginx以使我們添加的新配置處于活動狀態。
$ sudo systemctl restart nginx
要首次測試nginx配置,請在您喜歡的web瀏覽器訪問http://your_server_ip
。您將看到身份驗證提示。輸入您在此步驟中先前提供的用戶名和密碼,以訪問儀表板,我們將在第五步中進行探討。
第五步 - 探索儀表板
如果您沒有按照可選第四步進行操作,請立即在您喜歡的瀏覽器訪問http://your_server_ip:19999/
以訪問儀表板。
您將看到儀表板以及系統實時指標的概述。當您在后續圖形中的每個時間段上鼠標懸停時,頁面頂部的hud樣式指示器會發生變化。
hud indicators image
此概述部分中的各個圖形和圖表提供了每個系統方面的詳細說明,范圍從cpu到內存到網絡流量等。
cpu chart example
圖表是交互式的,可以使用鼠標按鈕向左或向右拖動,以在不同的時間間隔內來回平移。
ram chart example
按住shift并使用鼠標滾輪在圖形上滾動或滾出將縮小或加寬時間標記。雙擊圖表將其重置為默認外觀和視圖。
network chart example
在儀表板上導航的最快方法是使用頁面右側的菜單樹。這會根據您當前正在查看的頁面部分更改焦點和顏色。
menu tree
向下滾動頁面或使用菜單樹可以訪問更深入的圖表。這些非常詳細,并且以與初始概述部分中的圖表相同的方式進行控制。
menu tree image
netdata提供了許多這些額外的特定于統計數據的圖表。
gui的一個重要部分是更新頁面。netdata定期接收更新,并使您的安裝保持最新狀態。儀表板頂部包含一個“更新”按鈕,可用于檢查新版本是否可供下載。
update button image
單擊此按鈕將打開一個包含更多詳細信息的新菜單,并打開“立即檢查”按鈕以手動檢查更新。
update check details image
如果有可用的更新,您只需要從netdata git存儲庫運行提供的更新腳本,我們在第一步中將其克隆到linux用戶的主目錄。也就是說,當更新可用時,只需從命令行運行sudo ~/netdata/netdata-updater.sh
。
以上就是關于“Ubuntu上如何使用Netdata設置實時性能監控”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。