前兩天先把這次想解決的問題,以及整套平台的大方向整理完成。
從今天開始,就正式進入實作。
不過在安裝 Prometheus、Grafana 之前,還是要先準備一個可以測試的環境。
這次我不打算一開始就準備很多台 Server,而是先從最簡單的架構開始。
第一版實驗環境
目前先準備兩台主機:
Monitoring Server
│
│ 監控
▼
Target Server
它們的工作很單純。
Monitoring Server
之後會放:
Prometheus
Grafana
Python / FastAPI
Database
也就是整套監控平台主要運作的地方。
Target Server
這台則是我們要監控的主機。
後面會從這台 Server 收集:
CPU
Memory
Disk
Network
之後也會故意製造一些異常,看看監控和告警能不能正常抓到。
為什麼先用兩台?
其實所有東西都裝在同一台也可以。
但我還是希望把:
監控端
跟
被監控端
先分開。
因為比較接近實際環境。
例如公司裡通常不會只有一台 Server 自己監控自己,而是會有一套集中式監控平台去監控其他主機。
所以第一版先用兩台就夠了。
我的環境規劃
這次實驗環境先使用 Linux。
規劃如下:
主機 用途 作業系統
monitor-server 監控平台 Ubuntu Server
server01 被監控主機 Ubuntu Server
規格不用太高。
如果只是做這次實驗,其實:
CPU:2 Core
Memory:2~4 GB
Disk:20~30 GB
就已經可以開始。
我這邊會先使用 VM 建立環境,這樣之後如果環境弄壞了,也比較方便重新建立。
先確認兩台主機可以互相連線
環境建立完成後,第一件事情不是裝軟體。
而是確認網路。
先在 Monitoring Server 上確認自己的 IP:
ip addr
假設目前兩台 Server 是:
monitor-server
192.168.1.100
server01
192.168.1.101
接著從 Monitoring Server 測試:
ping 192.168.1.101
如果可以正常收到回應:
64 bytes from 192.168.1.101
代表兩台主機基本網路已經可以互通。
這一步雖然很簡單,但後面 Prometheus 要抓資料時,網路如果不通,後面的設定做再多也沒有用。
再確認 SSH
接下來我也先確認 Monitoring Server 可以連到 Target Server。
第一次連線通常會詢問:
Are you sure you want to continue connecting?
確認之後輸入密碼。
如果可以成功登入:
username@server01:~$
代表目前基本環境就準備完成了。
更新系統
最後先把兩台 Server 的套件更新一下:
sudo apt update
sudo apt upgrade -y
這裡暫時不裝其他東西。
今天的目的就只是確定:
Monitoring Server
│
│ Network OK
│ SSH OK
▼
Target Server
兩台機器可以正常溝通。
為什麼今天不直接裝 Prometheus?
其實 Prometheus 安裝本身並不困難。
但我希望這個系列是一步一步把整套系統建立起來,而不是第一天就把一堆工具全部裝完。
今天先把:
主機、IP、網路、SSH
確認好。
之後如果 Prometheus 抓不到資料,我們至少可以先排除基本的網路問題。
這也是平常在處理系統問題時很常使用的方法:
先確認底層正常,再往上找問題。