一、前提

1、tomcat作为java项目首选的部署容器。但是,在做测试,或者是在运维管理生产服务器的时候,想要监控tomcat的实时运行情况,却不是那么容易的

2、grafana(已安装和prometheus在同一台)-->前端数据展示

3、prometheus(已安装)-->实时数据库存储数据

二、获取jvm_exporter

(1)浏览器访问:

https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/

(2)页面中显示了多个版本,可以根据自己需要选择版本,找到你需要的jar包下载地址:

https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.14.0/jmx_prometheus_javaagent-0.14.0.jar

(3)进入tomcat服务器,执行下面命令,下载jvm_exporter:

wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.14.0/jmx_prometheus_javaagent-0.14.0.jar

(4)拷贝下载的jar包,到tomcat的bin文件夹中

三、配置tomcat.yaml文件

在tomcat的bin文件夹下,新建tomcat.yaml文件,黏贴

---
lowercaseOutputLabelNames: true
lowercaseOutputName: true
rules:
- 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|maxTime|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|pollerThreadCount|connectionCount):'
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
- pattern: ".*"

四、修改catalina.sh文件

进入tomcat的bin文件夹,编辑catalina.sh文件,增加如下:

JAVA_OPTS="-javaagent:./jmx_prometheus_javaagent-0.14.0.jar=3088:./tomcat.yaml"

# jmx_prometheus_javaagent-0.14.0.jar 这个根据你自己下载的jvm_export修改
# 30188 监控的端口,自行设置

五、验证tomcat监控

执行./startup.sh 看能否正常启动, 如果没有报错,可以执行

curl -s http://localhost:3088

能正常返回信息,就说明监控正常

六、修改prometheus.yml文件

在prometheus解压后的文件夹中,找到prometheus.yml文件,编辑,在最后面添加

vim prometheus.yml

- job_name: 'tomcat_export'
static_configs:
- targets: ['被监控机器ip:3088']

# 30188是前面在tomcat中配置的监控端口

注意:如果被监控的服务器和 安装了prometheus的机器不是同一台,还需要保证机器间网络和防火墙通畅

七、启动prometheus

1、在prometheus解压的文件夹中,执行:./prometheus

2、验证prometheus

在浏览器中访问:http://prometheus机器ip:9090

注意:prometheus机器的防火墙要开放9090端口,浏览器才能正常访问

想查看prometheus监控jvm信息,可以在界面中执行,jvm_info

八、启动grafana

1、在安装了grafana的机器上,执行:systemctl restart grafana-server

2、配置grafana+prometheus

浏览器访问 http://grafana机器ip:3000, 用admin\admin登录

添加datasource,选择prometheus,配置信息,保存

引入模板

可以输入:8563

或者可以用:3457

