Prometheus監控consul


一 consul監控項

  • Transaction timing
  • Leadership changes
  • Autopilot
  • Garbage collection

二 consul服務監控

  • File descriptors
  • CPU usage
  • Network activity
  • Disk activity
  • Memory usage

三 監控可用指標

官方地址:https://www.consul.io/docs/agent/telemetry

指標名稱 描述
consul.kvs.apply 測量完成 KV 存儲更新所需的時間。
consul.txn.apply 測量應用事務操作所花費的時間。
consul.raft.apply 計算間隔內發生的 Raft 事務的數量。
consul.raft.commitTime 測量將新條目提交到領導者上的 Raft 日志所需的時間。
consul.raft.leader.lastContact 在檢查其領導者租用時,測量自領導者最后一次能夠聯系跟隨者節點以來的時間。
consul.raft.state.candidate 當 Consul 服務器開始選舉過程時增加。
consul.raft.state.leader 當 Consul 服務器成為領導者時增加。
consul.autopilot.healthy 跟蹤本地服務器集群的整體健康狀況。如果所有服務器都被自動駕駛儀認為是健康的,這將被設置為 1。如果有任何服務器不健康,這將是 0。
consul.autopilot.failure_tolerance 跟蹤本地服務器集群在繼續運行時可能丟失的投票服務器數量。
consul.runtime.total_gc_pause_ns 自 Consul 啟動以來,stop-the-world 垃圾收集 (GC) 暫停消耗的納秒數。
linux_sysctl_fs.file-nr 主機上所有進程使用的文件句柄數。
linux_sysctl_fs.file-max 可用文件句柄的總數。
cpu.user_cpu 用戶進程(例如 Vault 或 Consul)使用的 CPU 百分比。
cpu.iowait_cpu 等待 I/O 任務完成所花費的 CPU 時間百分比。
net.bytes_recv 每個網絡接口上接收到的字節數。
net.bytes_sent 每個網絡接口上傳輸的字節數。
diskio.read_bytes 從每個塊設備讀取的字節數。
diskio.write_bytes 寫入每個塊設備的字節數。
diskio.read_time 從磁盤讀取所花費的時間,以累積毫秒為單位。
diskio.write_time 寫入磁盤所花費的時間,以累積毫秒為單位。
consul.runtime.alloc_bytes 測量 Consul 進程分配的字節數。
consul.runtime.sys_bytes 從操作系統獲得的內存總字節數。
mem.total 服務器上可用的物理內存 (RAM) 總量。
mem.used_percent 正在使用的物理內存的百分比。
swap.used_percent 正在使用的交換空間的百分比。

四 安裝 consul exporter

4.1 下載並安裝consul exporter

root@consul-01:~# wget https://github.com/prometheus/consul_exporter/releases/download/v0.7.1/consul_exporter-0.7.1.linux-amd64.tar.gz
root@consul-01:~# tar xf consul_exporter-0.7.1.linux-amd64 -C /usr/local
root@consul-01:~# ln -sv /usr/local/consul_exporter-0.7.1.linux-amd64 /usr/local/consul_exporter

4.2 consul exporter使用幫助

-h, --help #顯示上下文相關的幫助(也可以嘗試 --help-long 和 --help-man)。
      --web.listen-address=":9107" #Address 偵聽 Web 界面和遙測。
      --web.telemetry-path="/metrics" #暴露指標的路徑。
      --consul.health-summary #為每個服務實例生成一個健康摘要。需要 n+1 個查詢來收集所有信息。
      --kv.prefix="" #Prefix 從中公開鍵/值對。
      --kv.filter=".*" #Regex 確定要公開的鍵。
      --consul.server="http://localhost:8500" #Consul 服務器或代理的HTTP API 地址。 (以 https:// 為前綴以通過 HTTPS 連接)
      --consul.ca-file="" #用於驗證服務器證書真實性的 PEM 編碼證書頒發機構的文件路徑。
      --consul.cert-file="" #PEM 編碼證書的文件路徑,與私鑰一起使用以驗證出口商的真實性。
      --consul.key-file="" #PEM 編碼私鑰的文件路徑,與證書一起使用以驗證出口商的真實性。
      --consul.server-name="" #當提供時,這將覆蓋 TLS 證書的主機名。它可用於確保證書名稱與我們聲明的主機名匹配。
      --consul.timeout=500ms #Consul API 的 HTTP 請求超時。
      --consul.insecure #禁用 TLS 主機驗證。
      --consul.request-limit=0 #限制consul的最大並發請求數,0表示沒有限制。
      --consul.allow_stale #允許任何 Consul 服務器(非領導者)為讀取服務。
      --consul.require_consistent #強制讀取完全一致。
      --log.level=info #僅記錄具有給定嚴重性或更高級別的消息。其中之一:[調試、信息、警告、錯誤]
      --log.format=logfmt #日志信息的輸出格式。其中之一:[logfmt, json]

4.3 准備consul_exporter.service文件

root@consul-01:~# cat /lib/systemd/system/consul_exporter.service
[Unit]
Description=consul_exporter
Documentation=https://prometheus.io
After=network.target

[Service]
type=simple
ExecStart=/usr/local/consul_exporter/consul_exporter 
ExecReload=/bin/kill -HUP $MAINPID
TimeoutStopSec=20s
Restart=always


[Install]
WantedBy=multi-user.target

4.4 設置開機啟動

root@consul-01:~# systemctl enable consul_exporter
Created symlink /etc/systemd/system/multi-user.target.wants/consul_exporter.service → /lib/systemd/system/consul_exporter.service.
root@consul-01:~# systemctl start consul_exporter
root@consul-01:~# systemctl status consul_exporter
● consul_exporter.service - consul_exporter
     Loaded: loaded (/lib/systemd/system/consul_exporter.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2021-11-25 19:57:00 CST; 3s ago
       Docs: https://prometheus.io
   Main PID: 23638 (consul_exporter)
      Tasks: 4 (limit: 2245)
     Memory: 1.5M
     CGroup: /system.slice/consul_exporter.service
             └─23638 /usr/local/consul_exporter/consul_exporter

Nov 25 19:57:00 consul-01 systemd[1]: Started consul_exporter.
Nov 25 19:57:00 consul-01 consul_exporter[23638]: level=info ts=2021-11-25T11:57:00.699Z caller=consul_exporter.go:486 msg="Starting consul_exporter" version="(version=0.7.1, branch=HEAD, revision=ae46e2ea980>
Nov 25 19:57:00 consul-01 consul_exporter[23638]: level=info ts=2021-11-25T11:57:00.699Z caller=consul_exporter.go:487 build_context="(go=go1.14.6, user=root@fdd571c00696, date=20200721-15:34:41)"
Nov 25 19:57:00 consul-01 consul_exporter[23638]: level=info ts=2021-11-25T11:57:00.700Z caller=consul_exporter.go:538 msg="Listening on address" address=:9107

4.5  驗證consul exporter web界面

五 Prometheus添加consul exporter

5.1 修改Prometheus.yml文件

~# cat /usr/local/prometheus/prometheus.yml

- job_name: "consul-node"
    static_configs:
      - targets: ['192.168.174.103:9107']

5.2 重啟Prometheus服務

~# systemctl restart prometheus.service 

5.3 驗證Prometheus web界面


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM