prometheus進程監控


插件地址:https://github.com/ncabatoff/process-exporter

1、安裝部署

cd /usr/local
wget https://github.com/ncabatoff/process-exporter/releases/download/v0.7.2/process-exporter-0.7.2.linux-amd64.tar.gz
tar -zxvf process-exporter-0.7.2.linux-amd64.tar.gz
mv process-exporter-0.7.2.linux-amd process-exporter

2、創建啟動腳本

vi /usr/lib/systemd/system/process-exporter.service
[Unit]
Description=redis_exporter
Documentation=https://github.com/ncabatoff/process-exporter
After=network.target

[Service]
Type=simple
User=prometheus
ExecStart=/usr/local/process-exporter/process-exporter -config.path /usr/local/process-exporter/process-exporter.yml
Restart=on-failure

[Install]
WantedBy=multi-user.target

啟動服務

systemctl daemon-reload
systemctl start redis_exporter
systemctl status redis_exporter
systemctl enable redis_exporter
ss -tulnp | grep 9256

編寫配置文件

process_names:

- matcher1
- matcher2

例如:監控所有的服務進程

 process_names:
   - name: "{{.Comm}}"
     cmdline:
       - '.+'

監控進程名為test程序

    process_names:
      - name: "{{.Matches}}"
        cmdline:
        - 'test'

配置模板選項如下:

{{.Comm}} 包含原始可執行文件的basename,/proc//stat 中的換句話說,2nd 字段

{{.ExeBase}} 包含可執行文件的basename

{{.ExeFull}} 包含可執行文件的完全限定路徑

{{.Username}} 包含有效用戶的用戶名

{{.Matches}} 映射包含應用命令行tlb所產生的所有匹配項

       process_names中的每個項目都必須包含一個或多個選擇器(comm,exe或cmdline), 如果存在多個選擇器,則它們必須全部匹配。 每個選擇器都是一個字符串列表,用於與進程的comm,argv [0]匹配;對於cmdline,則是一個適用於命令行的正則表達式。 cmdline regexp使用Go語法。

     對於comm和exe,字符串列表是一個OR,這意味着與任何字符串匹配的任何進程都將添加到該項目的組中。

     對於cmdline,正則表達式列表為AND,表示它們都必須匹配。 正則表達式中的任何捕獲組都必須使用?P <name>選項為捕獲分配一個名稱,該名稱用於填充.Matches。

驗證

curl localhost:9256/metrics

例如:> ps -ef | grep redis 

redis 771 1 0 Jun05 ? 00:45:49 /usr/bin/redis-server *:6379

{{.Comm}} groupname="redis-server" exe或者sh文件名稱
{{.ExeBase}} groupname="redis-server *:6379" /
{{.ExeFull}} groupname="redis-server *:6379" ps中進程完成信息
{{.Username}} groupname="redis" 使用進程所屬的用戶進行分組
{{.Matches}} groupname="map[:redis]" 表示匹配到關鍵字"redis"

 

 

 

 

 

 

Grafana圖表顯示:

process-exporter對應的dashboard為:https://grafana.com/grafana/dashboards/249

計算

namedprocess_namegroup_num_threads


免責聲明!

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



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