Prometheus
Prometheus 是一個由 Grafana Lab 開發並維護的開源監控系統,用於記錄和查詢系統的監控資料。Prometheus 透過 HTTP 協定來收集監控資料,並且提供一個簡單的查詢語言 PromQL 來查詢監控資料。
Prometheus 是一個時間序列資料庫
Use Prometheus to Get Node Exporter Metrics and Send to Grafana Cloud
安裝 Prometheus,以便收集 Node Exporter 的監控資料,並將監控的資料送往 Grafana Cloud 的 Prometheus。
Install Prometheus
新增一個 prometheus 使用者,並且不要建立家目錄,也不要讓他可以登入。
sudo useradd --no-create-home --shell /bin/false prometheus
下載 Prometheus 的檔案並解壓縮。
wget https://github.com/prometheus/prometheus/releases/download/v2.45.0/prometheus-2.45.0.linux-arm64.tar.gz
tar xvfz prometheus-2.45.0.linux-arm64.tar.gz
將 Prometheus 的執行檔案複製到 /usr/local/bin/ 目錄下。
sudo cp prometheus-2.45.0.linux-arm64/prometheus /usr/local/bin/
sudo cp prometheus-2.45.0.linux-arm64/promtool /usr/local/bin/
將 Prometheus 的設定檔案複製到 /etc/prometheus/ 目錄下。
sudo cp -r prometheus-2.45.0.linux-arm64/consoles /etc/prometheus
sudo cp -r prometheus-2.45.0.linux-arm64/console_libraries /etc/prometheus
sudo chown -R prometheus:prometheus /etc/prometheus/consoles
sudo chown -R prometheus:prometheus /etc/prometheus/console_libraries
刪除 Prometheus 的壓縮檔案和解壓縮後的目錄。
rm -rf prometheus-2.45.0.linux-arm64.tar.gz prometheus-2.45.0.linux-arm64
Create Prometheus Service
建立一個 service 檔案,讓 Prometheus 可以在背景執行。
sudo touch /etc/systemd/system/prometheus.service
sudo vim /etc/systemd/system/prometheus.service
Service 檔案內容如下:
[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
ExecStart=/usr/local/bin/prometheus \
--config.file=/etc/prometheus/prometheus.yml \
--storage.tsdb.path=/var/lib/prometheus/ \
--web.console.templates=/etc/prometheus/consoles \
--web.console.libraries=/etc/prometheus/console_libraries
Restart=always
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl start prometheus
Prometheus Configuration
在 /etc/prometheus/ 目錄下建立一個 prometheus.yml 檔案,並且將內容貼上。
global:
scrape_interval: 60s
scrape_configs:
- job_name: k3s
static_configs:
- targets: ["10.0.1.10:9100", "10.0.1.11:9100", "10.0.1.12:9100"]
remote_write:
- url: "<grafana cloud prometheus>"
basic_auth:
username: <username>
password: <password>
這樣 prometheus 就可以收集到 node exporter 的資料,並將 node exporter 的資料送往 Grafana Cloud 的 Prometheus。
如果你想移除從 exporter 取得的部分 metrics 資料,可以使用 metric_relabel_configs。
scrape_configs:
- job_name: k3s
static_configs:
- targets: ["10.0.1.10:9100", "10.0.1.11:9100", "10.0.1.12:9100"]
metric_relabel_configs:
- source_labels: [__name__]
regex: "^(go_).*"
action: drop