Zabbix 通过 JMX 监控 java 进程
参考: [ JMX monitoring ] [ Zabbix Java gateway ] [ JMX Monitoring (Java Gateway) not Working ] [ Monitoring and Management Using JMX ]
这里会说明通过 JMX 监控 java 进程的配置过程以及需要注意的问题.
本文在 zabbix 已经安装好的基础之上展开. 如果使用 zabbix_proxy , 配置完全一致, 只需要打开zabbix_proxy 对 java app server 有所有端口的访问权限即可.
环境说明
基本环境
- OS: CentOS 7.x
- Zabbix 系列版本: 3.4.11
- zabbix-server IP: 172.16.1.10
- zabbix-java-gateway IP: 172.16.1.10
- java app server IP: 172.16.1.11
网络配置需求
zabbix 相关进程都监听在默认端口:
- zabbix-server: 10051
- zabbix-agentd: 10050
- zabbix-java-gateway: 10052
- zabbix-server: 访问 zabbix-agentd 10050
- zabbix-agentd: 访问 zabbix-server 10051
- zabbix-java-gateway: 访问 zabbix-agentd 所有随机端口权限. (原因可以查看 这里) 因为zabbix_java_gateway 还会使用一个随机端口来访问远程主机的 RMI 信息.
zabbix 配置
安装 zabbix-java-gateway
在 172.16.1.10 (zabbix-server / zabbix-java-gateway ) 上执行:
rpm -i https://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
yum -y install zabbix-java-gateway
**配置 /etc/zabbix/zabbix_java_gateway.conf **
LISTEN_IP="0.0.0.0"
LISTEN_PORT=10052
PID_FILE="/var/run/zabbix/zabbix_java.pid"
START_POLLERS=5
TIMEOUT=3
配置 /etc/zabbix/zabbix_server.conf
JavaGateway=localhost
JavaGatewayPort=10052
StartJavaPollers=5
关于 START_POLLERS 和 StartJavaPollers 值的设定需求: StartJavaPollers <= START_POLLERS ( [ 原因 ])
如果 StartJavaPollers > START_POLLERS, 会出现 zabbix-java-gateway 没有线程来接收进来的请求.
启动服务
# start zabbix-server
zabbix_server
# start zabbix-java-gateway
zabbix_java-gateway
Java App 启动参数的配置
具体可以参考 [ 这里 ].
启动参数如下
java \
-Djava.rmi.server.hostname=172.16.1.11 \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=18383 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-jar /data/app/demo.jar
这里需要说明:
- Djava.rmi.server.hostname : 这里需要指定 Java App 运行服务器的 IP 地址. 如果不指定这个参数, 则只接收来自 localhost 的请求.
- Dcom.sun.management.jmxremote.port: JMX 监听的端口. 只要不冲突即可.
附上shell 启动脚本
#!/bin/sh
# - start.sh
#
app=$1
basic_path=/data/app
# Ubuntu
host_ip=`ifconfig | egrep -A 2 "eth|ens" | awk -F "[: ]" '/\<inet\>/ && !/127.0.0.1/{sub(/^[ \t]+/,"");print $3}'`
# CentOS
# host_ip=`ifconfig| egrep -A 2 "eth|ens" | awk -F "[ X]+" '/\<inet\>/ && !/127.0.0.1/ {sub(/^[ \t]+/,"");print $2}'`
# first args could be jar name or directory name.
app_name=`echo $app | awk -F. '{print $1}'`
JAVA_OPS=" -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=18383 -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=$host_ip"
nohup /usr/bin/java $JAVA_OPS -jar $basic_path/$app_name/$app_name.jar >/dev/null 2>&1 &
[ $? == 0 ] && echo -e "Start Success!\n"
Zabbix GUI 配置
配置请看 [ 这里 ].
配置 JMX Interface:
- IP Address: Java APP 所在的服务器地址
- Port:
Dcom.sun.management.jmxremote.port所配置的端口 - Link 模板
在配置过程中需要注意的地方:
- zabbix-server ( 或者 zabbix-proxy ) 需要有访问 Java App Server 的所有随机端口的权限.
本地随机端口可以用: sysctl net.ipv4.ip_local_port_range 查看, 默认为 32768 - 60999, 所以在 Java App Server 上打开这些端口的对于 zabbix-server ( 或 zabbix-proxy ) 的访问权限.
Zabbix 通过 JMX 监控 java 进程的更多相关文章
- Linux记录-JMX监控JAVA进程
3.修改xxx.sh 加入export JAVA_OPTS="-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.mana ...
- 利用VisualVm和JMX远程监控Java进程
自Java 6开始,Java程序启动时都会在JVM内部启动一个JMX agent,JMX agent会启动一个MBean server组件,把MBeans(Java平台标准的MBean + 你自己创建 ...
- zabbix使用jmx监控tomcat
zabbix监控Tomcat/JVM实例性能(115) – 运维生存时间http://www.ttlsa.com/zabbix/zabbix-use-jmx-monitor-tomcat/ zabbi ...
- zabbix 部署 jmx 监控tomcat
zabbix提供了一个java gateway的应用去监控jmx(Java Management Extensions,即Java管理扩展)是一个为应用程序.设备.系统等植入管理功能的框架.JMX可以 ...
- zabbix通过jmx监控tomcat
Zabbix版本: Zabbix 3.0.2 一.服务端配置 1.安装jdk(版本1.7.0_79) 安装与配置比较简单,过程省略.执行java -version命令,出现类似界面表示成功. 2. ...
- Zabbix自动发现监控Tomcat进程
1.编辑自动发现脚本 自动发现脚本只支持JSON格式 #!/usr/bin/env python # -*- coding:utf-8 -*- import commands import psuti ...
- 通过JDK常用工具监控Java进程的内存占用情况
目录 1 JDK 工具的使用 2 查看 GC 日志信息 3 添加 JMS 远程监控 Tomcat是一款常用的Web容器, 它是运行在 JVM(Java Virtual Machine) 中的一个Jav ...
- 性能测试之监控--zabbix通过jmx监控tomcat
前提: 已经安装好了zabbix server 实验环境 Centos 7 Zabbix 3.0 Tomcat 7.0 JDK 1.8 安装JDK tar -zxvf jdk-8u181-linux- ...
- shell脚本--监控java进程存活脚本
#!/bin/bash base_dir=/opt war_processor="tomcat" jar_processor="manager-server.jar pl ...
随机推荐
- Median of Two Sorted Arrays(hard)
题目要求: 有两个排序的数组nums1和nums2分别为m和n大小. 找到两个排序数组的中位数.整体运行时间复杂度应为O(log(m + n)). 示例: 我的方法: 分别逐个读取两个数组的数,放到一 ...
- flash builder 4.6在debug调试时需要系统安装flashplayer debug版本
http://blog.csdn.net/cupid0051/article/details/46684295
- 3ds max启动慢怎么办?
有时候启动3ds max的时候一直卡在启动界面进不去怎么办? 在百度上搜到了下面这个解决方案,试了下还真有用: 具体就是进到这个文件夹,然后分别进入第一个和第三个文件夹删掉autodesk ...
- 我们在删除SQL Sever某个数据库表中数据的时候,希望ID重新从1开始,而不是紧跟着最后一个ID开始需要的命令
一.如果数据重要,请先备份数据 二.删除表中数据 SQL: Delete From ('表名') 如:Delete From abcd 三.执行新语句 SQL: dbcc checkident('表 ...
- ResultSet 可滚动性和可更新性
JDBC 2.0 API 为结果集增加了两个新的基本能力:可滚动性和可更新性,我想肯定满足了你的要求.在滚动结果集中可用的方法有: rs.previous();//向前滚动 rs.next();//向 ...
- Winform程序部署方式总结二——Windows Installer发布
针对Winform程序,介绍两种常用打包方式:ClickOnce和Windows Installer 应用程序如下: 二.Windows Installer发布 1.新建项目 创建后视图 第一步: 应 ...
- BZOJ 1834 网络扩容(最大流+费用流)
对于第一问,直接求最大流. 对于第二问,建源点s和汇点t,s连1容量为INF,费用为0的边,n连t容量为最大流+k,费用为0的边.这样就把最大流限制为最多增加k了. 限制需要求扩充的最小费用,原图的边 ...
- BZOJ 1076 奖励关(状压期望DP)
当前得分期望=(上一轮得分期望+这一轮得分)/m dp[i,j]:第i轮拿的物品方案为j的最优得分期望 如果我们正着去做,会出现从不合法状态(比如前i个根本无法达到j这种方案),所以从后向前推 如果当 ...
- BZOJ 1040 骑士(环套树DP)
如果m=n-1,显然这就是一个经典的树形dp. 现在是m=n,这是一个环套树森林,破掉这个环后,就成了一个树,那么这条破开的边连接的两个顶点不能同时选择.我们可以对这两个点进行两次树形DP根不选的情况 ...
- Luogu4899 IOI2018狼人(kruskal重构树+主席树)
可以发现询问的即是“由起点开始‘只经过编号大于等于l的点’所形成的连通块”与“由终点开始‘只经过编号小于等于r的点’所形成的连通块”是否有交集.于是建出重构树,就可以知道每个询问的连通情况了.现在要知 ...