使用process exporter監控應用

2021-10-07 02:38:22 字數 3843 閱讀 8063

node-exporter是基於prometheus+grafana的程序監控程式

安裝prometheus+grafana

sudo

mkdir /opt/process-exporter

cd /opt/process-exporter/

sudo vim process-exporter.yml

node-exporter.yml配置

yml配置說明

組名選擇器

配置說明:

每一項都process_names提供了用於識別和命名過程的方法。可選name標記定義用於命名匹配過程的模板;如果未指定,則name預設為}。

可用的模板變數:

} 包含原始可執行檔案的基本名稱,即 /proc//stat

} 包含可執行檔案的基本名稱

} 包含可執行檔案的標準路徑

} 包含有效使用者的使用者名稱

} 地圖包含所有因應用cmdline正規表示式而產生的匹配項

}包含過程的pid。請注意,使用pid意味著該組將僅包含乙個程序。

}包含過程的開始時間。與pid結合使用時,這很有用,因為pid會隨著時間的推移而被重用。

不建議使用pid或氣starttime::這幾乎不是您想要的,並且可能會導致基數過高,而prometheus會遇到麻煩。

預設配置:

process_names:

- name: "}"

cmdline:

- '.+'

程序選擇器

每個專案中process_names必須包含乙個或多個選擇(comm,exe 或cmdline); 如果存在多個選擇器,則它們必須全部匹配。每個選擇是乙個字串列表來匹配過程的comm,ar**[0]或在的情況下cmdline,乙個正規表示式應用到命令列。cmdline regexp使用go語法。

對於comm和exe,字串列表是乙個or,這意味著與任何字串匹配的任何程序都將新增到該項目的組中。

對於cmdline,正規表示式列表為and,表示它們都必須匹配。regexp中的任何捕獲組都必須使用該?p選項為捕獲分配乙個名稱,該名稱用於填充.matches。

process_names:

# comm is the second field of /proc//stat minus parens.

# it is the base executable name, truncated at 15 chars.

# it cannot be modified by the program, unlike exe.

- comm:

- bash

# exe is ar**[0]. if no slashes, only basename of ar**[0] need match.

# if exe contains slashes, ar**[0] must match exactly.

- exe:

- postgres

- /usr/local/bin/prometheus

# each must match, and any captures are added to the .matches map.

- name: "}:}"

exe:

- /usr/local/bin/process-exporter

cmdline:

- -config.path\s+(?p\s+)

例如

process_names:

- comm:

- chromium-browse

- bash

- prometheus

- **im

- exe:

- /sbin/upstart

cmdline:

- --user

name: upstart:-user

編輯配置檔案

process_names:

- name: "}"

cmdline:

- 'greenplum'

- exe:

- /usr/local/greenplum-db-6.7.0/bin/postgres

docker方式啟動

docker run -itd --rm -p 9256:9256 --privileged -v /proc:/host/proc -v /opt/process-exporter:/config ncabatoff/process-exporter --procfs /host/proc -config.path config/process-exporter.yml
啟動後登陸**ip:9256看是否可以訪問

在prometheus的配置檔案中新增剛剛配置的位址

- job_name: sdw2-process

static_configs:

- targets: [

'10.0.61.43:9256'

]

put  /-/reload

post /-/reload

或者執行命令

ps -ef |

grep prometheus

kill -hup [pid]

登陸prometheus在target中檢視是否成功連線

import dashboard 匯入模板。模板 id 249,至此就配置完成了,開啟配置的dashboard看是否有對程序的監控

使用ps命令搜尋機器上的greenplum節點

gpadmin   2699     1  0 13:26 ?        00:00:00 /usr/local/greenplum-db-6.7.0/bin/postgres -d /data/data2/primary/gpseg3 -p 6001

gpadmin 2700 1 0 13:26 ? 00:00:02 /usr/local/greenplum-db-6.7.0/bin/postgres -d /data/data1/primary/gpseg2 -p 6000

gpadmin 2703 1 0 13:26 ? 00:00:02 /usr/local/greenplum-db-6.7.0/bin/postgres -d /data/data2/mirror/gpseg1 -p 7001

gpadmin 2704 1 0 13:26 ? 00:00:00 /usr/local/greenplum-db-6.7.0/bin/postgres -d /data/data1/mirror/gpseg0 -p 7000

配置process-exporter

process_names:

- name: "}"

cmdline:

- 'postgres'

- exe:

- /usr/local/greenplum-db-6.7.0/bin/postgres -d /data/data2/primary/gpseg3 -p 6001

- /usr/local/greenplum-db-6.7.0/bin/postgres -d /data/data1/primary/gpseg2 -p 6000

使用docker命令停止process-exporter的容器,因為有–rm容器會自動銷毀,重新run乙個process-exporter

使用GraphEdit使用

1 註冊元件。其實乙個filter就是乙個com元件,所以使用之前需要註冊,可以有兩種方法對元件進行註冊。1.直接使用命令。命令列下輸入 regsvr32 hqtlystd.ax 編譯之後你會在工程目錄下的debug中找到hqtlystd.ax,這個就是要用的filter 即可註冊成功。2.vc6....

MySQL使用學習使用 mysql學習使用

1 mysql學習 1 安裝 ubuntu下直接安裝 apt get install mysql server 2 檢查伺服器是否啟動 sudo netstat tap grep mysql,如果啟動成功,出現以下資訊 tcp00localhost.localdomain mysql listen ...

學習使用CSDN markdown使用

建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下mar...