Linux记录-JMX监控JAVA进程
3.修改xxx.sh
加入
export JAVA_OPTS="-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=10.203.12.64"
找到nohup java xxx 然后改为
nohup java ${JAVA_OPTS}
4.重启服务
sh xxx stop
ps -ef | grep java
kill -9 (jps | grep -i "IdeProvider" | awk 'NR==1{print $1}')
sh xxx start
5.安装并启动open-falcon agent(从安装的server拷贝agent过来,然后启动服务,xxx server也要装agent)
#新建目录:mkdir -p /app/open-falcon
#上传到服务器并解压
tar xvf agent.tar.gz
#修改/app/open-falcon/agent/conf/cfg.json
heartbeat模块和transfer模块下的ip地址,将127.0.0.1:6030和127.0.0.1:8433两个地址中的127.0.0.1
改成open-falcon的server的IP地址xxxxxx就可以了,端口不需要改。
#启动服务
nohup /app/open-falcon/agent/bin/falcon-agent -c /app/open-falcon/agent/config/cfg.json &
开启服务后,机器会开启1988端口,有防火墙的可以添加防火墙规则,增加1988端口。
#检查下进程和端口
netstat -antp | grep 1988
ps -ef | grep -i "falcon"
6.jmxmon部署
#cd /app/open-falcon上传jmxmon包
#解压:tar xvf jmxmon-v0.0.2.tar
#cp conf.example.properties conf.properties
#修改配置jmxmon-v0.0.2/conf.properties
# 需要监听的本地jmx端口,支持监听多个端口,多端口用逗号分隔
jmx.ports=8999
# 本地agent的上报url,如果使用open-falcon的默认配置,则这里不需要改变
agent.posturl=http://localhost:1988/v1/push
#启动服务
sh control start
sh control tail查看日志,或者cat var/app.log以确认程序是否正常启动
7.falcon-server验证
http://xxxx:9090/ xxx/xxx 搜索主机名
####################################################################################################
参考:http://book.open-falcon.com/zh_0_2/usage/jmx.html
https://github.com/toomanyopenfiles/jmxmon/blob/master/README.md
jmxmon 简介
jmxmon是一个基于open-falcon的jmx监控插件,通过这个插件,结合open-falcon agent,
可以采集任何开启了JMX服务端口的java进程的服务状态,并将采集信息自动上报给open-falcon服务端
主要功能
通过jmx采集java进程的jvm信息,包括gc耗时、gc次数、gc吞吐、老年代使用率、新生代晋升大小、活跃线程数等信息。
对应用程序代码无侵入,几乎不占用系统资源。
采集指标
Counters Type Notes
parnew.gc.avg.time GAUGE 一分钟内,每次YoungGC(parnew)的平均耗时
concurrentmarksweep.gc.avg.time GAUGE 一分钟内,每次CMSGC的平均耗时
parnew.gc.count GAUGE 一分钟内,YoungGC(parnew)的总次数
concurrentmarksweep.gc.count GAUGE 一分钟内,CMSGC的总次数
gc.throughput GAUGE GC的总吞吐率(应用运行时间/进程总运行时间)
new.gen.promotion GAUGE 一分钟内,新生代的内存晋升总大小
new.gen.avg.promotion GAUGE 一分钟内,平均每次YoungGC的新生代内存晋升大小
old.gen.mem.used GAUGE 老年代的内存使用量
old.gen.mem.ratio GAUGE 老年代的内存使用率
thread.active.count GAUGE 当前活跃线程数
thread.peak.count GAUGE 峰值线程数
建议设置监控告警项
不同应用根据其特点,可以灵活调整触发条件及触发阈值
告警项 触发条件 备注
gc.throughput all(#3)<98 gc吞吐率低于98%,影响性能
old.gen.mem.ratio all(#3)>90 老年代内存使用率高于90%,需要调优
thread.active.count all(#3)>500 线程数过多,影响性能
Linux记录-JMX监控JAVA进程的更多相关文章
- Zabbix 通过 JMX 监控 java 进程
参考: [ JMX monitoring ] [ Zabbix Java gateway ] [ JMX Monitoring (Java Gateway) not Working ] [ Monit ...
- Linux记录-JMX监控Tomcat上传到falcon
1.登录测试服务器xxxxxx xxxxxx su root输入xxxx 2.先修改Tomcat的启动脚本,(linux下为catalina.sh),添加以下内容: CATALINA_OPTS=&qu ...
- 利用VisualVm和JMX远程监控Java进程
自Java 6开始,Java程序启动时都会在JVM内部启动一个JMX agent,JMX agent会启动一个MBean server组件,把MBeans(Java平台标准的MBean + 你自己创建 ...
- 通过JDK常用工具监控Java进程的内存占用情况
目录 1 JDK 工具的使用 2 查看 GC 日志信息 3 添加 JMS 远程监控 Tomcat是一款常用的Web容器, 它是运行在 JVM(Java Virtual Machine) 中的一个Jav ...
- Linux删除多个java进程的其中一个
一.背景: Linux后台运行了多个Java程序,进程名都是java. 执行pkill java会一次性杀掉所有的java进程. 二.解决思路: 先通过一定的检索条件,定位出指定的java进程 然后解 ...
- shell脚本--监控java进程存活脚本
#!/bin/bash base_dir=/opt war_processor="tomcat" jar_processor="manager-server.jar pl ...
- 监控java进程是否正常运行
@echo off set _task=java.exe :checkstart for /f "tokens=1" %%n in ('tasklist ^| find " ...
- Java进程监控
目录 1.引言 2. 程序启停, 为进程自定义项目名称 3. 操作系统判断 4. 获取进程信息 5. 内存,CPU信息 6. 堆内存信息 7. 端口信息 8. 线程信息 9. MXBean使用样例 9 ...
- 利用JMX统计远程JAVA进程的CPU和Memory---jVM managerment API
从JAVA 5开始,JDK提供了一些JVM检测的API,这就是有名的java.lang.management 包,包里提供了许多MXBean的接口类,可以很方便的获取到JVM的内存.GC.线程.锁.c ...
随机推荐
- python列表解析式,字典解析式,集合解析式和生成器
一.列表解析式(列表推倒式): 功能:是提供一种方便的列表创建方法,所以,列表解析式返回的是一个列表. 1 lst = [1, 3, 5, 8, 10] 2 ll = [x+x for x in ls ...
- 局域网共享hfs 软件使用
前言 由于想从局域网同学电脑上偷点小片,又不想用u盘拷贝.所有在同学电脑上打开hfs软件,通过自己电脑ie浏览器(chrome不行报错)下载即可. 流程 1.两台电脑在同一局域网下,在同学电脑上打开h ...
- 【XSY2751】Mythological IV 线性插值
题目描述 已知\(f(x)\)为\(k\)次多项式. 给你\(f(0),f(1),\ldots,f(k)\),求 \[ \sum_{i=1}^nf(i)q^i \] \(k\leq 500000,n\ ...
- python学习日记(基础数据类型及其方法01)
数字 int 主要是用于计算的,常用的方法有一种 #既十进制数值用二进制表示时,最少使用的位数i = 3#3的ASCII为:0000 0011,即两位 s = i.bit_length() print ...
- 自学Python4.2-装饰器
自学Python之路-Python基础+模块+面向对象自学Python之路-Python网络编程自学Python之路-Python并发编程+数据库+前端自学Python之路-django 自学Pyth ...
- Codeforces Round #543 Div1题解(并不全)
Codeforces Round #543 Div1题解 Codeforces A. Diana and Liana 给定一个长度为\(m\)的序列,你可以从中删去不超过\(m-n*k\)个元素,剩下 ...
- Luogu P5290 / LOJ3052 【[十二省联考2019]春节十二响】
联考Day2T2...多亏有这题...让我水了85精准翻盘进了A队... 题目大意: 挺简单的就不说了吧...(这怎么简述啊) 题目思路: 看到题的时候想了半天,不知道怎么搞.把样例画到演草纸上之后又 ...
- KVM改NAT为Bridge
kvm 改nat为桥接在安装一个拥有虚拟化功能的Linux操作系统(此处以CentOS为例),一般我们有两种方法:1.在光盘安装的时候安装好虚拟化包或者PXE服务器上配置好虚拟化包2.手动在没有安装虚 ...
- centos7系统安装完成后一些基本的优化
安装完centos7.3后,做一些基本的操作 基本操作一:主机名 centos7有一个新的修改主机名的命令hostnamectl # hostnamectl set-hostname --static ...
- Nginx安装,操作简单
命令列表 先把所有的命令给出来了. yum -y install gcc-c++ yum -y install wget yum install -y pcre pcre-devel yum inst ...