Prometheus之jmx_prometheus_javaagent监控java应用

Prometheus监控JMX-Exporter监控java应用

本文了解如何使用 Prometheus 与 JMX Exporter 来监控 Java 应用

tomcat应用准备

[root@node1 ~]# mkdir -p /apps
[root@node1 ~]# cd /apps
[root@node1 apps]# wget https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.98/bin/apache-tomcat-8.5.98.tar.gz
[root@node1 apps]# tar xf apache-tomcat-8.5.98.tar.gz
[root@node1 apps]# mv apache-tomcat-8.5.98 tomcat
[root@node1 apps]# cd tomcat/bin/
[root@node1 bin]# ./catalina.sh start
[root@node1 bin]# ss -antlp|grep 8080
[root@node1 bin]# ./shutdown.sh

了解下jmx_prometheus_httpserver

# httpserver监控下载
[root@node1 bin]# wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_httpserver/0.18.0/jmx_prometheus_httpserver-0.18.0.jar[root@node1 ~]# git clone https://github.com/prometheus/jmx_exporter.git
[root@node1 ~]# cd jmx_exporter/example_configs
[root@node1 example_configs]# cp tomcat.yml /apps/tomcat/bin/config.yaml
[root@node1 example_configs]# vim /apps/tomcat/bin/config.yaml
---
hostPort: 192.168.1.11:8081  #第一行下添加,远程监控的地址加端口。在启动此jar包后会通过该端口与tomcat进行通信[root@node1 example_configs]# nohup java -jar /apps/tomcat/bin/jmx_prometheus_httpserver-0.18.0.jar 18080 /apps/tomcat/bin/config.yaml  &

http://192.168.1.11:18080/ 看到部分监控数据,此时tomcat还未启动

[root@node1 tomcat]# vim /apps/tomcat/bin/catalina.sh	#添加监控相关参数
...
157 # Copy CATALINA_BASE from CATALINA_HOME if not already set
158 [ -z "$CATALINA_BASE" ] && CATALINA_BASE="$CATALINA_HOME"
##添加以下内容,注意tomcat8添加“CATALINA_OPTS”内容是必须写在同一行
159 CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -DJava.rmi.server.hostname=192.168.1.11 -Dcom.sun.management.jmxremote.port=8081 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmx    remote.authenticate=false"-Dcom.sun.management.jmxremote:开启jmx远程监控。-DJava.rmi.server.hostname:监控所在的服务器ip地址。(被监控的ip,一般为本机ip地址)-Dcom.sun.management.jmxremote.port:开启监控的端口号。(被监控的端口,也就是jmx exporter通过哪个端口与tomcat进行通信,采集tomcat的数据。端口设置根据上面config.yaml的设置进行修改)-Dcom.sun.management.jmxremote.ssl:是否开启ssl连接。-Dcom.sun.management.jmxremote.authenticate:监控是否开启用户和密码。http://192.168.1.11:18080/    #查看到监控的数据。数据不是特别多,暂不做研究

部署prometheus

[root@node1 tomcat]# cd /apps/
[root@node1 apps]# wget https://github.com/prometheus/prometheus/releases/download/v2.28.1/prometheus-2.28.1.linux-amd64.tar.gz[root@node1 apps]# tar xf prometheus-2.28.1.linux-amd64.tar.gz
[root@node1 apps]# mv prometheus-2.28.1.linux-amd64/ prometheus[root@node1 apps]# cat prometheus/prometheus.yml
#添加- job_name: 'tomcat'static_configs:- targets: ['localhost:18080'][root@node1 apps]# cd prometheus/
[root@node1 prometheus]# ./prometheus --config.file=./prometheus.ymlhttp://192.168.1.11:9090/targets  #看到tomcat
http://192.168.1.11:9090/graph
#简单测试: 搜jmx_exporter_build_info
jmx_exporter_build_info{instance="localhost:18080", job="tomcat", name="jmx_prometheus_httpserver", version="0.18.0"}

部署grafana

