Prometheus监控主机进程

前言

客户端安装及配置

Premetheus服务端配置

模板导入

grafana效果图


前言

此场景主要是利用process-export监控主机的进程存活、资源占用率,防止进程挂掉导致服务崩溃

gitlab地址:GitHub - ncabatoff/process-exporter: Prometheus exporter that mines /proc to report on selected processes

tgz包:

process-exporter 下载地址

process-exporter-0.7.5.linux-amd64.tar.gz

客户端安装及配置

1.将包上传至/opt目录

2.tar -zxvf解压

3.mv重命名为 process-exporter

4.touch一个规则文件:process_name.yaml

如下截图:

编辑规则文件:

当前要监控的进程是vsftpd

vim /opt/process-exporter/process_name.yaml
process_names:
  - name: "{{.Matches}}"
    cmdline:
    - 'vsftpd' #唯一标识
  - name: "{{.Matches}}"
    cmdline:
    - 'httpd' #唯一标识

 规则参数解释:

 启动脚本配置:

[root@bogon /opt/process-exporter]# cat /usr/lib/systemd/system/process_exporter.service



 
[Unit]
Description=Prometheus exporter for processors metrics, written in Go with pluggable metric collectors.
Documentation=https://github.com/ncabatoff/process-exporter
After=network.target
  
[Service]
Type=simple
User=root
WorkingDirectory=/opt/process-exporter
ExecStart=/opt/process-exporter/process-exporter -config.path=/opt/process-exporter/process_name.yaml
Restart=on-failure
  
[Install]
WantedBy=multi-user.target

加入开机自启:

systemctl daemon-reload
systemctl start process_exporter
systemctl enable process_exporter

Premetheus服务端配置

添加targets,端口为9256

测试端口:established表示建立连接

添加进程告警规则:

  - alert: 进程重启告警
    expr: ceil(time() - max by(cluster, job, instance, groupname) (namedprocess_namegroup_oldest_start_time_seconds)) < 60
    for: 30s
    labels:
      label: alert_once
      severity: warning
    annotations:
      value: 进程 {{ $labels.groupname }} 在 {{ $value }} 秒前发生重启

  - alert: 进程退出告警
    expr: up{export="process_exporter"} == 0 or max by(cluster, job, instance, groupname) (delta(namedprocess_namegroup_oldest_start_time_seconds{groupname=~"^map.*"}[10d])) < 0
    for: 60s
    labels:
      severity: warning
    annotations:
      value: 进程 {{ $labels.export}} 已退出

重启prometheus,我这边是docker部署,所以方式是:

docker restart monitor_prometheus_1 

docker restart prometheus-alert

模板导入

Named processes by host | Grafana Labs

下载这个json后导入

grafana效果图

部署prometheus可以参考文章:

docker部署监控Prometheus+Grafana_docker安装prometheus grafana-CSDN博客

docker-compose部署Prometheus+Alertmanager并配置企业微信告警_alertmanager docker-compose-CSDN博客

Docker部署Prometheus+AlertManager实现邮件告警_docker部署的prometheus如何发送告警-CSDN博客

prometheus 监控告警系统(对接飞书告警)_prometheus-operator 飞书告警-CSDN博客

prometheus+alertmanager告警消息对接企业微信、飞书、钉钉_alertmanager对接企业微信-CSDN博客

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Prometheus可以通过JMX exporter监控JVM。JMX exporter是一个独立的Java进程,它能够连接到JVM中的JMX端口并将其暴露为Prometheus格式的指标。以下是使用JMX exporter监控JVM的一般步骤: 1. 在JVM中启用JMX端口。可以通过在JVM启动参数中添加如下参数来启用JMX端口: ``` -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.rmi.port=9999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false ``` 2. 下载并安装JMX exporter。可以从JMX exporter的GitHub页面下载最新版本的JAR文件。 3. 启动JMX exporter。可以使用以下命令启动JMX exporter: ``` java -javaagent:/path/to/jmx_prometheus_javaagent.jar=8080:/path/to/config.yaml -jar your-app.jar ``` 其中,`/path/to/jmx_prometheus_javaagent.jar`是JMX exporter的JAR文件路径,`8080`是JMX exporter暴露的端口号,`/path/to/config.yaml`是JMX exporter的配置文件路径,`your-app.jar`是你的应用程序的JAR文件路径。 4. 配置Prometheus。在Prometheus的配置文件中添加以下内容: ``` - job_name: jmx_exporter static_configs: - targets: - jmx_exporter_host:8080 ``` 其中,`jmx_exporter_host`是JMX exporter所在的主机名或IP地址。 5. 重新加载Prometheus的配置文件。可以使用以下命令重新加载Prometheus的配置文件: ``` killall -HUP prometheus ``` 6. 查看JVM指标。可以在Prometheus的Web界面或通过PromQL查询语言来查看JVM的指标。例如,以下查询可以查看JVM的堆内存使用情况: ``` jvm_memory_used_bytes{area="heap"} ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值