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=forkingUser=tomcat
Group=tomcatEnvironment="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.mzph.cn/diannao/45655.shtml

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

相关文章

Java设计模式的7个设计原则

Java设计模式的7个设计原则是面向对象设计领域中的重要指导方针&#xff0c;它们旨在提高软件系统的可维护性、可扩展性、可复用性和灵活性。以下是这7个设计原则的详细解释&#xff1a; 1. 开闭原则&#xff08;Open-Closed Principle, OCP&#xff09; 定义&#xff1a;一个…

LCM通讯的使用

本文主要介绍LCM通讯的基本使用&#xff0c;内容主要整理自官网 https://lcm-proj.github.io/lcm/index.html LCM&#xff0c;即Library for Communication and Marshalling&#xff0c;是一组用于消息传递与数据封装的库和工具&#xff0c;它主要的面向对象是要求高带宽、低延…

Cesium--获取当前相机中心与地面的射线焦点

本文记录获取当前相机中心与地面的射线焦点的方法&#xff0c;可用于视角缩放过程中&#xff0c;控制视角自动平滑切换到二维等场景&#xff1a; 方法一定是视角中心能与地面有交集&#xff0c;如果对着地平线或对着天空肯定是没效果的。直接放代码&#xff1a; //调整相机到正…

Objective-C 自定义渐变色Slider

文章目录 一、前情概要二、具体实现 一、前情概要 系统提供UISlider&#xff0c;但在开发过程中经常需要自定义&#xff0c;本次需求内容是实现一个拥有渐变色的滑动条&#xff0c;且渐变色随着手指touch的位置不同改变区域&#xff0c;类似如下 可以使用CAGradientLayer实现渐…

利用宝塔安装一套linux开发环境

更新yum&#xff0c;并且更换阿里镜像源 删除yum文件 cd /etc/yum.repos.d/ 进入yum核心目录 ls sun.repo rm -rf * 删除之前配置的本地源 ls 配置阿里镜像源 wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo 配置扩展包 wge…

paloalto防火墙CLI修改MGT IP

怎么样通过Cli修改MGT口的IP、掩码、网关、DNS呢&#xff1f; 1&#xff09;console连接上CLi&#xff0c;输入configure进入系统视图 输入exit&#xff0c;退出到用户视图 2&#xff09;在CLI修改带外管理MGT的IP地址、掩码、网关、DNS&#xff0c;默认带外管理是开启https、…

[Elasticsearch]ES近似实时搜索的原因|ES非实时搜索的原因|ES Near real-time search

Elasticsearch-专栏&#x1f448;️ 往期回顾&#xff1a; ES单一查询定义&#x1f448;️ ES深分页问题&#x1f448;️ ES商城搜索实战&#x1f448;️ ES环境搭建:单节点模式/集群模式&#x1f448;️ ES开启认证&#x1f448;️ 近似实时搜索&#xff08;Near real-t…

FlinkModule加载HiveModule异常

HiveModule这个模块加载不出来 加在不出来这个模块&#xff0c;网上查说是要加下面这个依赖 <dependency><groupId>org.apache.flink</groupId><artifactId>flink-connector-hive_${scala.binary.version}</artifactId><version>${flink.…

Elasticsearch基础概念

Elasticsearch 是一款开源的,ESTful风格的 分布式搜索、存储、分析引擎; 常见的使用场景 网站搜索,代码搜索等日志管理与分析,应用系统性能分析,安全指标监控等数据库同步,将数据库某个表的数据同步到elasticsearch上然后提供搜索服务 ES基本概念 文档 我们向elasticsearch存…

【活动预告】Apache IoTDB TsFile 智慧能源应用“上会”啦!

2024 年&#xff0c;站在中国数字经济产业升级和数据要素市场化建设的时代交汇点上&#xff0c;为进一步推动全球数据库产业进步&#xff0c;由中国通信标准化协会、大数据技术标准推进委员会主办的“2024 可信数据库发展大会”将于 2024 年 7 月 16-17 日&#xff0c;在北京朝…

