我們接下來要介紹怎麽安裝各種軟體,我們先從 Grafana 開始
接下來的示範都會利用 Ubuntu 20.04
要安裝 Grafana 再簡單也不過,只要底下的指令即可
sudo apt-get install -y adduser libfontconfig1
wget https://dl.grafana.com/oss/release/grafana_7.2.0_amd64.deb
sudo dpkg -i grafana_7.2.0_amd64.deb
sudo systemctl daemon-reload
sudo systemctl enable --now grafana-server
接下來,連到 <VM_IP>:3000
,你應該會看到 Grafana 的畫面
利用 admin
/admin
登入,再建立新的密碼,你就能進入 Grafana 了!
剛裝好的 Grafana 大概長這樣
接下來我們要先安裝 Prometheus,首先要到這裡下載
下載完後解壓縮,會得到 Prometheus 的檔案,長這個樣子
.
|-- LICENSE
|-- NOTICE
|-- console_libraries
| |-- menu.lib
| `-- prom.lib
|-- consoles
| |-- index.html.example
| |-- node-cpu.html
| |-- node-disk.html
| |-- node-overview.html
| |-- node.html
| |-- prometheus-overview.html
| `-- prometheus.html
|-- prometheus
|-- prometheus.yml
`-- promtool
2 directories, 14 files
在 /etc
裡建立一個資料夾叫 prometheus
,然後把 prometheus
和 promtool
以外的東西都放進去
把 prometheus
和 promtool
都放進 /usr/local/bin
,如下
$ mkdir -p /etc/prometheus
$ mv prometheus promtool /usr/local/bin
$ mv ./* /etc/prometheus
接著,由於系統沒有安裝 Prometheus 的自動啟動設定,我們要寫一個 Systemd Service File 讓系統能在開機時自動啟動 Prometheus
建立檔案 /etc/systemd/system/prometheus.service
,然後填入這些內容
[Unit]
Description=Prometheus
After=network-online.target
[Service]
Restart=on-failure
ExecStart=/usr/local/bin/prometheus --config.file=/etc/prometheus/prometheus.yml
[Install]
WantedBy=multi-user.target
接下來執行
$ sudo systemctl daemon-reload
$ sudo systemctl enable --now prometheus
接下來用瀏覽器連上 <VM_IP>:9090
,應該會看到這樣的畫面
看到這樣的畫面就裝好 Prometheus 了,再來是 Node Exporter
Node Exporter 安裝的過程類似 Prometheus,一樣都要手動安裝
從這裡抓 Node Exporter,然後一樣解壓縮
會得到這樣的檔案
.
|-- LICENSE
|-- NOTICE
`-- node_exporter
0 directories, 3 files
我們把 node_exporter
移到 /usr/local/bin
$ sudo mv node_exporter /usr/local/bin
接下來一樣要寫 Systemd Service File,建立一個檔案 /etc/systemd/system/node_exporter.service
,然後填這些內容
[Unit]
Description=Node Exporter
After=network-online.target
[Service]
Restart=on-failure
ExecStart=/usr/local/bin/node_exporter
[Install]
WantedBy=multi-user.target
接下來我們測試看看 Node Exporter 有沒有正常運作
$ curl localhost:9100/metrics
如果看到一堆輸出,就是 Node Exporter 有安裝成功
接下來我們設定 Prometheus,讓 Prometheus 會去跟 Node Exporter 要資料
打開 /etc/prometheus/prometheus.yml
會看到這樣的內容
# my global config
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).
# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus'
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ['localhost:9090']
這裡可以看到 Prometheus 的各項設定,包含 Alert
不過我們這裡先不提 Alert,我們先讓 Prometheus 能收到 Node Exporter 的資料就好
我們可以看到 scrape_configs:
裡有定義了 Job
Prometheus 會定時執行各個 Job,每個 Job 可以是不同的主機群
例如現在有個 Job 是 prometheus
,而裡面有個 target 是 localhost:9090
Prometheus 在執行這個 Job 時,會對這個 target 要求路徑 /metrics
的內容
而當 target 回傳內容時,這些內容就會被存進 Prometheus,然後完成監控的工作
我們新增一個 Job node_exporter
,然後我們比照 job prometheus
的方式建立
不過 targets
我們設定 localhost:9100
,讓 Prometheus 去抓 Node Exporter 的資料
如下
- job_name: 'node_exporter'
static_configs:
- targets: ['localhost:9100']
好了後存檔,重新啟動 Prometheus,再進到 Prometheus 的面板,點開 Status > Targets
應該能看到這樣的畫面
可以看到我們新建立的 job node_exporter
以及狀態
接下來,我們讓這些數據在 Grafana 上能被呈現
回到 Grafana 首頁,在設定圖示裡點開 Data Sources,然後新增一個 Data Source
Data Source 選擇 Prometheus
在裡面填入 Prometheus 主機資訊,如下
好了以後壓最底下的 "Save & Test",確認沒問題後就新增完成了
接下來我們要建立 Dashboard 來呈現我們的資料
不過要手動建立 Dashboard 實在太麻煩了,我們可以快速匯入別人建好的面板,省去客製化的時間
我們要匯入的面板是1 Node Exporter for Prometheus Dashboard EN v20200628
在 Grafana 左側的加號圖示裡選擇 Import,在 Import 那欄輸入 ID 11074
,接著壓 Load
會看到這樣的畫面,然後我們要選擇 Data Source,選擇剛建立的 Prometheus
然後壓 Import,就能看到建立好的 Dashboard 了
建立完成後能看到主機的各項資訊,不過由於我們才剛安裝好 Prometheus 沒多久,還收集不到什麼資訊
不過這樣大概能讓你知道整個流程
我們明天說明怎麽安裝 InfluxDB & Telegraf