Prometheus+Grafana 可视化监控JVM&Tomcat&Widnows服务器

说明:

Prometheus

是一个服务监控系统。它可以在给定的时间间隔从配置的目标收集监控指标,并在观察到指定条件时触发警报;

Grafana:

一个将监控的各项指标可视化的工具,其中有很多dashbord,即仪表盘,用来展示监控的各项指标数据;

下载地址:

Prometheus:https://prometheus.io/download/

Grafana:https://grafana.com/grafana/download

主要实现:(均已测试)

1:SpringBoot集成Prometheus,监控Java项目运行;

2:Prometheus监控Tomcat;

3:Prometheus监控Windows服务器(开发环境监控Windows10;生成环境监控Windows Server 

      2008均已测试);

一:

SpringBoot集成Prometheus监控Java项目:

准备工作:

自行下载Prometheus及Grafana;

步骤:

1:下载好的Prometheus及Grafana;

2:SpringBoot项目集成监控

依赖:


    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.0</version>
    </parent>

    <dependencies>
         <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
          </dependency>

        <!--监控报警-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-prometheus</artifactId>
        </dependency>
    </dependencies>

application.yml配置:

server:
  port: 80
# JVM监控
management:
  endpoints:
    web:
      exposure:
        include: '*'
      base-path: /actuator # 默认actuator
  metrics:
    tags:
      application: App # 启动类名称

配置文件:

import io.micrometer.core.instrument.MeterRegistry;
import org.springframework.boot.actuate.autoconfigure.metrics.MeterRegistryCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MicrometerConfiguration {
    @Bean
    MeterRegistryCustomizer meterRegistryCustomizer(MeterRegistry meterRegistry) {
        return meterRegistry1 -> {
          meterRegistry.config() // 注册
          .commonTags("application", "App"); // App:为启动类名称
        };
    }
}

3:修改Prometheus中的prometheus.yml文件,指定监控对象:

# 此处只贴了配置部分,该配置文件其它部分不需要动
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: "prometheus"

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
      - targets: ["localhost:9090"]
      
  - job_name: 'manager-api'
    scrape_interval: 5s
    metrics_path: '/actuator/prometheus' # 指标获取路径
    static_configs:
      - targets: ["IP地址:80"] # 80 为你Java项目的启动端口

4:启动Prometheus&Grafana&Java项目

        Prometheus(启动时默认读取prometheus.yml文件,默认端口9090)

                安装目录->prometheus.exe

        Grafana(默认端口3000)

                安装目录->bin->grafana-server.exe 

5:查看监控节点启动情况:

 地址: http://IP:9090/targets

6:到Grafana配置数据源及选择合适的dashboard

地址:http://IP:3000/

第一次访问需要你输入账户/密码,默认账户/密码(admin/admin)

 ①:添加数据源

②:选择并配置数据源

 ③:测试通过后选择dashboard

 

完成:

 更多dashboard地址:

 https://grafana.com/grafana/dashboards/

二:

Prometheus监控Tomcat

准备:

        1:tomcat

        2:jmx_prometheus_javaagent-0.3.1.jar(自行下载)

        3:tomcat.yml(自行新建)

步骤:

1:tomcat.yml内容:(不同的dashboard可能略有不同,详情参考官网)

---   
lowercaseOutputLabelNames: true
lowercaseOutputName: true
whitelistObjectNames: ["java.lang:type=OperatingSystem", "Catalina:*"]
blacklistObjectNames: []
rules:
  - pattern: 'Catalina<type=Server><>serverInfo: (.+)'
    name: tomcat_serverinfo
    value: 1
    labels:
      serverInfo: "$1"
    type: COUNTER
  - pattern: 'Catalina<type=GlobalRequestProcessor, name=\"(\w+-\w+)-(\d+)\"><>(\w+):'
    name: tomcat_$3_total
    labels:
      port: "$2"
      protocol: "$1"
    help: Tomcat global $3
    type: COUNTER
  - pattern: 'Catalina<j2eeType=Servlet, WebModule=//([-a-zA-Z0-9+&@#/%?=~_|!:.,;]*[-a-zA-Z0-9+&@#/%=~_|]), name=([-a-zA-Z0-9+/$%~_-|!.]*), J2EEApplication=none, J2EEServer=none><>(requestCount|processingTime|errorCount):'
    name: tomcat_servlet_$3_total
    labels:
      module: "$1"
      servlet: "$2"
    help: Tomcat servlet $3 total
    type: COUNTER
  - pattern: 'Catalina<type=ThreadPool, name="(\w+-\w+)-(\d+)"><>(currentThreadCount|currentThreadsBusy|keepAliveCount|connectionCount|acceptCount|acceptorThreadCount|pollerThreadCount|maxThreads|minSpareThreads):'
    name: tomcat_threadpool_$3
    labels:
      port: "$2"
      protocol: "$1"
    help: Tomcat threadpool $3
    type: GAUGE
  - pattern: 'Catalina<type=Manager, host=([-a-zA-Z0-9+&@#/%?=~_|!:.,;]*[-a-zA-Z0-9+&@#/%=~_|]), context=([-a-zA-Z0-9+/$%~_-|!.]*)><>(processingTime|sessionCounter|rejectedSessions|expiredSessions):'
    name: tomcat_session_$3_total
    labels:
      context: "$2"
      host: "$1"
    help: Tomcat session $3 total
    type: COUNTER   

2:将tomcat.yml和jmx_prometheus_javaagent-0.3.1.jar放置于tomcat的bin目录中(无硬性要求只   

     是在配置catalina.bat时更方便一些)

3:修改tomcat的catalina.bat文件

set "JAVA_OPTS=%JAVA_OPTS% -javaagent:.\jmx_prometheus_javaagent-0.3.1.jar=9000:.\tomcat.yml"

4:在Prometheus的安装目录中额外再新增tomcat.yml并修改prometheus.yml文件:

 新增tomcat.yml文件:

- targets:
  - localhost:9000 # catalina.bat中配置的指标收集器端口
  labels:
    idc: js_company
    service: tomcat

修改prometheus.yml文件:

在prometheus.yml中添加关于监控的tomcat的配置;

  - job_name: 'tomcat'
    file_sd_configs:
    - files: ['./tomcat.yml']
      refresh_interval: 180s

5:启动tomcat&查看Prometheus中关于tomcat节点的情况&在Grafana中配置数据源并选择Tomcat

     的dashboard;

 6:tomcat(dashboard ID:8704)

7:完成:

三:

Prometheus监控Windows服务器

准备:

windows_exporter-0.16.0-amd64.exe(自行安装,默认端口9182) 
 

步骤:

1:启动 windows_exporter-0.16.0-amd64.exe

 查看启动情况:

http://IP:9182/metrics

2:配置prometheus.yml文件,增加对Windows的监听

  - job_name: 'windows'
    scrape_interval: 10s
    scrape_timeout: 10s
    static_configs:
      - targets: ['localhost:9182']

3:查看该节点状态:

 4:在Grafana中配置数据源&选择合适的dashboard:(Windows dashboardID:10467)

 5:完成

路漫漫其修远兮,吾将上下而求索;

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值