List

  1. CentOS7.3
  2. prometheus-2.2.1.linux-amd64.tar.gz
  3. redis_exporter-v0.30.0.linux-amd64.tar.gz
节点名 IP 软件版本 硬件 网络 说明
Prometheus 192.168.43.144 list 里面都有 2C4G Nat,内网 测试环境
Tomcat 192.168.43.134 list 里面都有 2C4G Nat,内网 测试环境

部署Prometheus

部署Promehteus请看我前面写的文章

https://www.cnblogs.com/you-men/p/12839535.html

部署Tomcat

下载安装tomcat
  1. wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.55/bin/apache-tomcat-8.5.55.tar.gz
  2. tar xvf apache-tomcat-8.5.47.tar.gz -C /usr/local/
  3. ln -s /usr/local/apache-tomcat-8.5.47/ /usr/local/tomcat
  4. tail -1 /etc/profile
  5. export CATALINA_HOME=/usr/local/tomcat
  6. source /etc/profile
  7. env |grep -i home
  8. CATALINA_HOME=/usr/local/tomcat
  9. HOME=/root
  10. # 查看熵池的大小:
  11. cat /proc/sys/kernel/random/entropy_avail 180
  12. 增加熵池大小,解决TomcatCentOS 7巨慢的问题
  13. # 安装rng服务,增大熵池
  14. yum -y install rng-tools
  15. systemctl start rngd && systemctl enable rngd
  16. # 启动服务访问Tomcat页面快一百倍..
启动tomcat
  1. /usr/local/tomcat/bin/catalina.sh start
  2. Using CATALINA_BASE: /usr/local/tomcat
  3. Using CATALINA_HOME: /usr/local/tomcat
  4. Using CATALINA_TMPDIR: /usr/local/tomcat/temp
  5. Using JRE_HOME: /usr/local/jdk
  6. Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
  7. Tomcat started.
  8. ss -antp |grep java
  9. LISTEN 0 100 *:8009 *:* users:(("java",pid=857,fd=58))
  10. LISTEN 0 100 *:8080 *:* users:(("java",pid=857,fd=53))
  11. LISTEN 0 1 127.0.0.1:8005 *:* users:(("java",pid=857,fd=73))
tomcat三个端口
  1. # 8005: 是tomcat本身的端口,本地管理端口号
  2. # 8080: 主端口号,是tomcat负责建立http连接的端口,通过浏览器访问tomcat服务器的web 应用时,使用此端口
  3. # 8009: 是tomcat负责和其他http服务器建立连接的端口,ajp的编辑器
tomcat启动脚本
  1. vim /etc/init.d/tomcat
  2. #!/bin/bash
  3. #chkconfig: 2345 96 14
  4. export JAVA_HOME=/usr/java/jdk1.8.0_121
  5. export CATALINA_HOME=/usr/local/tomcat
  6. exec $CATALINA_HOME/bin/catalina.sh $*
  7. # $*将脚本本身自带的参数全部传递过来,就是catalina.sh --help看到的所有的参数start stop等
  8. chmod +x /etc/init.d/tomcat
  9. chkconfig --add tomcat
  10. chkconfig tomcat on
  11. service tomcat start
  12. systemctl status tomcat
  13. tail -f catalina.out 服务启动不起来查看这个日志文件

配置JMX Exporter

项目地址:

