用 netdata 快速建立伺服器監控 文章首圖

用 netdata 快速建立伺服器監控

用 netdata 快速建立伺服器監控

在伺服器運維的日常中,即時掌握系統資源的使用狀況是確保服務穩定性的關鍵。雖然傳統的監控方案如 Prometheus 搭配 Grafana 功能強大,但對於中小規模的應用場景或個人專案來說,部署成本與配置複雜度往往成為門檻。這時,Netdata 便是一個極佳的解決方案。作為一個即時效能監控工具,Netdata 以「零配置」和「即時性」聞名,只需一行指令即可在數分鐘內部署完畢,並提供直觀的 Web 介面來呈現 CPU、記憶體、磁碟 I/O 及網路流量等關鍵指標。

本文将以 Ubuntu 22.04 和 Debian 12 為基礎,帶領您快速搭建並初步配置 Netdata,讓您在沒有繁雜設定文件的情況下,也能輕鬆掌握伺服器的健康狀態。

安裝 Netdata

Netdata 官方提供了多種安裝方式,其中最受推薦的是使用自動安裝腳本。這個腳本會自動偵測作業系統類型、安裝依賴套件,並設定系統服務與防火牆規則,極大地簡化了安裝過程。

首先,請透過 SSH 連線到您的伺服器,並執行以下指令下載並執行安裝腳本:

wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh

安裝過程中,腳本會自動處理所有依賴項。若您在執行過程中遇到權限錯誤,請確保您使用的是具有 sudo 權限的使用者。安裝完成後,Netdata 會自動啟動,並預設監聽在 TCP 19999 端口。

為了確保服務在重啟後仍能自動運行,您可以檢查服務狀態:

systemctl status netdata

若看到 active (running) 的狀態,表示安裝已成功。

網路存取與防火牆配置

由於 Netdata 預設只監聽在本機回環介面(localhost),外部瀏覽器無法直接存取。因此,我們需要開放防火牆並調整網路設定。

首先,若您使用了 UFW 防火牆,請允許 19999 端口的流量:

sudo ufw allow 19999/tcp
sudo ufw reload

接著,為了讓 Netdata 接受來自其他 IP 的連線,您需要修改其設定檔。Netdata 的設定檔位於 /etc/netdata/netdata.conf

使用編輯器打開設定檔:

sudo nano /etc/netdata/netdata.conf

找到 [web] 區塊,並將 bind to 參數從 127.0.0.1 改為 0.0.0.0,這樣 Netdata 就會監聽所有網路介面:

[web]
    bind to = 0.0.0.0

修改完成後,重新啟動 Netdata 服務使設定生效:

sudo systemctl restart netdata

現在,您可以在瀏覽器中輸入 http://<您的伺服器IP>:19999 來查看監控儀表板。您應該會看到一個充滿動態圖表的介面,所有數據都是即時更新的。

基礎安全加固

雖然 Netdata 非常易用,但預設情況下它沒有啟用身份驗證,這意味著任何能夠存取該端口的人都能看到您的伺服器詳細資訊。對於生產環境,強烈建議啟用基礎認證。

您可以使用 htpasswd 工具來建立使用者憑證。首先安裝 Apache 基礎工具:

sudo apt install apache2-utils

接著建立一個名為 netdataadmin 的使用者,並設定密碼:

sudo htpasswd -c /etc/netdata/.htpasswd netdataadmin

然後,再次編輯 /etc/netdata/netdata.conf,在 [web] 區塊下方加入認證設定:

[web]
    bind to = 0.0.0.0
    default protocol = http
    allow connections from = all
    # 啟用基礎認證
    allow dashboard from = all
    # 若需更嚴格控制,可設定 allow dashboard from = 127.0.0.1 ::1

注意:Netdata 的認證機制較為簡單,若需更嚴格的 HTTPS 加密與進階權限管理,建議將 Netdata 置於 Nginx 或 Apache 後方,並透過反向代理來處理 SSL 終端與身份驗證。

常見問題排查

1. 安裝後無法連線或頁面空白 這通常是由於防火牆未正確開放端口,或 Netdata 服務未正常啟動。請先確認 systemctl status netdata 顯示為 running,並檢查 sudo ufw status 是否允許 19999/tcp。此外,若伺服器位於雲端主機(如 AWS、GCP),請務必檢查雲端控制台的「安全群組」或「防火牆規則」是否開放了該端口。

2. 圖表數據不更新或顯示為 0 Netdata 依賴大量的系統節點檔案來讀取數據。若數據異常,可能是權限問題。請確保 /var/lib/netdata 目錄歸屬於 netdata 使用者:

sudo chown -R netdata:netdata /var/lib/netdata
sudo chown -R netdata:netdata /var/log/netdata
sudo systemctl restart netdata

若問題依然存在,可嘗試重新執行安裝腳本以修復可能的配置損壞。

小結

透過上述步驟,您已經成功在伺服器上部署了 Netdata,並實現了即時的資源監控。Netdata 的強大之處在於其豐富的插件系統與分散式監控能力,您可以進一步探索其雲端監控中心或設定郵件告警。對於尋求快速、低資源消耗且視覺化效果佳的監控方案的中階使用者而言,Netdata 無疑是當前 Linux 生態系中的首選工具。接下來,您可以根據實際需求,深入客製化告警規則或整合其他監控平台,以構建更完善的運維體系。