[root@node1 ~]# wget https://mirrors.tuna.tsinghua.edu.cn/grafana/yum/rpm/Packages/grafana-8.1.2-1.x86_64.rpm
[root@node1 ~]# yum -y install ./grafana-8.1.2-1.x86_64.rpm  #直接装不知道为什么没有service文件,暂时不研究[root@node1 ~]# /usr/sbin/grafana-server --config=/etc/grafana/grafana.ini --homepath=/usr/share/grafana# 添加数据源,导入数据
192.168.1.11:3000  #配置prometheus数据源

部署jmx_prometheus_javaagent

[root@node1 apps]# cat prometheus/prometheus.yml
#添加- job_name: 'tomcat-jmx'static_configs:- targets: ['localhost:8088'][root@node1 apps]# cd /apps/tomcat/bin
[root@node1 bin]# wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.18.0/jmx_prometheus_javaagent-0.18.0.jar
[root@node1 bin]# cat prometheus-jmx-config.yaml
ssl: false
lowercaseOutputName: false
lowercaseOutputLabelNames: false[root@node1 bin]# vim /apps/tomcat/bin/catalina.sh	#添加监控相关参数
CATALINA_OPTS="$JPDA_OPTS $CATALINA_OPTS  -javaagent:/apps/tomcat/bin/jmx_prometheus_javaagent-0.18.0.jar=8088:/apps/tomcat/bin/prometheus-jmx-config.yaml"http://192.168.1.11:8088/metrics # 验证数据采集# JVM dashboard
grafana 导入仪表  ID: 8563  #调整变量   job  --》tomcat-jmx  跟上面的job_name一致参考文档:
https://cloud.tencent.com/document/product/457/48724
https://www.xjx100.cn/news/133960.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/619997.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ssm基于JAVA的酒店客房管理系统论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本酒店客房管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息…

IT从业人员如何养生?

目前,电脑对人体生理和心理方面的负面影响已日益受到人们的重视。为此科学使用电脑,减少电脑和网络的危害是十分必要的。好代码网总结了一些it从业人员的保健知识,分享给大家。 一是要增强自我保健意识 工作间隙注意适当休息,一般…

构建中国人自己的私人GPT-有道GPT

创作不易,请大家多鼓励支持。 在现实生活中,很多人的资料是不愿意公布在互联网上的,但是我们又要使用人工智能的能力帮我们处理文件、做决策、执行命令那怎么办呢?于是我们构建自己或公司的私人GPT变得非常重要。 先看效果 一、…

GhostscriptExample GS pdf转曲 pdf去白边

