Zabbix配置JAVA JMX监控

JAVA JMX监控简介

官方文档:https://www.zabbix.com/documentation/current/zh/manual/concepts/java

Zabbix Java gateway以 Zabbix 守护进程方式原生支持监控 JMX 应用程序。Zabbix Java gateway 的守护进程是用 Java 编写。为了在特定主机上找到 JMX 计数器的值,Zabbix server 向 Zabbix Java gateway 发送请求,后者使用 JMX 管理 API 来远程查询相关的应用。该应用不需要安装额外的软件。只需要在启动时,命令行添加-Dcom.sun.management.jmxremote选项即可。

在这里插入图片描述

Zabbix通过JMX(Java Management Extensions)监控Java应用程序(如Tomcat),可以收集详细的性能指标。首先,确保Tomcat已安装并运行,然后配置JMX远程管理。

zabbix环境信息:

节点IPOSRole
zabbix-server192.168.72.31Ubuntu 22.04zabbix-server、zabbix-java-gateway
tomcat01192.168.72.32Ubuntu 22.04tomcat server

zabbix 版本: v7.0.0
Tomcat 版本:v10.1.25

前置要求:已在tomcat01节点上安装tomcat server。

安装 Java gateway

官方文档:https://www.zabbix.com/documentation/current/zh/manual/concepts/java/from_debian_ubuntu

只有当你想监控 JMX 应用程序时,才需要安装 Java gateway 。 Java gateway 是轻量级的,不需要数据库。

  1. Zabbix Java gateway可以部署在与Zabbix server不同的机器上。这种灵活性允许根据需求进行分布式部署。

  2. 如果您有大量Java应用需要监控,将Java gateway部署在单独的机器上可以减轻Zabbix server的负担。

  3. 有时,由于网络限制,可能需要将Java gateway部署在更靠近被监控Java应用的位置。

  4. 如果Java gateway部署在不同的机器上,您需要在Zabbix server的配置中指定Java gateway的地址和端口。

  5. Zabbix还支持配置多个Java gateway,以实现负载均衡和高可用性。

  6. 在小型环境中,将Java gateway与Zabbix server部署在同一台机器上也是常见的做法,这简化了配置和管理。

以在zabbix-server节点安装为例,安装 Zabbix repository

wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_7.0-1+ubuntu22.04_all.deb
dpkg -i zabbix-release_7.0-1+ubuntu22.04_all.deb
apt update -y

添加了所需的软件源之后,就可执行如下命令安装 Zabbix Java gateway:

apt install -y zabbix-java-gateway

修改配置文件

root@zabbix-server:~# nano /etc/zabbix/zabbix_java_gateway.conf
......
LISTEN_IP="0.0.0.0"
LISTEN_PORT=10052
PID_FILE="/var/run/zabbix/zabbix_java_gateway.pid"
START_POLLERS=5
TIMEOUT=3

重新启动服务

systemctl restart zabbix-java-gateway.service

配置 Zabbix Server 关联 Java 网关

当Java网关启动并运行后,需要告诉Zabbix server去哪里找Zabbix Java网关。

通过在zabbix server 配置文件中指定JavaGateway和JavaGatewayPort来完成这个操作。如果运行JMX应用程序的主机是由Zabbix proxy 监控的,则可以在proxy 配置文件中指定连接参数。

默认情况下,server不会启动任何与JMX监控相关的进程。如果你希望用到它,则必须指定Java pollers的数量。此操作与配置常规 pollers 和 trappers数量一样。

root@zabbix-server:~# nano /etc/zabbix/zabbix_server.conf
......
JavaGateway=192.168.72.31
JavaGatewayPort=10052
StartJavaPollers=5
...

配置完server或proxy后,重启server或proxy。

root@zabbix-server:~# systemctl restart zabbix-server.service 

配置tomcat

在tomcat节点执行,本示例tomcat安装目录为/opt/tomcat,不同安装方式可能有差异。