grafana+prometheus+tomcat 监控tomcat的更多相关文章

  1. Grafana+Prometheus系统监控之webhook

    概述 Webhook是一个API概念,并且变得越来越流行.我们能用事件描述的事物越多,webhook的作用范围也就越大.Webhook作为一个轻量的事件处理应用,正变得越来越有用. 准确的说webho ...

  2. Grafana Prometheus系统监控Redis服务

    Grafana Prometheus系统监控Redis服务 一.Grafana Prometheus系统监控Redis服务 1.1流程 1.2安装redis_exporter 1.3配置prometh ...

  3. Grafana+Telegraf+Influxdb监控Tomcat集群方案

    前言 前一段时间自家养的几只猫经常出问题,由于没有有效的监控预警手段,以至于问题出现或者许久一段时间才会被通知到.凌晨一点这个锅可谁都不想背,为此基于目前的情况搭建了以下这么一套监控预警系统. 相关软 ...

  4. Grafana+Prometheus系统监控之MySql

    架构 grafana和prometheus之前安装配置过,见:Grafana+Prometheus打造全方位立体监控系统 MySql安装 MySql的地位和重要性就不言而喻了,作为开源产品深受广大中小 ...

  5. Grafana+Prometheus+node_exporter监控,Grafana无法显示数据的问题

    环境搭建: 被测linux机器上部署了Grafana,Prometheus,node_exporter,并成功启动了它们. Grafana中已经创建了Prometheus数据源,并测试通过,并且导入了 ...

  6. Grafana+Prometheus系统监控之SpringBoot

    前言 前一段时间使用SpringBoot创建了一个webhook项目,由于近期项目中也使用了不少SpringBoot相关的项目,趁着周末,配置一下使用prometheus监控微服务Springboot ...

  7. 手动部署 Docker+Grafana+Prometheus系统监控之Redis

    监控规划图 使用Docker 创建两台Redis docker run -d --name redis1 redis docker run -d --name redis2 redis 查看redis ...

  8. Grafana+Prometheus系统监控之Redis

    REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统. Redis是一个开源的使用ANSI C语言编写.遵守B ...

  9. windows下部署Grafana +prometheus平台监控

      1.Prometheus简介 Prometheus基于Golang编写,编译后的软件包,不依赖于任何的第三方依赖.用户只需要下载对应平台包,解压并且添加基本的配置即可正常启Prometheus S ...

  10. Grafana+Prometheus系统监控之钉钉报警功能

    介绍 钉钉,阿里巴巴出品,专为中国企业打造的免费智能移动办公平台,含PC版,Web版和手机版.智能办公电话,消息已读未读,DING消息任务管理,让沟通更高效:移动办公考勤,签到,审批,企业邮箱,企业网 ...

随机推荐

  1. pycharm下载 安装使用

    pycharm下载与使用 1.下载 ​ 该软件分免费版和收费版 ​ 免费版(community):功能少 ​ 收费版(professional):30天试用 ​ 我们尽量使用收费版本 ​ 官网地址:h ...

  2. Ubuntu 安装 samba 服务器

    下载 samba 工具 sudo apt install samba samba-common 配置 sudo vim /etc/samba/smb.conf // 复制到san.conf最下面 [u ...

  3. strapi系列--如何自定义非界面化的接口,定制化自己的业务逻辑

    为什么要进行后端定制呢? 在实际开发过程中,项目中有些需求是不需要创建界面化接口的,需要我们定制化自己的业务逻辑,那么我们该如何处理这个需求呢?本文以图文并茂的形式,定制一个我们自己的业务逻辑接口. ...

  4. 移动端安卓开发学习记录--Android Studio使用adb链接夜神模拟器常用指令

    1.下载安装模拟器,打开模拟器,本步骤不再赘述 2.打开模拟机器安装路径,在地址栏输入cmd,回车,就会打开命令行窗口 3.输入 nox_adb.exe connect 127.0.0.1:62001 ...

  5. VUE引入自定义文字方式

    单vue文件引入老是报错,所以我用了全局引入 1.先在assets里新建font文件夹,把字体放进去,然后在字体旁边新建font.less, font.less内容如下: @font-face{ fo ...

  6. Flink程序打包

    在基于 Flink DataStreamAPI 进行流式数据处理应用时,我们可能希望将依赖和应用程序分别打包,如此便于发布和问题定位.在较新版本的 Flink版本中推出了application模式,这 ...

  7. 11月25日内容总结——sql查询关键字

    目录 一.SQL语句查询关键字 二.前期数据准备 三.编写SQL语句的小技巧 四.查询关键字之where筛选 1.查询id大于等于3小于等于6的数据 2.查询薪资是20000或者18000或者1700 ...

  8. VMware虚拟机的简单安装和配置

    一.简单了解虚拟机 虚拟机英文名(Virtual Machine)是通过软件模拟的完整计算机系统.在实体计算机中能够完成的工作在虚拟机中都能够实现.在计算机中创建虚拟机时,需要将实体机的部分硬盘和内存 ...

  9. Spring框架-IoC核心

    spring框架(spring全家桶) spring FrameWork springBoot+springCloud+springCloud Data Flow 一:spring的两大核心机制: I ...

  10. ctfshow_web入门 命令执行

    命令执行 刚刚开始学习命令执行,萌新一个 因为是学习嘛,所以东西写的杂乱了 web 29 error_reporting(0); if(isset($_GET['c'])){ $c = $_GET[' ...