1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > jsp调用python脚本_使用python脚本监控weblogic

jsp调用python脚本_使用python脚本监控weblogic

时间:2023-01-09 09:38:17

相关推荐

jsp调用python脚本_使用python脚本监控weblogic

1.python的脚本如下:

###############################################################################

#created on -07-09

#author : zhaolijun

#used to get weblogic server runtime infomation

#wls_ver:weblogic 10.3.5.0

###############################################################################

###############################################################################

# parameters define

###############################################################################

username='weblogic'

password='isp902isp'

url='t3://10.200.36.210:17101'

LOOPS=3

IntervalTime=30000

FILEPATH="e:/logs/"

newline = "\n"

###############################################################################

# define functions

###############################################################################

def WriteToFile(ServerName, SubModule, LogString, LSTARTTIME, FILENAME):

if SubModule == "ServerCoreInfo":

HeadLineInfo = "DateTime,ServerName,ExecuteThreadIdleCount,StandbyThreadCount,ExecuteThreadTotalCount,busythread,HoggingThreadCount"

elif SubModule == "DataSourceInfo":

HeadLineInfo = "DateTime,ServerName,DataSourceName,ActiveConnectionsCurrentCount,CurrCapacity,WaitingForConnectionCurrentCount,WaitingForConnectionTotal"

if not os.path.exists(FILENAME):

print "path not exist, create log file by self."

f = open(FILENAME, "a+")

f.write(HeadLineInfo + newline)

f.write(LSTARTTIME + "," + ServerName + "," + LogString + newline)

f.close()

f = None

else:

f = open(FILENAME, "a+")

f.write(LSTARTTIME + "," + ServerName + "," + LogString + newline)

f.close()

f = None

def getCurrentTime():

s=SimpleDateFormat("yyyyMMdd HHmmss")

currentTime=s.format(Date())

return currentTime

def GetJdbcRuntimeInfo():

domainRuntime()

servers = domainRuntimeService.getServerRuntimes();

print ' ******************DATASOURCE CONNECTION POOL RUNTIME INFORMATION*******'

for server in servers:

print 'SERVER: ' + server.getName();

ServerName=server.getName()

jdbcRuntime = server.getJDBCServiceRuntime();

datasources = jdbcRuntime.getJDBCDataSourceRuntimeMBeans();

for datasource in datasources:

ds_name=datasource.getName()

print('-Data Source: ' + datasource.getName() + ', Active Connections: ' + repr(datasource.getActiveConnectionsCurrentCount()) + ', CurrCapacity: ' + repr(datasource.getCurrCapacity())+' , WaitingForConnectionCurrentCount: '+repr(datasource.getWaitingForConnectionCurrentCount())+' , WaitingForConnectionTotal: '+str(datasource.getWaitingForConnectionTotal()));

FILENAME=FILEPATH + ServerName +"_"+ ds_name + "_"+ "DataSourceInfo" +".csv"

LSTARTTIME=getCurrentTime()

dsLogString=ds_name +','+ str(datasource.getActiveConnectionsCurrentCount())+','+repr(datasource.getCurrCapacity())+','+str(datasource.getWaitingForConnectionCurrentCount())+','+str(datasource.getWaitingForConnectionTotal())

WriteToFile(ServerName, "DataSourceInfo", dsLogString, LSTARTTIME, FILENAME)

def GetThreadRuntimeInfo():

domainRuntime()

servers=domainRuntimeService.getServerRuntimes();

print ' ******************SERVER QUEUE THREAD RUNTIME INFOMATION***************'

for server in servers:

print 'SERVER: ' + server.getName()

ServerName=server.getName()

threadRuntime=server.getThreadPoolRuntime()

hoggingThreadCount = str(threadRuntime.getHoggingThreadCount())

idleThreadCount = str(threadRuntime.getExecuteThreadIdleCount())

standbycount = str(threadRuntime.getStandbyThreadCount())

threadTotalCount = str(threadRuntime.getExecuteThreadTotalCount())

busythread=str(threadRuntime.getExecuteThreadTotalCount()-threadRuntime.getStandbyThreadCount()-threadRuntime.getExecuteThreadIdleCount()-1)

print ('-Thread :' + 'idleThreadCount:' + idleThreadCount+' ,standbycount:'+standbycount+' , threadTotalCount: '+threadTotalCount+' , hoggingThreadCount:'+hoggingThreadCount+' ,busythread:'+busythread)

FILENAME=FILEPATH + ServerName +"_"+ "ServerCoreInfo" +".csv"

LSTARTTIME=getCurrentTime()

serLogString=idleThreadCount+','+standbycount+','+threadTotalCount+','+busythread+','+hoggingThreadCount

WriteToFile(ServerName, "ServerCoreInfo", serLogString, LSTARTTIME, FILENAME)

###############################################################################

############ main

###############################################################################

if __name__ == '__main__':

from wlstModule import *#@UnusedWildImport

#import sys, re, os

#import java

from java.util import Date

from java.text import SimpleDateFormat

print 'starting the script ....'

connect(username,password, url);

try:

for i in range(LOOPS) :

GetThreadRuntimeInfo()

GetJdbcRuntimeInfo()

java.lang.Thread.sleep(IntervalTime)

except Exception, e:

print e

dumpStack()

raise

disconnect()

ColletRuntime.py

2.将脚本放到weblogic的安装目录D:\weblogic\bea\wlserver_10.3\common\bin下

3.修改collectionRuntime.py中的weblogic的用户名,密码,IP,端口,日志路径修改成正确的数据。