查看tomcat 启动文件配置:

root@tomcat01:~# cat /etc/systemd/system/tomcat.service 
[Unit]
Description=Apache Tomcat 10 Web Application Server
After=network.target
 
[Service]
Type=forking
 
User=tomcat
Group=tomcat
 
Environment="JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64"
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_BASE=/opt/tomcat"
Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
 
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
 
[Install]
WantedBy=multi-user.target

创建 setenv.sh 文件,通常位于 $CATALINA_HOME/bin 目录下:

cat >/opt/tomcat/bin/setenv.sh<<'EOF'
export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote \
  -Dcom.sun.management.jmxremote.port=12345 \
  -Dcom.sun.management.jmxremote.rmi.port=12345 \
  -Dcom.sun.management.jmxremote.ssl=false \
  -Dcom.sun.management.jmxremote.authenticate=false \
  -Djava.rmi.server.hostname=192.168.72.32"
EOF

注意:请勿在catalina.sh脚本中设置此变量。相反,请将它们放入 CATALINA_BASE/bin 目录下的 setenv.sh 脚本中,以便将自定义设置保持独立。

重启tomcat服务

root@tomcat01:~# systemctl restart tomcat.service 

确认端口正常监听

root@tomcat01:~# ss -antulp |grep 12345
tcp   LISTEN 0      50                      *:12345            *:*    users:(("java",pid=149856,fd=12))                                                                                                                                                                                                            

查看tomcat参数及版本信息:

root@tomcat01:~# /opt/tomcat/bin/version.sh
Using CATALINA_BASE:   /opt/tomcat
Using CATALINA_HOME:   /opt/tomcat
Using CATALINA_TMPDIR: /opt/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:    -Dcom.sun.management.jmxremote   -Dcom.sun.management.jmxremote.port=12345   -Dcom.sun.management.jmxremote.rmi.port=12345   -Dcom.sun.management.jmxremote.ssl=false   -Dcom.sun.management.jmxremote.authenticate=false   -Djava.rmi.server.hostname=192.168.72.32
Server version: Apache Tomcat/10.1.25
Server built:   Jun 14 2024 19:31:59 UTC
Server number:  10.1.25.0
OS Name:        Linux
OS Version:     5.15.0-102-generic
Architecture:   amd64
JVM Version:    21.0.3+9-Ubuntu-1ubuntu122.04.1
JVM Vendor:     Ubuntu
root@tomcat01:~# 

配置zabbix web

在Zabbix Web界面中添加主机并配置JMX接口。

  1. 登录Zabbix Web界面,导航到数据采集-> Hosts

  2. 点击 Create host 按钮。配置主机名,例如 tomcat01

  3. 选择模板,在application中选择Apache Tomcat by JMX

  4. 选择主机群组,例如 Applications

  5. 添加一个新的接口,选择 JMX interface,并填写Tomcat服务器的IP地址和端口号(例如 192.168.72.3212345)。

  6. 导航到 监测-> 最新数据,选择刚刚添加的主机,查看数据是否正常收集。

示例配置

在这里插入图片描述

配置完成后确认可用性
在这里插入图片描述

查看最新监控数据
在这里插入图片描述
查看仪表盘
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【JavaScript】解决 JavaScript 语言报错:Uncaught TypeError: XYZ is not a function

文章目录 一、背景介绍常见场景 二、报错信息解析三、常见原因分析1. 变量或对象属性类型错误2. 函数名拼写错误或覆盖3. 作用域问题导致的函数未定义4. 调用未初始化的函数 四、解决方案与预防措施1. 确保变量类型正确2. 检查拼写错误3. 注意作用域4. 初始化变量 五、示例代码…

OrangePi AIpro 浅上手及AI体验

