一 环境搭建

1.Prometheus

prometheus是Go语言实现监控存储的一套方案,可以通过把数据存储到prometheus,并且它无缝衔接k8s,其他特点包括以拉模式为主;黑盒白盒支持;单机性能强劲等。

  1. 去Prometheus官网(prometheus.io)下载安装包,prometheus-2.19.1.linux-amd64.tar.gz
  2. 解压安装包,tar xzvf prometheus-2.19.1.linux-amd64.tar.gz
  3. 移动到安装目录,mv prometheus-2.19.1.linux-amd64 /usr/local/prometheus
  4. 启动服务,./prometheus --config.file=prometheus.yml
  5. 测试访问:http://localhost:9090,图页面:/graph ,metrics页面: /metric

2.Grafana

Grafana是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知。

下载安装

wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.3.2-1.x86_64.rpm
sudo yum localinstall grafana-5.3.2-1.x86_64.rpm

安装完成后,输入命令 service grafana-server start 启动服务,访问地址:localhost:3000,3000为Grafana的默认侦听端口,系统第一次登录默认的用户名和密码为admin/admin,第一次登录之后会要求修改密码,之后界面如下:

3.JMX Exporter

它是Prometheus官方组件,作为Java Agent来提供本地JVM的metrics,并通过http暴露出来。这也是官方推荐的一种方式,可以获得进程的信息,比如CPU和内存使用情况。

Jmx_exporter是以代理的形式收集目标应用的jmx指标,这样做的好处在于无需对目标应用做任何的改动。运行JMX exporter的方式:    jmx_prometheus_javaagent 下载链接(0.12.0.jar)

java -javaagent:/usr/local/jmx/jmx_prometheus_javaagent-0.12.0.jar=3010:/usr/local/jmx/simple-config.yml -jar  XX.jar

JMX Exporter配置

simple-config.yml

  1. 创建jmx_exporter文件夹,mkdir /usr/local/prometheus/jmx_exporter
  2. 下载jmx_exporter的jar包,cd /usr/local/prometheus/jmx_exporter, wget
    https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.12.0/jmx_prometheus_javaagent-0.12.0.jar
  3. 创建修改simple-config.yml,
    ---
    wercaseOutputLabelNames: true
    lowercaseOutputName: true
    whitelistObjectNames: ["java.lang:type=OperatingSystem"]
    rules:
     - pattern: 'java.lang<type=OperatingSystem><>((?!process_cpu_time)\w+):'
       name: os_$1
       type: GAUGE
       attrNameSnakeCase: true

prometheus.yml

vim prometheus.yml,

    - job_name:'jvmmonitor'

      static_configs:
      - targets: ['localhost:3010']

重启Prometheus

4.Grafana配置模板

  1. 导入Dashboard,可以通过json模板导入,json模板下载链接(json)
  2. 登录Grafana,点击Import,name为prometheus.yml中配置的job_name上传json,数据源选择Prometheus,最后打开刚刚导入的Dashboard
  3. 准备一个springboot项目,通过命令运行项目,然后查看效果
java -javaagent:/usr/local/jmx/jmx_prometheus_javaagent-0.12.0.jar=3010:/usr/local/jmx/simple-config.yml -jar  springboot-mybatis-1.0-SNAPSHOT.jar

就这样,使用Prometheus+Grafana实现基于SpringBoot项目的JVM监控就完成了,接下来还可以基于Prometheus实现告警邮件提醒。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