本文内容基于 k8s部署prometheus + grafana。
- process-exporter介绍:
在 prometheus 中,process-exporter 可以用来检测所选进程的存活状态。
用法:
process-exporter [options] -config.path filename.yml
如果选择监控的进程并将其分组,可以提供命令行参数或使用 yaml 配置文件。推荐通过 -config.path
指定配置文件。
-config.path
yaml 文件的常规格式是顶级 process_names
部分,其中包含名称匹配器列表:
process_names:
- matcher1
- matcher2
...
- matcherN
deb/rpm 软件包附带的默认配置为:
process_names:
- name: "{
{.Comm}}"
cmdline:
- '.+'
一个进程仅可能属于一个组:即使匹配多个,也只会归属于第一个匹配的 groupname
组。
其中的每一项 process_names
都提供了用于识别和命名过程的方法。可选 name
标签定义用于命名匹配过程的模板;如果未指定,则 name
默认为 {
{.ExeBase}}
。
可用的模板变量:
{
{.Comm}} 包含原始可执行文件的基本名称,即 /proc/<pid>/stat
{
{.ExeBase}} 包含可执行文件的基本名称
{
{.ExeFull}} 包含可执行文件的标准路径
{
{.Username}} 包含有效用户的用户名
{
{.Matches}} 包含所有由于应用cmdline正则表达式而产生的匹配项
{
{.PID}} 包含过程的PID。请注意,使用PID意味着该组将仅包含一个进程
{
{.StartTime}} 包含过程的开始时间。与PID结合使用时,这很有用,因为PID会随着时间的推移而被重用
不建议使用 PID
或 StartTime
:这并不会得到想要的结果,并且可能会导致 prometheus 遇到麻烦——metrics 基数过高。
process_exporter 配置参考:process-exporter
- 安装process-exporter:
vim process.sh
#!/bin/bash
#用于安装process_exporter
PROCESS_VER=0.7.5
PROCESS_DIR=/usr/local/process-exporter
[ ! -d /software/ ] && mkdir /software
install_process() {
cd /software
yum