zoukankan      html  css  js  c++  java
  • 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 线程数过多,影响性能

     

  • 相关阅读:
    矩阵遍历 局部处理 661. 图片平滑器
    最小堆make_heap(), pop_heap()和push_heap()
    vector<pair<int, int>>或者有序map
    简单的滑动窗口 643. 子数组最大平均数 I
    js中getYear()和getFullYear()的区别
    异常:No WebApplicationContext found: no ContextLoaderListener registered?
    异常:Duplicate key or integrity constraint violation message from server: "Duplicate entry '0' for key 1"
    异常:the type net.sf.hibernate.lockmode cannot be resolved, it is indirectly referenced from required .class files
    使用cxf写web service的简单实例
    struts1多文件上传、下载实例
  • 原文地址:https://www.cnblogs.com/xinfang520/p/10481632.html
Copyright © 2011-2022 走看看