首页 > 其他分享 >zabbix监控多JMX端口

zabbix监控多JMX端口

时间:2023-06-11 18:01:37浏览次数:53  
标签:jmx java 端口 JMX etc zabbix scripts port


1. 开启Tomcat JMX功能

CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote
-Djava.rmi.server.hostname=10.124.129.241
-Dcom.sun.management.jmxremote.port=8889
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false"

重启tomcat即可;

注:java程序都会提供一个JMX接口去进行采集相关的数据,其他开启方式请参考相关说明,我主要是已tomcat监控为主;

2. 编写自动发现端口脚本

 

[ root @ localhost scripts ] # cat /etc/zabbix/scripts/jmx_discovery.sh
#!/bin/bash
# function:monitor tcp connect status from zabbix
source / etc / bashrc > / dev / null 2 > & 1
source / etc / profile > / dev / null 2 > & 1
jmx_port_discovery ( ) {
jmx_port = ( $ ( cat / etc / zabbix / scripts / java . txt | cut - d "|" - f2 ) )
Tomcat_Name = ( $ ( cat / etc / zabbix / scripts / java . txt | cut - d "|" - f1 ) )
printf '{\n'
printf '\t"data":[\n'
for ( ( i = 0 ; i < $ { #jmx_port[@]};++i))
{
num = $ ( echo $ ( ( $ { #jmx_port[@]}-1)))
if [ "$i" != $ { num } ] ; then
printf "\t\t{ \n"
printf "\t\t\t\"{#JMX_PORT}\":\"${jmx_port[$i]}\",\n"
printf "\t\t\t\"{#JAVA_NAME}\":\"${Tomcat_Name[$i]}\"},\n"
else
printf "\t\t{ \n"
printf "\t\t \n"
printf "\t\t\t\"{#JMX_PORT}\":\"${jmx_port[$i]}\",\n"
printf "\t\t\t\"{#JAVA_NAME}\":\"${Tomcat_Name[$i]}\"}]}\n"
fi
}
}
case "$1" in
jmx_port_discovery )
jmx_port _discovery
; ;
* )
echo "Usage:$0 {jmx_port_discovery}"
; ;
esac
————————————————


 




编写/etc/zabbix/scripts/java.txt文件,内容如下:

[ root @ localhost scripts ] # cat /etc/zabbix/scripts/java.txt
Tomcat_442 | 8880
Tomcat_8591 | 8881
————————————————


 




注:其实这里有个弊端,不太智能,也就是需要把监控的jmx端口和相关服务名称写到这个文本里去,这里还需要网友提供一个更可靠的方法,还请大家不要栗色指教。

3. 编写jmx监控配置文件

 

[ root @ localhost ~ ] # cat /etc/zabbix/zabbix_agentd.conf.d/discovery_java_status.conf
UserParameter = java . jmx . discovery , / etc / zabbix / scripts / jmx_discovery . sh jmx_port_discovery
UserParameter = java . HeapMemoryUsage . status [ * ] , / usr / local / jdk1 . 7.0_71 / bin / java - jar / etc / zabbix / scripts / cmdline - jmxclient - 0.10.3.jar - 127.0.0.1 : $ 1 java . lang : type = Memory HeapMemoryUsage 2 > & 1 | grep $ 2 | cut - d " " - f2
UserParameter = java . NonHeapMemoryUsage . status [ * ] , / usr / local / jdk1 . 7.0_71 / bin / java - jar / etc / zabbix / scripts / cmdline - jmxclient - 0.10.3.jar - 127.0.0.1 : $ 1 java . lang : type = Memory NonHeapMemoryUsage 2 > & 1 | grep $ 2 | cut - d " " - f2
UserParameter = java . LoadClass . status [ * ] , / usr / local / jdk1 . 7.0_71 / bin / java - jar / etc / zabbix / scripts / cmdline - jmxclient - 0.10.3.jar - 127.0.0.1 : $ 1 java . lang : type = ClassLoading $ 2 2 > & 1 | cut - d " " - f6



 




 

4. 进行测试



zabbix监控多JMX端口_jar

zabbix监控多JMX端口 - 01



其实,整体大致就是如此,key都能定义好了,至于模板我相信大家都能写了。(我也是今天才刚刚弄了下,很多也还没有完善)有关不同java的服务,最好是查看一下相关的文档,比如tomcat官方文档。这里大家可以参考一下tomcat自带的模板,下面给大家展示一下效果图:



zabbix监控多JMX端口_jar_02

zabbix监控多JMX端口 - 02



zabbix监控多JMX端口_java_03

zabbix监控多JMX端口 - 03



谢谢"北京 - 小易"的分享。

 

标签:jmx,java,端口,JMX,etc,zabbix,scripts,port
From: https://blog.51cto.com/u_6186189/6458439

相关文章

  • kali开启ssh端口连接xshell
    先记一下主要命令启动ssh服务:systemctlstartssh.servicenetstat-lnt:再次查看端口状态,可以看到22端口已经成功开启第一步编辑ssh文件 vi/etc/ssh/sshd_config 将其修改为第二步重启ssh/etc/init.d/sshrestart重启或者servicesshstart重启/etc/init.d/sshstatu......
  • 如何修改服务器远程端口号3389?
    昨天给你们分享了电脑和服务器的安全基础知识,有讲到修改端口号,有必要时,这个端口,建议还是修改一下为好,最好改大一点,这样安全性会高一点,但如果面对高手级打击,就没有用了,通常高手级过NMAP扫描一个你的IP地址,端口便全部显现出来了。好了,下面我来告诉你们如何修改远程连接3389端口;首先......
  • EasyRTMPLive拉转推硬件设备访问端口返回404报错,该如何解决?
    TSINGSEE青犀视频的各个平台部署灵活,视频能力丰富且全面、能满足用户的多场景视频监控需求。平台各具特点,可支持多类型的设备、多协议接入,包括国标GB28181协议、RTMP/RTSP/Onvif协议、海康EHOME、海康SDK、大华SDK等,在视频流分发上,能支持全终端、全平台的视频流输出,包括RTSP、RTMP......
  • Kali 信息收集工具:子域、端口、目录、交互等
    子域名查询工具:Fierce是使用多种技术来扫描目标主机IP地址和主机名的一个DNS服务器枚举工具。运用递归的方式来工作。它的工作原理是先通过查询本地DNS服务器来查找目标DNS服务器,然后使用目标DNS服务器来查找子域名。fierce的主要特点就是可以用来定位独立IP空间对应域名和主机......
  • Kali Linux 之“端口扫描工具”
    一、NMAP扫描服务器端口和内网端口开放情况:扫描单个网址或IP地址:nmapIP地址nmap域名地址(不带协议头http或https)扫描内网整个网段:nmap192.168.1.0/24扫描多个主机(多个地址用空格间隔):nmap192.168.1.1192.168.1.2扫描指定的IP开放端口(使用半开扫描,指定端口号1-655......
  • 各种常用的默认端口号归纳
    博主归纳的太全了:原文链接:https://blog.csdn.net/Klhz555/article/details/113343083端口号的范围是从1~65535其中1~1024是被RFC3232规定好了的,被称作“众所周知的端口”(WellKnownPorts);从1025~65535的端口被称为动态端口(DynamicPorts),可用来建立与其它主机的会话,也可由用户自......
  • SQLServer查看端口号和修改端口号
    sqlserver默认的端口号是14331、查看端口号程序中找到SQLServerManagementStudio,连接sqlserver数据库,新建查询,运行execsys.sp_readerrorlog0,1,'listening'; 2、修改端口号所有程序中找到SQLServer配置管理器SQLServer网络配置--MSSQLSERVER的协议,TCP/IP,双击找到T......
  • zabbix--监控MySQL主从状态
    zabbix监控MySQL主从状态#搭建MySQL主从后,很多时候不知道从的状态是否ok,有时候出现异常不能及时知道,这里通过shell脚本结合zabbix实现监控并告警一般情况下,在MySQL的从上查看从的运行状态是通过Slave_IO_Running线程和Slave_SQL_Running线程是否ok,通过命令“showslavestatus\G......
  • zabbix--告警消息内容更改
    zabbix告警消息内容更改#自带的消息内容模板发送出来的消息着实有点丑陋,再加之是英文,这就让我有点尴尬了。如下默认的消息内容:更改过后的效果:操作步骤编辑默认的ReportproblemstoZabbixadministrators发送消息内容进入:配置->动作ReportproblemstoZabbixadmin......
  • zabbix--钉钉告警
    zabbix钉钉告警机制#群机器人是钉钉群的高级扩展功能,群机器人可以将第三方服务的信息聚合到群聊中,实现自动化的信息同步。例如:通过聚合GitHub,GitLab等源码管理服务,实现源码更新同步;通过聚合Trello,JIRA等项目协调服务,实现项目信息同步。不仅如此,群机器人支持Webhook协议的自定义......