https://github.com/prometheus/jmx_exporter

  1. # jar包地址:
  2. https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.3.1/jmx_prometheus_javaagent-0.3.1.jar
  3. mkdir -p /usr/local/jmx/
  4. cp jmx_prometheus_javaagent-0.3.1.jar /usr/local/jmx/
  5. # 下载地址:https://github.com/prometheus/jmx_exporter/blob/master/example_configs/tomcat.yml
  6. cp /usr/local/src/tomcat.yaml /usr/local/jmx/config.yaml
  7. cat /usr/local/jmx/config.yaml
  8. ---
  9. lowercaseOutputLabelNames: true
  10. lowercaseOutputName: true
  11. rules:
  12. - pattern: 'Catalina<type=GlobalRequestProcessor, name=\"(\w+-\w+)-(\d+)\"><>(\w+):'
  13. name: tomcat_$3_total
  14. labels:
  15. port: "$2"
  16. protocol: "$1"
  17. help: Tomcat global $3
  18. type: COUNTER
  19. - 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):'
  20. name: tomcat_servlet_$3_total
  21. labels:
  22. module: "$1"
  23. servlet: "$2"
  24. help: Tomcat servlet $3 total
  25. type: COUNTER
  26. - pattern: 'Catalina<type=ThreadPool, name="(\w+-\w+)-(\d+)"><>(currentThreadCount|currentThreadsBusy|keepAliveCount|pollerThreadCount|connectionCount):'
  27. name: tomcat_threadpool_$3
  28. labels:
  29. port: "$2"
  30. protocol: "$1"
  31. help: Tomcat threadpool $3
  32. type: GAUGE
  33. - pattern: 'Catalina<type=Manager, host=([-a-zA-Z0-9+&@#/%?=~_|!:.,;]*[-a-zA-Z0-9+&@#/%=~_|]), context=([-a-zA-Z0-9+/$%~_-|!.]*)><>(processingTime|sessionCounter|rejectedSessions|expiredSessions):'
  34. name: tomcat_session_$3_total
  35. labels:
  36. context: "$2"
  37. host: "$1"
  38. help: Tomcat session $3 total
  39. type: COUNTER

收集tomcat数据

Jar包应用
  1. java -javaagent:./jmx_prometheus_javaagent-0.3.0.jar=9151:config.yaml -jar yourJar.jar
War包应用

进入bin目录$TOMCAT_HOME/bin,将jmx_exporter.jar包文件和config.yaml文件复制到这里。然后修改里面的一个catalina.sh的脚本,找到JAVA_OPTS,加上以下配置(代理):

如果有多tomcat,建议将jmx_prometheus_javaagent和config.yaml文件放到固定的目录,$TOMCAT_HOME/bin/catalina.sh文件中写绝对路径.

  1. # 修改bin/catalina.sh 文件
  2. # 添加:
  3. JAVA_OPTS="-javaagent:/usr/local/jmx/jmx_prometheus_javaagent-0.3.1.jar=39081:/usr/local/jmx/config.yaml"
  4. # service tomcat restart
  5. ss -atnlp |grep java
  6. LISTEN 0 100 *:8080 *:* users:(("java",pid=2110,fd=57))
  7. LISTEN 0 1 127.0.0.1:8005 *:* users:(("java",pid=2110,fd=76))
  8. LISTEN 0 100 *:8009 *:* users:(("java",pid=2110,fd=61))
  9. LISTEN 0 3 *:39081 *:* users:(("java",pid=2110,fd=14))

配置Prometheus

添加tomcat到prometheus
  1. tail -3 /usr/local/prometheus/prometheus.yml
  2. - job_name: 'tomcat'
  3. static_configs:
  4. - targets: ['192.168.43.226:39081']
重启服务
  1. systemctl restart prometheus

配置Grafana

寻找tomcat模板

grafana导入模板
查看tomcat仪表盘