pdf转曲 pdf去白边 package cn.net.haotuo.pojo;import com.itextpdf.text.Document; import com.itextpdf.text.Rectangle; import com.itextpdf.text.pdf.*;import java.io.*;public class GhostscriptExample {public static String gsPath "C:/Program Files/gs/gs9…

JVM基础(7)——ParNew垃圾回收器

作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO 联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬 学习必须往深处挖&…

计算机基础专升本笔记十-Windows7基础(二)常用快捷键及常见扩展名

计算机基础专升本笔记十-Windows7基础(二)常用快捷键及常见扩展名 一、Windows常用快捷键 (1)Ctrl 系列: 按键作用Ctrl Z撤销Ctrl C复制Ctrl X剪切Ctrl V粘贴Ctrl A全选Ctrl D删除所选目标(文件、…

【LeetCode:30. 串联所有单词的子串 | 滑动窗口 + 哈希表】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

【踩坑】flask_uploads报错cannot import name ‘secure_filename‘

转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn] 背景说明 截至目前,用新版的flask实现文件上传(用到flask_uploads库),会出现这个问题。 问题原因 版本问题,新的werkzeug已经把secure_filename的位置改了。 解决方法 手动修改…

绘制几何图形(Shape)

目录 1、创建绘制组件 2、形状视口viewport 3、自定义样式 4、场景示例 绘制组件用于在页面绘制图形,Shape组件是绘制组件的父组件,父组件中会描述所有绘制组件均支持的通用属性。具体用法请参考Shape。 1、创建绘制组件 绘制组件可以由以下两种形式…

【Python机器学习】分类器的不确定估计——预测概率

predict_proba的输出是每个类别的概率,通常比decision_function的输出更容易理解,对于二分类问题,它的形状始终是(n_samples,2)。 import mglearn.tools from sklearn.ensemble import GradientBoostingClassifier from sklearn.datasets im…

xcode 14.3升级 pod升级

一款2年没有维护的游戏需要升级SDK 1.升级mac os系统到 13.6系统 2.升级xcode 到14.3 3.升级pod到1.14 参考: (Mac 升级ruby 升级brew update-CSDN博客) xcode 14.3升级,缺少libarclite_iphoneos.a 文件-CSDN博客 MacOS 虚拟机Mac地址修改-CSDN博客 pod install …

Vue-16、Vue列表渲染(v-for的使用)

1、vue遍历数组 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>列表渲染</title><script type"text/javascript" src"https://cdn.jsdelivr.net/npm/vue2/dist/vue.js"…

LeetCode1109. Corporate Flight Bookings

文章目录 一、题目二、题解 一、题目 There are n flights that are labeled from 1 to n. You are given an array of flight bookings bookings, where bookings[i] [firsti, lasti, seatsi] represents a booking for flights firsti through lasti (inclusive) with sea…

C#基础-空处理

在c#中&#xff0c;值对象是没有办法赋值为null的。比如说&#xff0c;你想要定义一个布尔值&#xff0c;你的赋值数据要么得是true、要么就得是false&#xff0c;默认情况下我们永远没可能给这个布尔赋值为null&#xff0c;即使只是对这个变量进行声明而不初始化数据&#xff…

element复选框表格,实现shift多选

需求&#xff1a; 对表格数据进行批量处理的时候&#xff0c;即使有复选框但是也得需要一个一个选。有点麻烦。 解决&#xff1a; 点击一行之后摁住shift&#xff0c;再选择另一个&#xff0c;两条数据之间的则为选中 <template><el-table :data"tableData&quo…

不方便拉网线,房间又没Wifi信号?按照这个教程,让你家里每个角落都有网

前言 前段时间去了一个朋友家里&#xff0c;她老是和我叨叨说她家的卧室一点Wifi信号都没有。每次一躺床上都只能用手机流量上网。 家里明明有拉宽带&#xff0c;为什么在某一些地方还是得用自己手机流量&#xff1f;哎&#xff0c;有钱人的痛就是房子太大了。 我问她为啥不多…

【Maven】002-Maven 安装和配置

【Maven】002-Maven 安装和配置 文章目录 【Maven】002-Maven 安装和配置一、官网1、官网2、历史版本列表3、Maven 仓库地址 二、下载 Maven 3.8.8 版本1、进入 Maven 3.8.8 版本发行说明页2、进入下载页3、下载4、下载得到 apache-maven-3.8.8-bin.zip 三、Maven 安装1、将安装…

jenkins环境搭建

jenkins环境搭建 1.环境说明2.环境准备1.jdk安装2.安装Git3.安装sshpass4.安装Maven 3.安装Jenkins(war包方式安装)1.安装2.镜像加速 4.官网提供的yum方式安装5.访问 1.环境说明 keyvalue环境centos7jdk版本11git2.43.0maven3.9.6jenkins最新版本http://mirrors.jenkins-ci.or…

【spring源码分析】@Conditional的使用以及分析

Conditional Conditional 一、基本信息二、注解描述三、注解源码四、主要功能五、最佳实践 在Bean上使用在Configuration上使用自定义组合注解 六、时序图七、源码分析八、注意事项九、总结 最佳实践总结源码分析总结 一、基本信息 转载自github&#xff0c;在此作为个人备…

LINUX基础培训六之磁盘和文件系统管理

前言、本章学习目标 掌握fdisk分区类型和管理分区了解parted分区类型掌握LVM模式文件系统创建、扩展、缩小文件系统 一、磁盘的分区管理 在 Linux 中有专门的分区命令 fdisk 和 parted。其中 fdisk 命令较为常用&#xff0c;但不支持大于 2TB 的分区&#xff1b;如果需要支…