配置Node Exporter
- 安裝Node Exporter
我們依然選用Ubuntu 18.04作為監控目標
root@prometheous# mkdir node-exporter;cd node-exporter
root@prometheous:~/node-exporter# wget https://github.com/prometheus/node_exporter/releases/download/v1.0.0/node_exporter-1.0.0.linux-amd64.tar.gz
root@prometheous:~/node-exporter# tar xfz node_exporter-1.0.0.linux-amd64.tar.gz
root@prometheous:~/node-exporter# cp node_exporter-1.0.0.linux-amd64/node_exporter /usr/local/bin
root@prometheous:~/node-exporter# node_exporter --version
node_exporter, version 1.0.0 (branch: HEAD, revision: b9c96706a7425383902b6143d097cf6d7cfd1960)
build user: root@3e55cc20ccc0
build date: 20200526-06:01:48
go version: go1.14.3
- 配置textfile收集器
有時想給主機增加一些自定義的指標,比如物理位置和用途等,我們需要暴露一些自定義的指標,這是textfile收集器將起到作用。
這里我們定義了主機的角色和DataCenter的名稱,你也可以根據自己的需求設定如添加Rack等信息
root@prometheous:~/node-exporter# mkdir textfile
root@prometheous:~/node-exporter# echo 'metadata{role="Nginx",datacenter="labstage"} 1' | tee .textfile/metadata.prom
- 配置systemd收集器
systemd收集器記錄了systemd中的服務和系統狀態,默認收集所有內容。如果只想收集部分關鍵的業務,我們可以添加白名單。
可以運行下面的命令查看systemd下的服務:
root@prometheous:~/node-exporter# systemctl --type=service --state=running
- 運行Node Export服務
我們為textfile收集器指定目錄以便查找指標,然后啟用了systemd收集器并使用白名單過濾待監控的服務
root@prometheous:~/node-exporter# node_exporter --collector.textfile.directory ./textfile/ --collector.systemd.unit-whitelist="(ssh|taniumclient)"
抓取 Node Exporter
為了抓取Node Exporter我們需要修改Prometheus配置文件
- 過濾收集器
Node Expoerter可以返回很多指標,除了在node exporter上限制運行哪些收集器外,我們還可以在Prometheus上通過添加特定收集器列表來實現,這對無法控制正在抓取的主機配置非常有用。
可以過濾的內容參考如下鏈接:
https://github.com/prometheus/node_exporter
- 創建抓取job
要獲取新數據,需要為prometheus.yml添加另外一個新的job,結合過濾收集器,新的配置文件如下:
root@prometheous:/etc/prometheous#cat prometheus.yml
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'linux_node'
static_configs:
- targets: ['10.110.204.54:9090']
params:labels:
group: 'production'
collect[]:
- cpu
- meminfo
- diskstats
- netdev
- netstat
- filesystem
- systemd
重新加載prometheus.yml文件
root@prometheous:~/prometheous# prometheus --config.file /etc/prometheous/prometheus.yml &
使用PromQL
PromQL是Prometheus自帶的查詢語言,有三種數據類型
- 即時向量:數據采樣的時間序列
- 范圍向量:包含特定時間范圍內的數據的一組時間序列
- 標量:具體的值
我們可以通過在瀏覽器上的Excute按鈕旁邊輸入相關的內容進行查詢,可以參考下面鏈接
https://prometheus.io/docs/prometheus/latest/querying/basics/
下圖中我們通過其labels即{group="production"}的查詢結果