跟着李沐学AI:Softmax回归

回归 vs 分类 回归用于估计一个连续值 分类用于预测一个离散类别 两个经典的数据集&#xff1a; MNIST数据集&#xff1a; MNIST&#xff08;Modified National Institute of Standards and Technology&#xff09;数据集是一个广泛应用于机器学习和深度学习领域的手写数字…

车载视频监控管理方案:无人驾驶出租车安全出行的保障

近日&#xff0c;无人驾驶出租车“萝卜快跑”在武汉开放载人测试成为热门话题。随着科技的飞速发展&#xff0c;无人驾驶技术已逐渐从概念走向现实&#xff0c;特别是在出租车行业中&#xff0c;无人驾驶出租车的推出将为公众提供更为安全、便捷、高效的出行服务。 视频监控技…

【Linux杂货铺】2.进程优先级

1.进程优先级基本概念 进程优先级是操作系统中用于确定进程调度顺序的一个指标。每个进程都会被分配一个优先级&#xff0c;优先级较高的进程会在调度时优先被执行。进程优先级的设定通常根据进程的重要性、紧急程度、资源需求等因素来确定。操作系统会根据进程的优先级来决定进…

免费开源的工业物联网(IoT)解决方案

什么是 IoT&#xff1f; 物联网 (IoT) 是指由实体设备、车辆、电器和其他实体对象组成的网络&#xff0c;这些实体对象内嵌传感器、软件和网络连接&#xff0c;可以收集和共享数据。 IoT 设备&#xff08;也称为“智能对象”&#xff09;范围广泛&#xff0c;包括智能恒温器等…

PHP企业工商年报大师微信小程序系统源码

&#x1f31f;轻松搞定年报难题&#xff01;&#x1f4bc; &#x1f680;【一键直达&#xff0c;年报不再繁琐】 还在为每年的企业工商年报而头疼吗&#xff1f;繁琐的表格、复杂的流程&#xff0c;让人望而却步&#xff1f;现在有了“企业工商年报大师”微信小程序&#xff…

Docker:基础概念、架构与网络模式详解

1.Docker的基本概念 1.1.什么是docker Docker是一个用于开发,交付和运行应用程序的开放平台.docker使您能够将应用程序域基础框架分开,以便你可以快速开发交付软件.使用docker,你可以管理你的基础架构以管理应用程序相同的方式.通过利用docker用于交付,测试和部署代码的方法,你…

解决Ubuntu 22.04 vscode搜狗拼音输入无法输入中文

关闭vscode 编辑~/.bashrc&#xff0c;添加以下内容 export GTK_IM_MODULExim export QT_IM_MODULExim export XMODIFIERSimfcitx source ~/.bashrc && code 重新加载环境变量后启动code&#xff0c;即可以正常使用搜狗拼音输入法了

MongoDB - 查询操作符:比较查询、逻辑查询、元素查询、数组查询

文章目录 1. 构造数据2. MongoDB 比较查询操作符1. $eq 等于1.1 等于指定值1.2 嵌入式文档中的字段等于某个值1.3 数组元素等于某个值1.4 数组元素等于数组值 2. $ne 不等于3. $gt 大于3.1 匹配文档字段3.2 根据嵌入式文档字段执行更新 4. $gte 大于等于5. $lt 小于6. $lte 小于…

java内部类的本质

定义在类内部&#xff0c;可以实现对外部完全隐藏&#xff0c;可以有更好的封装性&#xff0c;代码实现上也往往更为简洁。 内部类可以方便地访问外部类的私有变量&#xff0c;可以声明为private从而实现对外完全隐藏。 在Java中&#xff0c;根据定义的位置和方式不同&#xf…

什么是IOT 可编程控制系统

IOT可编程控制系统GF-MAXCC是一种基于物联网&#xff08;Internet of Things, IoT&#xff09;技术的可编程中央控制主机。它集成了多种先进的技术和功能&#xff0c;能够在物联网系统中发挥关键作用&#xff0c;实现对多种设备的集中管理和控制。 一、定义与概述 定义&#x…