前言 很高兴&#xff0c;收到了一份新款 OrangePi AIpro 开发板&#xff0c;这是香橙派第一次与华为昇腾合作&#xff0c;使用昇腾系列 AI 处理器来设计这款高性价比的 AI 开发板。这块开发板不仅性能强大&#xff0c;还支持丰富的硬件接口&#xff0c;为AI开发者提供了一个理…

BI佐罗,居然抄袭洗稿我的文章

必须曝光此博主不当行径。 4月2日这天发表的原创文章&#xff1a;BI报表系统建设10大坑&#xff0c;因为都是切身的实际项目经验总结&#xff0c;获得了很多人的关注。 我觉得写文章要写的是亲身、真的做过的专业的项目经验&#xff0c;而不是信口开河随口忽悠。 如果有些博…

新手-前端生态

文章目录 新手的前端生态一、概念的理解1、脚手架2、组件 二、基础知识1、HTML2、css3、JavaScript 三、主流框架vue3框架 四、 工具&#xff08;特定框架&#xff09;1、uinapp 五、组件库&#xff08;&#xff09;1、uView如何在哪项目中导入uView 六、应用&#xff08;各种应…

240712_昇思学习打卡-Day24-LSTM+CRF序列标注(3)

240712_昇思学习打卡-Day24-LSTMCRF序列标注&#xff08;3&#xff09; 今天做LSTMCRF序列标注第三部分&#xff0c;同样&#xff0c;仅作简单记录及注释&#xff0c;最近确实太忙了。 Viterbi算法 在完成前向训练部分后&#xff0c;需要实现解码部分。这里我们选择适合求解…

为Linux设置GRUB密码

正文共&#xff1a;999 字 11 图&#xff0c;预估阅读时间&#xff1a;1 分钟 我们前面介绍了如何恢复root密码&#xff08;CentOS 7.9遗忘了root密码怎么办&#xff1f;&#xff09;&#xff0c;虽然简单好用&#xff0c;但是可能会被不法分子利用&#xff0c;造成root密码以及…

Android ListView

ListView ListView是以列表的形式展示具体内容的控件&#xff0c;ListView能够根据数据的长度自适应显示&#xff0c;如手机通讯录、短消息列表等都可以使用ListView实现。如图1所示是两个ListView&#xff0c;上半部分是数组形式的ListView&#xff0c;下半部分是简单列表Lis…

【STM32F407ZET6】图文

STM32F407ZET6 是一款由意法半导体&#xff08;STMicroelectronics&#xff09;推出的ARM Cortex-M4 基于微控制器&#xff08;MCU&#xff09;。这款MCU是STM32系列中的高性能型号&#xff0c;专为需要快速数字信号处理&#xff08;DSP&#xff09;、实时控制和丰富外设功能的…

【信息系统项目管理师】高项常见知识点与公式

绩效域、合同、配置、变更、招投标、安全、立项论文考到的话大致业是按下面相关知识点开写 八大绩效域及其要点 团干部策划开公交 合同管理 合同的签订->合同的履行管理->合同的变更管理->合同的档案管理->合同的违约\索赔管理 配置管理 制定配置管理计划配置识…

当您消费权益受损时怎么办?您回答我帮您!

当您消费权益受损时怎么办&#xff1f;您回答我帮您&#xff01; 亲爱的消费者&#xff1a; 您好&#xff01;为了更好地了解消费者在购买商品或接受服务过程中遇到的问题&#xff0c;李秘书讲写作特此开展此次问卷调查。您的回答将对您我非常有帮助&#xff0c;我将根据您的回…

关于思维和智能体模型的思考(2)

在关于思维和智能体模型的思考&#xff08;1&#xff09;一文中&#xff0c;我们提出了思维和Agent 模型&#xff0c;提出了使用确定连接的智能体构建的思维模型。本文我们继续讨论思维与智能体&#xff0c;重点探讨另一种智能体-自主智能体&#xff0c;并且提出了自主智能体的…

面向企业中高层、业务决策人员的数据分析培训

