grafana+promethus+jmx_export监控jvm

grafana+promethus+jmx_export监控jvm

使用一个小demo模拟jvm进程,并开启jmx端口8077

public class Hello{
/**
 -Dcom.sun.management.jmxremote=true -Djava.rmi.server.hostname=192.168.129.112 -Dcom.sun.management.jmxremote.port=8077 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
 */
    public static void main(String[] args)
        throws InterruptedException
    {
        Thread.sleep(3 * 3600 * 1000);
    }    
}
  1. 下载并启动jmx_export组件

    下载https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.3.1/jmx_prometheus_javaagent-0.3.1.jar

    本文使用0.3.1版本,因为grafana里现成的面板模板很多都是基于老版本的,新版本修改了标签名称会无法在grafana里显示出来。

    两种启动方式,两种jar

    官网有使用说明https://github.com/prometheus/jmx_exporter

    一、和程序一起启动(官网推荐)

    在程序启动命令中增加-javaagent参数指定jar、端口为12345和config.yaml

    -javaagent:/root/jmx_prometheus_javaagent-0.3.1.jar=12345:/root/config.yaml
    

    最小config.yaml如下

    rules:
    - pattern: ".*"
    

    完整命令如下:

    java -Dcom.sun.management.jmxremote=true -Djava.rmi.server.hostname=192.168.129.112 -Dcom.sun.management.jmxremote.port=8078 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticatealse -javaagent:/root/jmx_prometheus_javaagent-0.3.1.jar=12345:/root/config.yaml Hello 
    

    二、程序外部单独httpserver方式启动

    单独启动jmx_export为http然后将jvm程序的jmx端口配置在config.yaml中

    java -jar jmx_prometheus_httpserver-0.3.1.jar 12345 config.yaml
    

    最小config.yaml

    localhost:8077
    rules:
    - pattern: ".*"
    

    验证jmx_export是否成功配置

    访问http://192.168.129.112:12345 ,查看是否有metrics数据

  2. 配置promethus

    vi prometheus.yml增加job配置

   - job_name: 'jmxtest'
     scrape_interval: 5s
     static_configs:
     - targets: ['192.168.129.112:12345']

重启promethus后,测试是否能查询到jmx数据
在这里插入图片描述
3. # 在grafana导入监控面板
在这里插入图片描述
在这里插入图片描述
job要填写promethus里配置的job_name
最终效果在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
答:以下是一个示例的docker-compose.yml文件,用于启动Prometheus和Grafana监控一个或多个应用程序: ``` version: '3' services: prometheus: image: prom/prometheus container_name: prometheus ports: - "9090:9090" volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml command: - '--config.file=/etc/prometheus/prometheus.yml' restart: always grafana: image: grafana/grafana container_name: grafana depends_on: - prometheus ports: - "3000:3000" environment: GF_SERVER_ROOT_URL: http://localhost:3000 GF_SECURITY_ADMIN_USER: admin GF_SECURITY_ADMIN_PASSWORD: admin volumes: - ./grafana-data:/var/lib/grafana restart: always ``` 在该docker-compose.yml文件中,我们创建了两个服务:prometheus和grafanaPrometheus服务使用Prometheus Docker映像,并将端口映射到9090。它还将/prometheus.yml文件作为挂载卷传递给容器。在启动容器时,我们使用命令行参数来指定/config.file=/etc/prometheus/prometheus.yml。 Grafana服务程序使用Grafana Docker映像,并依赖于prometheus服务。Grafana服务映射端口3000,并将以下环境变量传递给容器:GF_SERVER_ROOT_URL:使用localhost:3000 (在该容器中内部)作为grafana的根URL,GF_SECURITY_ADMIN_USER和GF_SECURITY_ADMIN_PASSWORD管理Grafana管理员的凭据。此服务还挂载了grafana-data目录,以便可以在重启容器时保留所有Grafana的设置。 最后,我们定义了restart: always参数以确保容器在退出时自动重新启动。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值