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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!