✅作者简介&#xff1a;《数据运营&#xff1a;数据分析模型撬动新零售实战》作者、《数据实践之美》作者、数据科技公司创始人、多次参加国家级大数据行业标准研讨及制定、高端企培合作讲师。 是全社会都关注的复杂难题&#xff0c;数据应用的能力影响着你职场的高度。 是的&a…

【目录】全博文、专栏大纲

首先要和大家说一下&#xff0c;博主的文章并不是想到哪里写到哪里&#xff0c;而是以整个大后端为主题&#xff0c;成体系的在写专栏&#xff0c;从和后端紧相关的计算机核心课程开始、到JAVA SE、JAVA EE、到数据库、MQ等各类中间件、再到业务场景、性能优化。当然也会涉及一…

小众好玩的赛车游戏:环道巨星 CIRCUIT SUPERSTARS中文安装包

《环道巨星》&#xff08;Circuit Superstars&#xff09;是一款由赛车迷亲手为其他赛车迷打造的俯视角赛车游戏。荟集史上各类赛车运动&#xff0c;旨在提供刺激好玩的驾驶体验&#xff1b;而游戏自带的高技术难度将促使玩家长时间磨砺技巧&#xff0c;以达成完美的一圈。 游戏…

Cypress UI自动化之安装环境

注&#xff1a;macOS系统 一、git环境 略 二、node环境 1、安装nvm 前提&#xff1a;有装过Homebrew&#xff0c;参考adb使用方法文档 1、安装nvm&#xff1a;首先要保证之前没有安装过node&#xff0c;如果之前安装过&#xff0c;先 brew uninstall node brew install n…

paddlepaddle2.6,paddleorc2.8,cuda12,cudnn,nccl,python10环境

1.安装英伟达显卡驱动 首先需要到NAVIDIA官网去查自己的电脑是不是支持GPU运算。 网址是&#xff1a;CUDA GPUs | NVIDIA Developer。打开后的界面大致如下&#xff0c;只要里边有对应的型号就可以用GPU运算&#xff0c;并且每一款设备都列出来相关的计算能力&#xff08;Compu…

基于Java的飞机大战游戏的设计与实现论文

点击下载源码 基于Java的飞机大战游戏的设计与实现 摘 要 现如今&#xff0c;随着智能手机的兴起与普及&#xff0c;加上4G&#xff08;the 4th Generation mobile communication &#xff0c;第四代移动通信技术&#xff09;网络的深入&#xff0c;越来越多的IT行业开始向手机…

计算机组成原理:408考研|王道|学习笔记II

系列目录 计算机组成原理 学习笔记I 计算机组成原理 学习笔记II 目录 系列目录第四章 指令系统4.1 指令系统4.1.1 指令格式4.1.2 扩展操作码指令格式 4.2 指令的寻址方式4.2_1 指令寻址4.2_2 数据寻址 4.3 程序的机器级代码表示4.3.1 高级语言与机器级代码之间的对应4.3.2 常用…

C++从入门到起飞之——缺省参数/函数重载/引用全方位剖析!

目录 1.缺省参数 2. 函数重载 3.引⽤ 3.1 引⽤的概念和定义 3.2 引⽤的特性 3.3 引⽤的使⽤ 3.4 const引⽤ 3.5 指针和引⽤的关系 4.完结散花 个人主页&#xff1a;秋风起&#xff0c;再归来~ C从入门到起飞 个人格言&#xff1a;悟已往之不谏…

RocketMQ~架构了解

简介 RocketMQ 具有高性能、高可靠、高实时、分布式 的特点。它是一个采用 Java 语言开发的分布式的消息系统&#xff0c;由阿里巴巴团队开发&#xff0c;在 2016 年底贡献给 Apache&#xff0c;成为了 Apache 的一个顶级项目。 在阿里内部&#xff0c;RocketMQ 很好地服务了集…