Raspberry Pi 的實作 - Netdata 的即時系統資訊,詳細到讓你嫑嫑的

by 5月 23, 2017 3 意見        


為了掌握伺服器的即時系統資訊及網路流量,只能盯著那個醜到爆、看到膩的 MRTG 嗎?
現在你可以有新的選擇,再也不必再委曲自己了!

為了監控系統的負載狀態跟資源的使用狀況,我們曾經實作 系統資源監控 MRTG 篇系統資源監控 Monitorix 篇流量監控不求人,第一次安裝 Cacti 就上手 來取得這些資料。

可是:
  • MRTG 非常穩定,但是能提供的資訊實在有限,而且介面設計還是停留在一、二十年前的 Web 1.0 風格。
  • Monitorx 提供的資料比 MRTG 更多,介面也還算美觀,但是在系統回饋的反應速度卻略嫌慢了一點。
  • Cacti 功能多,能提供的資訊也多,可是不好架,服務老是起不來。
說巧不巧,偶然的機會看到網友分享了 Netdata 這個 Github 專案。

不試不知道,試了嚇一跳!

連上了 官方的示範站台 玩了一下,不只反應速度及穩定性比 MRTG 更好,也比 Monitorx 提供了更多、更詳細的資訊,還有著現代的介面、流暢的反應速度、以及更棒的模組擴充性。

這下子不把它裝上來用,怎麼會對得起自己呢?!


安裝套件


安裝步驟可以參考 Netadata Wiki - Installation,分成兩種:
  • 標準安裝
    不包括 My SQL/MariaDB、PostgresSQL、Named、SNMP 及硬體感測器 (Hardware Sensors)。
  • 完整安裝
    安裝所有支援的套件及裝置。
別擔心 Raspberry Pi 跑不動,直接用完整安裝模式吧!

先把必要的相依套件安裝起來。
curl -Ss 'https://raw.githubusercontent.com/firehol/netdata-demo-site/master/install-required-packages.sh' >/tmp/kickstart.sh && bash /tmp/kickstart.sh -i netdata-all


再將原始碼複製下來。
git clone https://github.com/firehol/netdata.git --depth=1

開始編譯並安裝。
cd netdata
sudo ./netdata-installer.sh


如果想裝在自訂目錄的話,可以加上 --install 參數去指定。
sudo ./netdata-installer.sh --install /opt

安裝完成後,Netdata 會自動啟動。
ps aux | grep netdata

需要停止服務時,直接砍掉這個行程就好了。
sudo killall netdata

想重新啟動的話,可以直接執行主程式,預設目錄在 /usr/sbin 下面。
sudo netdata

開機自動啟動。
sudo cp system/netdata-lsb /etc/init.d/netdata
sudo chmod +x /etc/init.d/netdata
sudo update-rc.d netdata defaults

別忘了要執行更新,才會增加新功能及漏洞的修補。
sudo ./netdata-updater.sh

若是怕自己忘了更新這回事,那就設定排程每天自動更新吧。
sudo ln -s /home/pi/netdata/netdata-updater.sh /etc/cron.daily/netdata-updater.sh

不想用了,打算反安裝也很簡單,一行指令就搞定,不過前提是沒把原始碼給砍了 XD。
sudo ./netdata-uninstaller.sh

另外也順便把用不到的使用者跟群組刪掉吧。
sudo userdel netdata
sudo groupdel netdata
udo gpasswd -d netdata docker
sudo gpasswd -d netdata adm


系統設定


主設定檔在這裡,詳細的說明請參閱 Netdata Configuration
sudo vi /etc/netdata/netdata.conf

總共分成四個段落:
  • global - 服務的全域設定
  • plugins - 啟用或停用插件
  • plugin:NAME - 各個插件的設定
  • CHART_NAME - 各個圖表的設定
以預設值就已經可以正常的運作了,而這些參數可以視狀況修改:
  • update every = 1,每一秒更新一次
  • default port = 19999,預設通訊埠在 TCP 19999
  • bind to = *,不綁定 IPv4、IPv6 位址
  • disconnect idle web clients after seconds = 60,Web Client 閒置 60 秒後就踢掉
  • enable web responses gzip compression = yes,啟用網頁 GZip 壓縮功能

顯示負載資訊


打開 WebUI 來看看。
http://raspberrypi.local:19999/

主畫面是以黑色為底的 Dashboard 風格,右側有各種系統資源的分組連結。

像是這些主要的系統資源:

CPU 負載狀況。

儲存空間使用狀況。

網路介面流量。

點選各個主要項目之後,還有更多詳細的子項目資料可以查看。

如果覺得圖表還是太少,或是偏偏少了想用的 Service?
可以點選 add more charts 按鈕,這邊還有許多圖表可以手動加入。

想要在多台主機間切換嗎?
沒問題,參閱 mynetdata menu item 的設定,編輯主設定檔 netdata.conf 裡的 registry 段落就可以了。

更棒的是,各個圖表還可以左右拉動,輕鬆切換過去各個歷史時間點的資源使用紀錄,如果這時再搭配 官方的觸碰螢幕 來監看與操作,那就更是如虎添翼了。


其他模組


有朋友問到想加入 SNMP 設備的監看,請參閱 SNMP Data Collector 的設定方法。

想監看其他主機的話,先在那一台上面裝好 netdata,再參考 mynetdata menu item 的設定方法加入。



參考資料

圖片來源
  • https://my-netdata.io/

更新紀錄
  • 2017/05/23 發文。
  • 2017/05/24 補充 SNMP 監聽模組的說明。
  • 2017/05/26 補充管理其他主機的說明。

Heracles Jam,江湖人稱「海公公」

IT 技術家 - 創站部落客

一個常用 Windows、慣用 macOS、愛用 Linux 的 3C 阿宅
現職 MIS / 業界講師 / 資訊顧問 / 部落客

3 則留言 :

  1. 老師 請問一下
    這有辦法監控別的主機嗎? 還是只能監控自己?
    有無帳號密碼設置登入

    回覆刪除
    回覆
    1. 要監控已安裝好 netdata 的別台主機,請參閱官網的文件來設定
      https://github.com/firehol/netdata/wiki/mynetdata-menu-item

      至於設定帳號密碼,我找不到這個功能...XDD

      刪除
  2. 使用多台raspberry pi的mynetdata menu item無法匯入registry
    不知道可否針對這部份做個教學
    謝謝

    回覆刪除