非web项目如何配置Druid监控

参考: http://blog.csdn.net/binglovezi/article/details/50610269
两种方式:
第一种方式.jmx
(2)修改项目的启动脚本,加上启动参数:
-Djava.net.preferIPv4Stack=true 
-Dcom.sun.management.jmxremote 
-Djava.rmi.server.hostname=192.168.10.89 
-Dcom.sun.management.jmxremote.port=9876 
-Dcom.sun.management.jmxremote.authenticate=false  
-Dcom.sun.management.jmxremote.ssl=false 
比如:
java -jar -Djava.net.preferIPv4Stack=true -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=192.168.10.89   -Dcom.sun.management.jmxremote.port=9876  -Dcom.sun.management.jmxremote.authenticate=false  -Dcom.sun.management.jmxremote.ssl=false "business.jar" &

(2)随便找一个web项目,配置监控的过滤器:

  
	DruidStatView  
	com.alibaba.druid.support.http.StatViewServlet  
	  
	  
		jmxUrl  
		service:jmx:rmi:///jndi/rmi://192.168.10.89:9876/jmxrmi  
	  
	  
		loginUsername  
		admin  
	  
	  
		loginPassword  
		admin  
	  
  
  
	DruidStatView  
	/druid/*  
 

第二种方式:sh
在服务端执行一下这个shell:
from: https://github.com/alibaba/druid/tree/master/src/main/scripts
#!/bin/sh
if [ -z "$JAVA_HOME" ] ; then
  echo "Error: JAVA_HOME is not defined."
  exit 1
fi
basepath=$(cd `dirname $0`; pwd)
dubboName=$(basename $basepath)
pid=$(ps -ef | grep $dubboName | grep -v grep | grep -v "$0" |  awk '{print $2 }')
#echo $pid
"$JAVA_HOME/bin/java" -Dfile.encoding="UTF-8" -cp "./lib/druid-1.0.5.jar:$JAVA_HOME/lib/tools.jar" com.alibaba.druid.support.console.DruidStat  $@ $pid

请在{'-sql','-ds','-act'}参数中选择一个或多个
Usage: druidStat -help | -sql -ds -act [-detail] [-id id] [refresh-interval]
参数: 
  -help             打印此帮助信息
  -sql              打印SQL统计数据
  -ds               打印DataSource统计数据
  -act              打印活动连接的堆栈信息
  -detail           打印统计数据的全部字段信息
  -id id            要打印的数据的具体id值
  pid               使用druid连接池的jvm进程id
  refresh-interval  自动刷新时间间隔, 以秒为单位


说明: 
  -sql,-ds,-act参数中要至少指定一种数据进行打印, 可以
    组合使用, 比如 -sql -ds 一起的话就打印两种统计数据
  -id id可以跟 -sql 或-ds组合, 比如  -sql -id 5 或 -ds -id 1086752
  pid必需指定, refresh-interval可选, 如不指定,则打印数据后退出
  pid和refresh-interval参数必需放在命令行的最后, 否则解析会出错


例子: 
  打印3983进程的sql 统计数据.
      >druidStat -sql 3983
  打印3983进程的ds统计数据.
      >druidStat -ds 3983
  打印3983进程的sql的id为10的详细统计数据.
      >druidStat -sql -id 10 -detail 3983
  打印3983进程的当前活动连接的堆栈信息
      >druidStat -act 3983
  打印3983进程的ds,sql,和act信息
      >druidStat -ds -sql -act 3983
  每隔5秒自动打印ds统计数据
      >druidStat -ds 3983 5


如果是web项目呢?
(1)配置Druid的过滤器

  
    DruidStatView  
    com.alibaba.druid.support.http.StatViewServlet  
      
            loginUsername  
            admin  
          
          
            loginPassword  
            admin  
          
  
  
	    DruidStatView  
	    /druid/*  
 

当然,无论是web还是非web,两种情况下连接池的参数中一定要开启监控才行:

        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
          
              
                  
              
          
    
       
      
          
          
          
      



你可能感兴趣的:(java)