import time
datetime = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())
date = time.strftime('%Y-%m-%d',time.localtime())
serverip=sys.argv[1]
port=sys.argv[2]
filename=sys.argv[3]
url="t3://" + str(serverip) + ":" + str(port)
def monitorServer():
global serverHealthState,OpenSocketsCurrentCount,OverallHealthState,SocketsOpenedTotalCount,State,serverName
serverRuntime()
cd("/")
HealthState = cmo.getHealthState()
tmpHealthState = str(HealthState).split(',')
tmpServerHealthState = str(tmpHealthState[1]).split(':')
serverHealthState = tmpServerHealthState[1]
penSocketsCurrentCount = cmo.getOpenSocketsCurrentCount()
verallHealthState = cmo.getOverallHealthState()
SocketsOpenedTotalCount = cmo.getSocketsOpenedTotalCount()
State = cmo.getState()
serverName = cmo.getName()
def monitorApplication():
global appName,appHealthState,OpenSessionsCurrentCount,OpenSessionsHighCount,SessionsOpenedTotalCount,Status
serverConfig()
appDeploys = cmo.getAppDeployments()
lastAppName = ""
for app in appDeploys:
appName = app.getName()
if appName != "domainhealth-100":
lastAppName = str(appName);
serverRuntime()
cd("/ApplicationRuntimes/" + str(appName))
HealthState = cmo.getHealthState()
tmpHealthState = str(HealthState).split(',')
tmpappHealthState = str(tmpHealthState[1]).split(':')
appHealthState = tmpappHealthState[1]
compoRts = cmo.getComponentRuntimes()
for compo in compoRts:
comName = compo.getName()
cd("/ApplicationRuntimes/" + str(appName) + "/ComponentRuntimes/" + str(comName))
penSessionsCurrentCount = cmo.getOpenSessionsCurrentCount()
penSessionsHighCount = cmo.getOpenSessionsHighCount()
SessionsOpenedTotalCount = cmo.getSessionsOpenedTotalCount()
Status = cmo.getStatus()
else:
appName = lastAppName
def monitorJVM():
global HeapFreeCurrent,HeapSizeCurrent,HeapFreePercent,HeapSizeMax
serverRuntime()
cd("/JVMRuntime/" + str(serverName))
HeapFreeCurrent = cmo.getHeapFreeCurrent()
HeapSizeCurrent = cmo.getHeapSizeCurrent()
HeapFreePercent = cmo.getHeapFreePercent()
HeapSizeMax = cmo.getHeapSizeMax()
def monitorExecuteThreadPool():
global ExecuteThreadIdleCount,ExecuteThreadTotalCount,threadHealthState,HoggingThreadCount,PendingUserRequestCount,QueueLength,StandbyThreadCount,Throughput,CompletedRequestCount,ExecuteThreadCount
serverRuntime()
ExecuteThreadIdleCount = ""
ExecuteThreadTotalCount = ""
CompletedRequestCount = ""
HealthState = ""
threadHealthState = ""
HoggingThreadCount = ""
PendingUserRequestCount = ""
QueueLength = ""
StandbyThreadCount = ""
Throughput = ""
try:
cd("/ThreadPoolRuntime/ThreadPoolRuntime")
ExecuteThreadIdleCount = cmo.getExecuteThreadIdleCount()
ExecuteThreadTotalCount = cmo.getExecuteThreadTotalCount()
CompletedRequestCount = cmo.getCompletedRequestCount()
HealthState = cmo.getHealthState()
tmpHealthState = str(HealthState).split(',')
tmpThreadHealthState = str(tmpHealthState[1]).split(':')
threadHealthState = tmpThreadHealthState[1]
HoggingThreadCount = cmo.getHoggingThreadCount()
PendingUserRequestCount = cmo.getPendingUserRequestCount()
QueueLength = cmo.getQueueLength()
StandbyThreadCount = cmo.getStandbyThreadCount()
ExecuteThreadCount = ExecuteThreadTotalCount - ExecuteThreadIdleCount - StandbyThreadCount
Throughput = cmo.getThroughput()
except WLSTException,e:
cd("/ExecuteQueueRuntimes/weblogic.kernel.Default")
ExecuteThreadIdleCount = cmo.getExecuteThreadCurrentIdleCount()
ExecuteThreadTotalCount = cmo.getExecuteThreadTotalCount()
ExecuteThreadCount = ExecuteThreadTotalCount - ExecuteThreadIdleCount
CompletedRequestCount = ""
HealthState = ""
threadHealthState = ""
HoggingThreadCount = ""
PendingUserRequestCount = cmo.getPendingRequestCurrentCount()
QueueLength = ""
StandbyThreadCount = ""
Throughput = ""
def monitorJDBCDataSource():
global dsName,ActiveConnectionsCurrentCount,ActiveConnectionsHighCount,ConnectionsTotalCount,CurrCapacityHighCount,HighestNumAvailable,HighestNumUnavailable,dsState,WaitingForConnectionCurrentCount,WaitingForConnectionHighCount
serverRuntime()
dsName = ""
ActiveConnectionsCurrentCount = ""
ActiveConnectionsHighCount = ""
ConnectionsTotalCount = ""
CurrCapacityHighCount = ""
HighestNumAvailable = ""
HighestNumUnavailable = ""
dsState = ""
WaitingForConnectionCurrentCount = ""
WaitingForConnectionHighCount = ""
try:
cd("/JDBCServiceRuntime/" + str(serverName))
dataSources = cmo.getJDBCDataSourceRuntimeMBeans()
for ds in dataSources:
dsName = ds.getName()
ActiveConnectionsCurrentCount = ds.getActiveConnectionsCurrentCount()
ActiveConnectionsHighCount = ds.getActiveConnectionsHighCount()
ConnectionsTotalCount = ds.getConnectionsTotalCount()
CurrCapacityHighCount = ds.getCurrCapacityHighCount()
HighestNumAvailable = ds.getHighestNumAvailable()
HighestNumUnavailable = ds.getHighestNumUnavailable()
dsState = ds.getState()
WaitingForConnectionCurrentCount = ds.getWaitingForConnectionCurrentCount()
WaitingForConnectionHighCount = ds.getWaitingForConnectionHighCount()
except WLSTException,e:
dsName = ""
ActiveConnectionsCurrentCount = ""
ActiveConnectionsHighCount = ""
ConnectionsTotalCount = ""
CurrCapacityHighCount = ""
HighestNumAvailable = ""
HighestNumUnavailable = ""
dsState = ""
WaitingForConnectionCurrentCount = ""
WaitingForConnectionHighCount = ""
def writeFile():
rptFile = open(str(filename),'a')
rptFile.write(str(datetime) + ","+ str(serverip) + "," + str(port) + "," + str(serverName) + "," + str(State) + "," + str(serverHealthState) + "," + str(OpenSocketsCurrentCount) + "," + str(SocketsOpenedTotalCount) + "," + str(appName) + "," + str(Status) + "," + str(appHealthState) + "," + str(OpenSessionsCurrentCount) + "," + str(OpenSessionsHighCount) + "," + str(SessionsOpenedTotalCount) + "," +str(threadHealthState) + "," + str(ExecuteThreadCount) + "," + str(ExecuteThreadIdleCount) + "," + str(StandbyThreadCount) + "," + str(HoggingThreadCount) + "," + str(ExecuteThreadTotalCount) + "," + str(Throughput) + "," + str(CompletedRequestCount) + "," + str(QueueLength) + "," + str(PendingUserRequestCount) + "," + str(HeapFreeCurrent) + "," + str(HeapSizeCurrent) + "," + str(HeapFreePercent) + "," + str(HeapSizeMax) + "," + str(dsName) + "," + str(dsState) + "," + str(ActiveConnectionsCurrentCount) + "," + str(ActiveConnectionsHighCount) + "," + str(ConnectionsTotalCount) + "," + str(HighestNumAvailable) + "," + str(HighestNumUnavailable) + "," + str(WaitingForConnectionCurrentCount) + "," +str(WaitingForConnectionHighCount))
rptFile.write('\n')
rptFile.close()
rptFile = open("/webapp/monitor/result/byDomain/" + str(serverip) + "_" + str(port) + ".csv",'a')
rptFile.write(str(datetime) + ","+ str(serverip) + "," + str(port) + "," + str(serverName) + "," + str(State) + "," + str(serverHealthState) + "," + str(OpenSocketsCurrentCount) + "," + str(SocketsOpenedTotalCount) + "," + str(appName) + "," + str(Status) + "," + str(appHealthState) + "," + str(OpenSessionsCurrentCount) + "," + str(OpenSessionsHighCount) + "," + str(SessionsOpenedTotalCount) + "," +str(threadHealthState) + "," + str(ExecuteThreadCount) + "," + str(ExecuteThreadIdleCount) + "," + str(StandbyThreadCount) + "," + str(HoggingThreadCount) + "," + str(ExecuteThreadTotalCount) + "," + str(Throughput) + "," + str(CompletedRequestCount) + "," + str(QueueLength) + "," + str(PendingUserRequestCount) + "," + str(HeapFreeCurrent) + "," + str(HeapSizeCurrent) + "," + str(HeapFreePercent) + "," + str(HeapSizeMax) + "," + str(dsName) + "," + str(dsState) + "," + str(ActiveConnectionsCurrentCount) + "," + str(ActiveConnectionsHighCount) + "," + str(ConnectionsTotalCount) + "," + str(HighestNumAvailable) + "," + str(HighestNumUnavailable) + "," + str(WaitingForConnectionCurrentCount) + "," +str(WaitingForConnectionHighCount))
rptFile.write('\n')
rptFile.close()
def writeErrFile():
rptFile = open(str(filename),'a')
rptFile.write(str(datetime) + ","+ str(serverip) + "," + str(port) + ",Not Running!")
rptFile.write('\n')
rptFile.close()
rptFile = open("/webapp/monitor/result/byDomain/" + str(serverip) + "_" + str(port) + ".csv",'a')
rptFile.write(str(datetime) + ","+ str(serverip) + "," + str(port))
rptFile.write('\n')
rptFile.close()
if __name__ == "main":
try:
connect('weblogic', '1234qwer,.', url)
except WLSTException,e:
writeErrFile()
monitorServer()
monitorApplication()
monitorJVM()
monitorExecuteThreadPool()
monitorJDBCDataSource()
writeFile()
exit()
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22408716/viewspace-751408/,如需转载,请注明出处,否则将追究法律责任。