<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
|
<%
|
String path = request.getContextPath();
|
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
|
%>
|
|
<!DOCTYPE HTML>
|
<html>
|
<head>
|
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE10" />
|
<base href="<%=basePath%>">
|
<link rel="stylesheet" type="text/css" href="css/basic.css" />
|
<script type="text/javascript" src="js/jquery-1.8.3.js"></script>
|
|
</head>
|
|
<body>
|
<div id="nav"></div>
|
</body>
|
<script type="text/javascript" src="jqueryui/jquery-ui.js"></script>
|
<script type="text/javascript">
|
var permits = [];
|
<% Object obj=session.getAttribute("permits");
|
if(obj!=null){
|
String permits =obj.toString(); %>
|
permits=<%=permits%>;
|
//console.info(permits);
|
<% } %>
|
|
var custompages = [];
|
<% Object cPages=session.getAttribute("custompages_json");
|
if(cPages!=null){
|
String custompages =cPages.toString(); %>
|
custompages=<%=custompages%>;
|
//console.info(permits);
|
<% } %>
|
// web平台状态
|
$(function() {
|
$('.web-status').tooltip(); // 显示提示框
|
|
/* 服务器数据磁盘进度条 */
|
var data_disk = $('.web-status .data-disk .progress'),
|
data_disk_label = data_disk.find('.progress-label');
|
data_disk.progressbar({
|
value: false,
|
change: function() {
|
data_disk_label.text(data_disk.progressbar( "value" ) + "%");
|
}
|
});
|
//data_disk.progressbar("value", 44);
|
|
/* cpu使用率进度条 */
|
var cpu = $('.web-status .cpu .progress'),
|
cpu_label = cpu.find('.progress-label');
|
cpu.progressbar({
|
value: false,
|
change: function() {
|
cpu_label.text(cpu.progressbar('value') + "%");
|
}
|
});
|
//cpu.progressbar('value', 20);
|
|
/* 内存的使用率 */
|
var memory = $('.web-status .memory .progress'),
|
memory_label = memory.find('.progress-label');
|
memory.progressbar({
|
value: false,
|
change: function() {
|
memory_label.text(memory.progressbar('value') + "%");
|
}
|
});
|
//memory.progressbar('value', 40);
|
|
/* 线程连接数 */
|
var link_num = $('.web-status .thread-link .progress'),
|
link_num_label = link_num.find('.progress-label');
|
link_num.progressbar({
|
value: false,
|
change: function() {
|
link_num_label.text(link_num.progressbar('value') + "%");
|
}
|
});
|
//link_num.progressbar('value', 40);
|
|
checkServerStatus();
|
function checkServerStatus(){
|
// 判断目前是否已经脱机
|
if(navigator.onLine) {
|
/* $('.web-status .web-link img').attr('src', 'image/web_link_good.gif');
|
$('.web-status .web-link img').attr('title', '网络连接:正常'); */
|
|
//flushImgTitle($('.web-status .web-link img'), 'image/web_link_good.gif', '网络连接:正常');
|
}else {
|
/* $('.web-status .web-link img').attr('src', 'image/web_link_error.gif');
|
$('.web-status .web-link img').attr('title', '网络连接:异常'); */
|
|
//flushImgTitle($('.web-status .web-link img'), 'image/web_link_error.gif', '网络连接:异常');
|
}
|
|
$.ajax({
|
type: "post",
|
url: "Server_stateAction_action_searchAll",
|
async:true,
|
dataType:'text',
|
data:null,
|
success: function(data){
|
var data = eval("("+data+")");
|
var model=eval("("+data.result+")");
|
//console.info(model);
|
|
if(model.code==1 && model.data.length>0){
|
for(var i=0;i<model.data.length;i++){
|
var disc_spance_percent = ((model.data[i].total_disc_space-model.data[i].free_disc_space)*100/model.data[i].total_disc_space).toFixed(0);
|
//服务器数据磁盘总量
|
var diskData = {
|
ele: data_disk,
|
value: parseInt(disc_spance_percent),
|
text: '服务器数据磁盘总量'+(model.data[i].total_disc_space/1024).toFixed(1)+'GB;剩余:'+(model.data[i].free_disc_space/1024).toFixed(1)+'GB'
|
};
|
|
|
var cpu_percent = (model.data[i].total_mem*100/model.data[i].max_mem).toFixed(0);
|
var cpuData = {
|
ele: cpu,
|
value: parseInt(cpu_percent),
|
text: 'TM:'+(model.data[i].total_mem/(1024*1024*1024)).toFixed(2)+'GB/'+(model.data[i].max_mem/(1024*1024*1024)).toFixed(2)+'GB'
|
};
|
|
var memoryData_percent = ((model.data[i].total_mem - model.data[i].free_men)*100/model.data[i].total_mem).toFixed(0);
|
var memoryData = {
|
ele: memory,
|
value: parseInt(memoryData_percent),
|
text: 'FM:'+((model.data[i].total_mem - model.data[i].free_men)/(1024*1024)).toFixed(0)+'MB/'+(model.data[i].total_mem/(1024*1024)).toFixed(0)+"MB"
|
};
|
|
var link_num_percent = (model.data[i].db_conn_count*100/model.data[i].db_conn_max).toFixed(0);
|
var linkNum = {
|
ele: link_num,
|
value: parseInt(link_num_percent),
|
text: 'DBC:'+model.data[i].db_conn_count+'/'+model.data[i].db_conn_max
|
};
|
|
updataWebStatus(diskData, cpuData, memoryData, linkNum);
|
|
|
var nowtime = new Date(model.data[i].note.replace(/\-/g, "/"));
|
var sertime = new Date((model.data[i].server_datetime).replace(/\-/g, "/"));
|
var timelong = Math.abs(parseInt(sertime-nowtime));
|
if((timelong/(1000*60))>2){
|
flushImgTitle($('.web-status .sql-link img'), 'image/sql_link_error.gif', '服务器实时更新数据:异常');
|
}else{
|
flushImgTitle($('.web-status .sql-link img'), 'image/sql_link_good.gif', '服务器实时更新数据:正常');
|
}
|
flushImgTitle($('.web-status .web-link img'), 'image/web_link_good.gif', '服务器连接:正常');
|
}
|
}else{
|
flushImgTitle($('.web-status .sql-link img'), 'image/sql_link_error.gif', '服务器实时更新数据:异常');
|
flushImgTitle($('.web-status .web-link img'), 'image/web_link_error.gif', '服务器连接:异常');
|
}
|
|
setTimeout(checkServerStatus, 2000);
|
},error:function(){
|
/* $('.web-status .sql-link img').attr('src', 'image/sql_link_error.gif');
|
$('.web-status .sql-link img').attr('title', '服务器实时更新数据:异常'); */
|
//console.info('******************');
|
flushImgTitle($('.web-status .sql-link img'), 'image/sql_link_error.gif', '服务器实时更新数据:异常');
|
flushImgTitle($('.web-status .web-link img'), 'image/web_link_error.gif', '服务器连接:异常');
|
setTimeout(checkServerStatus, 2000);
|
}
|
});
|
}
|
});
|
|
ServerLinsten();
|
//监控后台服务器的线程状况
|
function ServerLinsten(){
|
$.ajax({
|
type: "post",
|
url: "Process_surveyAction!searchAll",
|
async:true,
|
dataType:'text',
|
data:null,
|
success: function(data){
|
var data = eval("("+data+")");
|
var model=eval("("+data.result+")");
|
//console.info(model); //flag 0:异常 1:正常 2:暂未开启
|
var Alarm_flag = 0; //告警标识位
|
var Behind_flag = 0; //落后标识位
|
var Displan_flag = 0; //放电计划标识位
|
var Power_flag = 0; //机房停电标识位
|
var Control_flag = 0; //线程监控标识位
|
|
//console.info(model);
|
if(model.code==1 && model.data.length>0){
|
var alarm_batt = false; //电池告警
|
var alarm_dev = false; //设备告警
|
var alarm_cap = false; //容量告警
|
var badmon = false; //落后单体
|
|
for(var i=0;i<model.data.length;i++){
|
//console.info(model.data[i].ProcessName+"+++++++++");
|
if(model.data[i].ServerName == 'BMS_FBSDEV_ALARM'){
|
//告警线程
|
if(model.data[i].ProcessName == 'BMS_FBSDEV_ALARM_BATT'){
|
if(model.data[i].ServerFlag == 0){
|
alarm_batt = 0;
|
}else{
|
alarm_batt = checkTimeOut2(model.data[i]);
|
}
|
}else if(model.data[i].ProcessName == 'BMS_FBSDEV_ALARM_DEV'){
|
if(model.data[i].ServerFlag == 0){
|
alarm_dev = 0;
|
}else{
|
alarm_dev = checkTimeOut2(model.data[i]);
|
}
|
}
|
if(Alarm_flag ==2 || model.data[i].ServerFlag == 2){
|
Alarm_flag = 2;
|
continue;
|
}
|
Alarm_flag = alarm_dev && alarm_dev;
|
}else if(model.data[i].ServerName == 'BMS_FBSDEV_BADBATT'){
|
|
if(model.data[i].ProcessName == 'BMS_FBSDEV_BADBATT_MON'){
|
//落后单体线程
|
if(model.data[i].ServerFlag == 0){
|
badmon = 0;
|
}else{
|
badmon = checkTimeOut2(model.data[i]);
|
}
|
}else if(model.data[i].ProcessName == 'BMS_FBSDEV_BADBATT_CAP'){
|
//容量告警线程
|
if(model.data[i].ServerFlag == 0){
|
alarm_cap = 0;
|
}else{
|
alarm_cap = checkTimeOut2(model.data[i]);
|
}
|
}
|
if(Behind_flag == 2 || model.data[i].ServerFlag == 2){
|
Behind_flag = 2;
|
continue;
|
}
|
Behind_flag = badmon && alarm_cap;
|
}else if(model.data[i].ServerName == 'BMS_FBSDEV_PLAN'){
|
//放电计划线程
|
if(model.data[i].ProcessName == 'BMS_FBSDEV_PLAN'){
|
if(model.data[i].ServerFlag == 0){
|
Displan_flag = 0;
|
}else{
|
Displan_flag = checkTimeOut2(model.data[i]);
|
}
|
}
|
if(Displan_flag == 2 || model.data[i].ServerFlag == 2){
|
Displan_flag = 2;
|
continue;
|
}
|
}else if(model.data[i].ServerName == 'BMS_FBSDEV_POWER_FAIL'){
|
//机房停电线程
|
if(model.data[i].ProcessName == 'BMS_FBSDEV_POWER_FAIL'){
|
if(model.data[i].ServerFlag == 0){
|
Power_flag = 0;
|
}else{
|
Power_flag = checkTimeOut2(model.data[i]);
|
}
|
}
|
if(Power_flag == 2 || model.data[i].ServerFlag == 2){
|
Power_flag = 2;
|
//console.info(model.data[i].ServerFlag+"%%%%%%%%%%");
|
continue;
|
}
|
}else if(model.data[i].ServerName == 'BMS_FBSDEV_LISTEN'){
|
//线程监控线程
|
if(model.data[i].ProcessName == 'BMS_FBSDEV_LISTEN'){
|
if(model.data[i].ServerFlag == 0){
|
Control_flag = 0;
|
}else{
|
Control_flag = checkTimeOut2(model.data[i]);
|
}
|
}
|
if(Control_flag == 2 || model.data[i].ServerFlag == 2){
|
Control_flag =2;
|
continue;
|
}
|
}else{
|
//console.info("======="+model.data[i].ProcessName+"=======");
|
}
|
}
|
//判断告警线程状态
|
if(Alarm_flag == 2){
|
flushImgTitle($('.web-status .warning-ele img'), 'image/webStatus/warning_gray.gif', '告警监测线程:未启用');
|
}else if(Alarm_flag == 1){
|
flushImgTitle($('.web-status .warning-ele img'), 'image/webStatus/warning_normal.gif', '告警监测线程:正常');
|
}else{
|
flushImgTitle($('.web-status .warning-ele img'), 'image/webStatus/warning_error.gif', '告警监测线程:异常');
|
}
|
|
//判断落后单体线程状态
|
if(Behind_flag == 2){
|
flushImgTitle($('.web-status .behind-ele img'), 'image/webStatus/behind_gray.gif', '落后单体监测线程:未启用');
|
}else if(Behind_flag == 1){
|
flushImgTitle($('.web-status .behind-ele img'), 'image/webStatus/behind_normal.gif', '落后单体监测线程:正常');
|
}else{
|
flushImgTitle($('.web-status .behind-ele img'), 'image/webStatus/behind_error.gif', '落后单体监测线程:异常');
|
}
|
|
//判断放电计划监测线程
|
if(Displan_flag == 2){
|
flushImgTitle($('.web-status .plan-ele img'), 'image/webStatus/plan_gray.gif', '放电计划监测线程:未启用');
|
}else if(Displan_flag == 1){
|
flushImgTitle($('.web-status .plan-ele img'), 'image/webStatus/plan_normal.gif', '放电计划监测线程:正常');
|
}else{
|
flushImgTitle($('.web-status .plan-ele img'), 'image/webStatus/plan_error.gif', '放电计划监测线程:异常');
|
}
|
|
|
//判断机房停电监测线程
|
if(Power_flag == 2){
|
flushImgTitle($('.web-status .break-ele img'), 'image/webStatus/break_ele_gray.gif', '机房停电监测线程:未启用');
|
}else if(Power_flag == 1){
|
flushImgTitle($('.web-status .break-ele img'), 'image/webStatus/break_ele_normal.gif', '机房停电监测线程:正常');
|
}else{
|
flushImgTitle($('.web-status .break-ele img'), 'image/webStatus/break_ele_error.gif', '机房停电监测线程:异常');
|
}
|
|
//判断线程监控线程
|
if(Control_flag == 2){
|
flushImgTitle($('.web-status .control img'), 'image/webStatus/control_gray.gif', '线程监控程序运行:未启用');
|
}else if(Control_flag == 1){
|
flushImgTitle($('.web-status .control img'), 'image/webStatus/control_normal.gif', '线程监控程序运行:正常');
|
}else{
|
flushImgTitle($('.web-status .control img'), 'image/webStatus/control_error.gif', '线程监控程序运行:异常');
|
}
|
}else{
|
flushImgTitle($('.web-status .warning-ele img'), 'image/webStatus/warning_error.gif', '告警监测线程:异常');
|
flushImgTitle($('.web-status .behind-ele img'), 'image/webStatus/behind_error.gif', '落后单体监测线程:异常');
|
flushImgTitle($('.web-status .plan-ele img'), 'image/webStatus/plan_error.gif', '放电计划监测线程:异常');
|
flushImgTitle($('.web-status .break-ele img'), 'image/webStatus/break_ele_error.gif', '机房停电监测线程:异常');
|
flushImgTitle($('.web-status .control img'), 'image/webStatus/control_error.gif', '线程监控程序运行:异常');
|
}
|
setTimeout("ServerLinsten()", 5000);
|
},error:function(){
|
flushImgTitle($('.web-status .warning-ele img'), 'image/webStatus/warning_error.gif', '告警监测线程:异常');
|
flushImgTitle($('.web-status .behind-ele img'), 'image/webStatus/behind_error.gif', '落后单体监测线程:异常');
|
flushImgTitle($('.web-status .plan-ele img'), 'image/webStatus/plan_error.gif', '放电计划监测线程:异常');
|
flushImgTitle($('.web-status .break-ele img'), 'image/webStatus/break_ele_error.gif', '机房停电监测线程:异常');
|
flushImgTitle($('.web-status .control img'), 'image/webStatus/control_error.gif', '线程监控程序运行:异常');
|
setTimeout("ServerLinsten()", 5000);
|
}
|
});
|
}
|
|
//判断服务器服务是否超时
|
function checkTimeOut(temp){
|
var flag = 0;
|
if(temp!=undefined){
|
var startTime = new Date(temp.ProcessTime.replace(/\-/g, "/"));
|
var endTime = new Date();
|
var totalms = (endTime.getTime()-startTime.getTime())/1000;
|
if(totalms<temp.OutTime){
|
flag = 1;
|
}
|
}
|
return flag;
|
}
|
|
// 判断服务器服务是否超时2.0
|
function checkTimeOut2(temp){
|
var serverTime = temp.note.replace(/\-/g, "/"); // 服务器时间
|
var flag = 0;
|
if(temp!=undefined){
|
var startTime = new Date(temp.ProcessTime.replace(/\-/g, "/"));
|
var endTime = new Date(serverTime);
|
var totalms = Math.abs((endTime.getTime()-startTime.getTime())/1000);
|
if(totalms<temp.OutTime){
|
flag = 1;
|
}
|
}
|
return flag;
|
}
|
|
// 更新web平台服务器状态查看
|
function updataWebStatus(diskData, cpuData, memoryData, linkNum) {
|
/* diskData.ele.progressbar("value", diskData.value);
|
cpuData.ele.progressbar("value", cpuData.value);
|
memoryData.ele.progressbar("value", memoryData.value);
|
linkNum.ele.progressbar("value", linkNum.value);
|
|
$('.web-status .data-disk').attr('title', diskData.text);
|
$('.web-status .cpu').attr('title', cpuData.text);
|
$('.web-status .memory').attr('title', memoryData.text);
|
$('.web-status .thread-link').attr('title', linkNum.text); */
|
flushProgress($('.web-status .data-disk'), diskData);
|
flushProgress($('.web-status .cpu'), cpuData);
|
flushProgress($('.web-status .memory'), memoryData);
|
flushProgress($('.web-status .thread-link'), linkNum);
|
|
(new Image()).src = 'image/web_link_error.gif';
|
(new Image()).src = 'image/sql_link_error.gif';
|
|
(new Image()).src = 'image/webStatus/behind_error.gif';
|
(new Image()).src = 'image/webStatus/behind_gray.gif';
|
|
(new Image()).src = 'image/webStatus/break_ele_error.gif';
|
(new Image()).src = 'image/webStatus/break_ele_gray.gif';
|
|
(new Image()).src = 'image/webStatus/control_error.gif';
|
(new Image()).src = 'image/webStatus/control_gray.gif';
|
|
(new Image()).src = 'image/webStatus/plan_error.gif';
|
(new Image()).src = 'image/webStatus/plan_gray.gif';
|
|
(new Image()).src = 'image/webStatus/warning_error.gif';
|
(new Image()).src = 'image/webStatus/warning_gray.gif';
|
|
flushImgTitle($('.web-status .sql-link img'), 'image/sql_link_good.gif', '服务器实时更新数据:正常');
|
|
/* $('.web-status .sql-link img').attr('src', 'image/sql_link_good.gif');
|
$('.web-status .sql-link img').attr('title', '服务器实时更新数据:正常'); */
|
|
}
|
|
|
// 更新进度条内容
|
function flushProgress(element, data) {
|
data.ele.progressbar('value', data.value);
|
|
var eTitle = element.attr('title');
|
if(eTitle.length > 0) {
|
element.attr('title', data.text);
|
}else {
|
var eId = element.attr('aria-describedby');
|
$('#'+eId+' .ui-tooltip-content').text(data.text);
|
}
|
}
|
|
// 更新图片的tooltip
|
function flushImgTitle(element, url, txt) {
|
element.attr('src', url);
|
var eTitle = element.attr('title');
|
element.attr('src', url);
|
if(eTitle.length > 0) {
|
element.attr('title', txt);
|
}else {
|
var eId = element.attr('aria-describedby');
|
$('#'+eId+' .ui-tooltip-content').text(txt);
|
}
|
}
|
</script>
|
<script type="text/javascript" src="js/buildNav.js"></script>
|
</html>
|