4.打开CMD窗口,切换到D:\weblogic\bea\wlserver_10.3\common\bin下,然后执行命令wlst.cmd CollectRuntime.py

5.在日志路径下会看到自动生成的CSV文件。能看到HoggingThread和busyThread的数据。

监控gc执行情况的方法如下:

1. 首先需要安装jdk,在jdk/bin目录下,例如:C:\Program Files (x86)\Java\jdk1.6.0_10\bin

2. 打开CMD窗口,切换到jdk/bin目录下,使用命令jstat -gcutil 4556 5s 100>d:/jstat/text.log,其中的4556为服务器的进程号。通过jconsole查询得出。

使用 > d:/jstat/text.log的方式可以将jstat的输出结果保存到文件中。

3. 在输出的结果中,可以看到full gc的输出结果。

4. 在监控full gc和hogging thread的过程中,adminserver是不用监控的。

计算方法:

1. full gc间隔,使用FGC列计算,最后一项减去第一项,除以场景时间(分)。

2. gc执行时间,使用FGCT列计算,最后一项减去第一项,除以场景的执行时间(秒)。

3. hogging thread 和 busy thread都是找出最大值即可

至此,监控过程全部完成。

Redis之使用python脚本监控队列长度

编辑python脚本redis_conn.py #!/usr/bin/env python #ending:utf-8 import redis def redis_conn(): pool = re ...

zabbix 调用python脚本监控 磁盘剩余空间(创建模版,创建监控项,创建触发器)

主要记录一下 使用zabbix自己创建模版.监控项.触发器,并调用python脚本. 需求:监控备份机磁盘剩余空间(windows系统) 一.安装zabbix_agent 比较简单 修改配置文 ...

Python 脚本 监控数据库状态

打算用这个脚本通过zabbix 监控Mariadb的,无奈要等Mariadb完全上线才行,所以先写一个粗略大致功能的版本. #coding:utf-8 #author:shiyiwen #versio ...

在nagios中使用python脚本监控linux主机

在被监控端192.168.5.1101.先把getload.py放到/usr/local/nagios/libexec内[root@nhserver1 ~]# vim /usr/local/nagio ...

写一个python脚本监控在linux中的进程

在虚拟机中安装Linux中的CentOS7系统 /s?id=1597320700700593557&wfr=spider&for= ...

linux:使用python脚本监控某个进程是否存在(不使用crontab)

背景: 需要每天定时去检测crontab进程是否启动,所以不能用crontab来启动检测脚本了,直接使用while 循环和sleep方式实现定时检测 # coding:utf-8 import os ...

WebLogic口令猜解工具【Python脚本】

WebLogic 默认端口7001 可以通过如下链接访问控制台 http://10.9.1.1:7001/console/login/LoginForm.jsp 写了一个简单的猜解脚本,半成品,做个记 ...

用 Python 脚本实现对 Linux 服务器的监控

目前 Linux 下有一些使用 Python 语言编写的 Linux 系统监控工具 比如 inotify-sync(文件系统安全监控软件).glances(资源监控工具)在实际工作中,Linux 系统 ...

随机推荐

Java异常处理机制 try-catch-finally 剖析

Java拥有着强大的异常处理机制,最近初步学习了下,感觉内容还是挺多的,特此来将自己的理解写出来与大家分享. 一.在Java代码code中,由于使用Myeclipse IDE,可以自动提醒用户哪里有 ...

Appium学习实践(五)遇到的坑(记录自己工作中遇到的坑以及解决方案,不定时更新)

1.错误截图,有时候测试用例执行错误的话,相对于复杂的log,一张错误截图也许能更明确哪里出的问题(当然有时,截图+log还是最好了) 坑:本来是想测试用例fail的时候捕获异常来执行截图操作,但是由 ...

Umbraco(7)-The Navigation Menu And A Parent Page with Infinite Children

原文链接:http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/umbraco7the-navigation-menu-and-a-par ...

linux driver module

本文将对Linux系统中的sysfs进行简单的分析,要分析sysfs就必须分析内核的driver-model(驱动模型),两者是紧密联系的.在分析过程中,本文将以platform总线和spi主控制器的 ...

Flink的高可用集群环境

Flink的高可用集群环境 Flink简介 Flink核心是一个流式的数据流执行引擎,其针对数据流的分布式计算提供了数据分布,数据通信以及容错机制等功能. 因现在主要Flink这一块做先关方面的学习, ...

Spyder设置代码自动补全

1.spyder 代码自动补齐设置方式在tools->preferences->IPython console->advanced Settings 下面,把User the gre ...

#11 UVA 10529 Dumb Bones

题意: 放一堆排,每放一张,有pa的概率让左边的全倒,有pb的概率让右边全倒 问在最优策略下,最少要放几张才能摆放出n张 1<=n<=1000 题解: 这题应该还是很经典的 首先是期望部分 ...

angular5中使用jsonp请求页面

说多了,都是眼泪,折腾了很久,各种百度,查到的例子,全都报错,可能是因为我的angular的版本太高,向下都不兼容? 我的angular版本为最新的5.2.11: 下面是正确的jsonp请求的方法 1 ...

mysql两列合成一列

update manage set mark = concat(mark,remark) select concat(mark,remark) as pp from manage

msf提权命令&sol;meterpreter下的几个命令

废话: 今天本来日学校内网.以为是台08.结果稀里糊涂居然日了宿舍哥们儿的PC机.按道理都该装杀毒的才对,我舍友都不装的.裸装上阵说的就是我舍友了.劝各位大佬.把杀毒装好.补丁打好. 通过这次我也学到 ...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。