09 . Prometheus监控tomcat+jvm的更多相关文章

  1. prometheus监控tomcat

    下载tomcat,wget **;解压tar zxvf **; 下载jmx_exporter, wget  https://repo1.maven.org/maven2/io/prometheus/j ...

  2. 通过jconsole监控tomcat JVM 内存、线程、CPU

    从Java 5开始 引入了 JConsole,来监控 Java 应用程序性能和跟踪 Java 中的代码.jconsole是JDK自带监控工具,只需要找到 JDK 安装路径,打开 bin 文件夹,双击  ...

  3. zabbix使用jmx监控tomcat

    zabbix监控Tomcat/JVM实例性能(115) – 运维生存时间http://www.ttlsa.com/zabbix/zabbix-use-jmx-monitor-tomcat/ zabbi ...

  4. 手把手教你使用 Prometheus 监控 JVM

    概述 当你的 Java 业务容器化上 K8S 后,如果对其进行监控呢?Prometheus 社区开发了 JMX Exporter 来导出 JVM 的监控指标,以便使用 Prometheus 来采集监控 ...

  5. 通过JCONSOLE监控TOMCAT的JVM使用情况

    这个也是要学入一下,JVMr 虚拟机原理不可少. 参考配置URL“: http://blog.163.com/kangle0925@126/blog/static/277581982011527723 ...

  6. zabbix通过jvm监控tomcat

    说明:zabbix是通过jvm工具监控tomcat,zabbix server通过连接jvm代理服务器获取tomcat的各种参数 zabbix server:192.168.1.31 tomcat服务 ...

  7. 009-通过jmx监控tomcat

    前言想理解怎么监控tomcat,必需识下图(图片源出网络) zabbix-Web前端界面,它通过数据库里数据展示.和其它组件不直接关联zabbix-server运行在10051端口,Zabbix-se ...

  8. Prometheus监控k8s企业级应用

    Prometheus架构图 常见的镜像 pod 备注 kube-state-metric 用来收集K8S基本状态信息的监控代理 node-exporter 专门用来收集K8S运算节点基础信息,需要部署 ...

  9. LoadRunner 实现监控Tomcat

    LoadRunenr没有监控Tomcat的专用监控器,为了用lr达到监控tomcat的目的可以通过打开Tomcat自带的Status页面之后,利用lr的关联技术得到相关的数据,把数据输出到lr自定义的 ...

随机推荐

  1. Java实现 蓝桥杯VIP 算法提高 去注释

    算法提高 去注释 时间限制:1.0s 内存限制:256.0MB 去注释 问题 给你一段C++代码,将其中的注释去除后输出剩余的代码. 注释共有两种形式: 1. 行注视:以//开头,一直作用到行尾为止. ...

  2. java代码(11) ---java代码的优化

    java代码的优化 参考了一些Java开发手册有关代码的规范,觉得一段好的代码可以从三个维度去分析.1)性能,2)可扩展性,3)可读性 让我们看看别人是怎么去分析,还有值得我们去学习的地方,也是我正在 ...

  3. 疫情期间我是如何拿到20k的offer,2020年php面试题汇总

    推荐视频:面试10家公司,收获9个offer,2020年PHP 面试问题 第一阶段1-2年 我认为1-2年对于PHP程序员来说是第一个门槛,这一阶段菜鸟正式从理论迈向企业级开发.我们知道如何使用工具. ...

  4. SQL--SQL详解(DDL,DML,DQL,DCL)

    SQL--SQL详解(DDL,DML,DQL,DCL) 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 什么是SQL? Stru ...

  5. CenterOS7 修改 SSH 端口

    首先修改 /etc/ssh/sshd_config 文件中的 Port.修改前一定要备份 可以同时启用多个Port所以最好先追加一个端口,新端口校验没问题之后再把原端口删除 防火墙设置 # 永久开放端 ...

  6. Remap 后的 USART1 不能发送数据

    最近在使用 STM32 的 USART1 时,遇到一点问题,记录一下. 如果 USART1 不是使用 PA9 和 PA10 作接收和发送引脚,而是 PB6 和 PB7,那么有一点就一定得注意了:此时 ...

  7. OKR-Periods of Words【KMP最小前后缀】

    OKR-Periods of Words 传送门:链接    来源:UPC 8180 题目描述 串是有限个小写字符的序列,特别的,一个空序列也可以是一个串.一个串P是串A的前缀,当且仅当存在串B,使得 ...

  8. 腾讯音乐Android工程师一面面试题记录,拿走不谢!

    最近参加了一次鹅厂音乐Android工程师面试,这里凭记忆记录了一些一面的面试题,希望能帮到正在面试的你! 1.Java调用函数传入实际参数时,是值传递还是引用传递? 2.单例模式的DCL方式,为什么 ...

  9. 【译】Announcing Entity Framework Core 5.0 Preview 5

    今天我们宣布EF Core 5.0发布第五个预览版. 1 先决条件 EF Core 5.0 的预览版要求  .NET Standard 2.1.这意味着: EF Core 5.0 在 .NET Cor ...

  10. 让apk可调试

    一定是这个  <application android:debuggable="true"   不是这个玩意, debugaable, 也不是debugable这个玩意