iT邦幫忙

2026 iThome 鐵人賽

DAY 4
0
AI 自動化

30 天打造 AI 自動化維運平台:從監控、告警到故障分析系列 第 4

Day 4 預告 Day 4|讓 Prometheus 跑起來:開始收集第一筆監控資料

  • 分享至 

  • xImage
  •  

Day 3 我們先準備好了兩台主機:

Monitoring Server
192.168.1.100

    ↓ 監控

Target Server
192.168.1.101

也確認了兩台主機之間可以正常 Ping、SSH。

今天就正式開始把第一個監控元件放進來。

這次的目標很單純:

讓 Prometheus 可以從 server01 收到監控資料。

今天會做什麼?

今天只處理兩個元件:

Monitoring Server

│ Prometheus


Target Server

│ Node Exporter

CPU / Memory / Disk / Network

這裡有一個很重要的地方。

Prometheus 本身負責的是:

定期去收集 Metrics。

但是 Target Server 並不會自己把 CPU、Memory 這些資訊提供給 Prometheus。

所以我們還需要在被監控的 Linux Server 上安裝:

Node Exporter

Node Exporter 會把 Linux 系統資訊整理成 Prometheus 看得懂的 Metrics。

Step 1:安裝 Prometheus

先登入 Monitoring Server:

ssh username@192.168.1.100

更新套件:

sudo apt update

接著安裝 Prometheus:

sudo apt install prometheus -y

安裝完成後確認服務:

sudo systemctl status prometheus

如果看到:

Active: active (running)

代表 Prometheus 已經正常啟動。

也可以設定開機自動啟動:

sudo systemctl enable prometheus
Step 2:打開 Prometheus

Prometheus 預設使用:

9090 Port

所以可以從瀏覽器開啟:

http://192.168.1.100:9090

如果可以看到 Prometheus 的介面,就代表第一步成功了。

不過這時候還沒有開始監控 server01。

接下來要去準備 Target Server。

Step 3:在 Target Server 安裝 Node Exporter

登入被監控的主機:

ssh username@192.168.1.101

安裝 Node Exporter:

sudo apt update
sudo apt install prometheus-node-exporter -y

確認服務:

sudo systemctl status prometheus-node-exporter

同樣看到:

Active: active (running)

就代表 Node Exporter 已經啟動。

Node Exporter 預設使用:

9100 Port

可以先在 Target Server 本機測試:

curl http://localhost:9100/metrics

這時候畫面應該會出現很多資料,例如:

node_cpu_seconds_total
node_memory_MemTotal_bytes
node_memory_MemAvailable_bytes
node_filesystem_size_bytes

第一次看到可能會覺得:

怎麼一大堆東西?

其實先不用全部看懂。

現在只需要知道:

Node Exporter 已經成功把 Linux 系統資訊轉成 Metrics。

Step 4:確認 Monitoring Server 抓得到資料

接著回到 Monitoring Server。

測試:

curl http://192.168.1.101:9100/metrics

如果一樣可以看到大量 Metrics,代表:

Prometheus Server

│ Network OK

Node Exporter
192.168.1.101:9100

這條路已經通了。

如果這裡連不到,就先不要急著修改 Prometheus。

可以先檢查:

ping 192.168.1.101

以及:

curl http://192.168.1.101:9100

先確定網路與 Port 沒有問題。

Step 5:告訴 Prometheus 要監控誰

接下來要修改 Prometheus 的設定檔。

Ubuntu 套件安裝的設定檔通常放在:

/etc/prometheus/prometheus.yml

打開:

sudo nano /etc/prometheus/prometheus.yml

找到:

scrape_configs:

加入一個新的 Job:

  • job_name: 'server01'

    static_configs:

    • targets:
      • '192.168.1.101:9100'

整體概念就是告訴 Prometheus:

有一台叫做 server01 的設備,你要去 192.168.1.101:9100 抓資料。

儲存之後,可以先檢查設定檔:

promtool check config /etc/prometheus/prometheus.yml

如果看到:

SUCCESS

再重新啟動 Prometheus:

sudo systemctl restart prometheus

確認:

sudo systemctl status prometheus
Step 6:確認 Target 是否正常

接下來重新打開:

http://192.168.1.100:9090

進入:

Status → Targets

應該會看到類似:

server01

Endpoint
http://192.168.1.101:9100/metrics

State
UP

這個:

UP

就是今天最重要的結果。

代表 Prometheus 已經成功連到 server01,而且正在定期收集 Metrics。

目前資料流已經變成:

server01

│ Node Exporter
│ :9100

Prometheus

│ :9090

Metrics
Step 7:查詢我們的第一筆 Metrics

接下來可以在 Prometheus 搜尋:

up

執行後會看到類似:

up{instance="192.168.1.101:9100", job="server01"} 1

這裡的:

1

代表 Target 正常。

如果是:

0

代表 Prometheus 目前無法正常抓到這個 Target。

所以光是一個很簡單的 up,其實就已經可以拿來判斷:

這台 Server 的監控端點現在是不是正常。

再看看 Memory 資訊

也可以搜尋:

node_memory_MemTotal_bytes

會看到 server01 的記憶體總容量。

例如:

node_memory_MemTotal_bytes{
instance="192.168.1.101:9100",
job="server01"
}

Prometheus 收到的資料很多都是這種原始數字。

目前看起來並不是特別直覺。

例如 Memory 可能會看到:

4115189760

第一眼很難直接知道到底用了多少。

這也是我們後面為什麼還會需要 Grafana。

今天完成了什麼?

Day 4 我們終於收到這個專案的第一筆真正監控資料。

目前架構:

┌──────────────────┐
│ server01 │
│ 192.168.1.101 │
│ │
│ Node Exporter │
│ :9100 │
└────────┬─────────┘

│ Metrics

┌──────────────────┐
│ Prometheus │
│ 192.168.1.100 │
│ :9090 │
└──────────────────┘

今天完成:

✓ 安裝 Prometheus
✓ 安裝 Node Exporter
✓ 確認 Node Exporter Metrics
✓ Prometheus 加入 server01
✓ Target 顯示 UP
✓ 查詢第一筆 Metrics

到這裡,我們已經跨過一個重要的階段。

前面三天都還是在準備環境。

從今天開始:

Monitoring Server 已經真的在監控另一台 Server。

但現在還有一個問題

Prometheus 可以收到資料了。

但現在看到的是:

node_cpu_seconds_total
node_memory_MemAvailable_bytes
node_filesystem_avail_bytes

對人來說並不是很好閱讀。

我真正想看的其實是:

CPU 35%
Memory 62%
Disk 48%

最好還可以直接用圖表看到一段時間內的變化。

所以接下來就輪到另一個元件出場了。


上一篇
Day 3|開始動工:準備我們的第一台監控主機
下一篇
Day 5|讓監控資料看得懂:用 Grafana 做第一個 Dashboard
系列文
30 天打造 AI 自動化維運平台:從監控、告警到故障分析9
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言