2 min read

Grafana 系列監控系列- vmagent 推送監測數據到Prometheus

圖一 透過vmagent推送架構圖

VMAgent官網


以往若想要將node-exporter 所取得的機器數據傳送至prometheus時,需要由prometheus 主動獲得,但前提是主機需要對外開放,如下圖二。

會遇到一些痛點例如:

  1. 白名單的設置及管理
  2. 有些機器沒有專屬的對外ip,只有內網
  3. 需要配很多資訊若機器數量很多會很混亂

所以才衍伸出如圖統一透過 vmagent 「主動」推送數據到prometheus,而所有配置都比照原生 yaml。

圖二 原生配置

主要會透過以下幾個檔案

GitHub - KeplerJhih/grafana
Contribute to KeplerJhih/grafana development by creating an account on GitHub.
tree -L 3
├── Makefile
├── config
│   └── vmagent
│       └── vmagent.yaml.example
├── docker-compose-exporter.yml
├── env.example

透過根目錄底下,即可透過寫好的檔案運行,要運行的指令依序:

  1. cp env.example .env 將prometheus endpoint放入。
  2. make exporter-node 運行 node-exporter
  3. make vmagent-edit 創建運行文件
# vmagent 配置文件
global:
  scrape_interval: 15s
  external_labels:
    environment: dev/test/master
    group: xxx
    account: 0000000
    vendor: byteplus/aws/..
    
scrape_configs:
  - job_name: 'vm'
    static_configs:
      - targets: ['localhost:9100']
        labels:
          service: vm
          name:

global 屬於全局配置,按照格式配置即可,以下的labels 是為了符合 Grafana 面板 ID:8919 ,配置完成後即可。


4. make vmagent-run 運行

  1. make vmagent-log 查看運行狀態