Files
interactive/gms/KT/httpd/wwwroot/ccmonitor/status/tael.php
2026-08-07 17:38:18 +09:00

612 lines
17 KiB
PHP

<?
$serviceType = isset($_GET['service_type']) ? $_GET['service_type'] : $_POST['service_type'];
if($serviceType == "") $serviceType = 0;
//serviceType : the order described in conf file. --_-;
?>
<html>
<head>
<title>######## SYSTEM-HOSTING SERVICE STATUS ######## </title>
<STYLE type=text/css>
TD { FONT-SIZE: 12pt; COLOR: #000000; FONT-FAMILY: 'ARIAL,굴림체'; TEXT-DECORATION: none; }
TR { FONT-SIZE: 12pt; COLOR: #000000; FONT-FAMILY: 'ARIAL,굴림체'; TEXT-DECORATION: none; }
TABLE { FONT-SIZE: 12pt; COLOR: #000000; FONT-FAMILY: 'ARIAL,굴림체'; TEXT-DECORATION: none; line-height : 120%}
INPUT { FONT-SIZE: 12pt; COLOR: #000000; FONT-FAMILY: 'ARIAL,굴림체'; TEXT-DECORATION: none; line-height : 120%}
}
</STYLE>
<meta http-equiv="Cache-Control" content="no-cache"/>
<meta http-equiv="Expires" content="0"/>
<meta http-equiv="Pragma" content="no-cache"/>
<link rel="stylesheet" href="clockstyle.css" type="text/css">
<style type="text/css">
#tooltip {position:absolute;
top:5;
left:5;
border:solid 3 ffccff;
background:ffffcc;
color:660066;
font-size:9pt;
width:580;
height:20;
padding:2;
overflow:hidden;
z-index:10;
display:none;
}
</style>
<? require "layer.js";?>
<script language="javascript1.2" type="text/javascript" src="clock.js" ></script>
</head>
<body onLoad="UpdateClocks()">
<form name="frm" action=<?=$_SERVER['PHP_SELF']?> method=POST>
<input type="hidden" name="service_type" value="<?= $serviceType ?>">
<table border="0" cellspacing="0" width="100%">
<tr bgcolor=#003366 class="ratNavText">
<td ID="Clock0" width="25%" > </td>
<td ID="Clock1" width="25%" > </td>
<td ID="Clock2" width="25%" > </td>
<td ID="Clock3" width="25%" > </td>
</tr>
<tr bgcolor=#003366 class="ratNavText">
<td ID="Clock4" width="25%" > </td>
<td ID="Clock5" width="25%" > </td>
<td ID="Clock6" width="25%" > </td>
<td ID="Clock7" width="25%" > </td>
</tr>
</table>
<br>
<table border="0" cellspacing="1" width="530" align="center">
<tr align="center">
<td> <h3>######## ICS STATUS ########</h3></td>
</tr>
</table>
<table border="0" cellspacing="1" width="430" align="center">
<tr align="left">
<td>
<img src="images/bu14.gif" width=20 height=20>norm&nbsp;&nbsp;
<img src="images/bu77.gif" width=20 height=20>nomon&nbsp;&nbsp;
<img src="images/bu15.gif" width=20 height=20>fail&nbsp;&nbsp;
</td>
</tr>
</table>
<div id="tooltip" name="tooltip" width=530></div>
<?
/* <marquee id="tooltip" name="tooltip"></marquee>*/
$server_addr[0][0] = "127.0.0.1";
$server_addr[0][1] = "30002";
$server_addr[0][2] = "KT-IDC";
$tot = count($server_addr);
for($i=0; $i < $tot; $i++){
if($i%3 == 0) echo "<table align=\"center\"><tr>";
$fp = @fsockopen("udp://{$server_addr[$i][0]}", $server_addr[$i][1], $errno, $errstr);
if (!$fp) {
echo "ERROR: $errno - $errstr<br>\n";
continue;
} else {
fwrite($fp,"GET_SERVSTATUS", 15);
while ( 1 )
{
$test2 = fread($fp, 4096);
$test .= trim($test2);
echo "TEST :\n$test2<br>"; // tael@solbox.com
$j = strlen($test2); if($j < 1024) break;
}
fclose($fp);
}
//echo "\n<!-- TEST:\n$test\n-->\n";
?>
<td valign=top>
<?
$pt = new parsePipe();
$test = $pt->nullTrim($test);
$tmpArr = $pt->textArr($test);
$serviceName = $pt->serviceName($test);
$result = $pt->parseIt($tmpArr[$serviceType]);
$tot_tr = $pt->countIt();
?>
<table border=1 cellpadding=1 cellspacing=0>
<tr height="60">
<td colspan="3">
<center><b>
<font color="#000066" size="5">
<!--
<?= $serviceName[$serviceType][0] ?>
-->
<?
if($serviceName[$serviceType][0]=='AION')
echo "AION NCSOFT";
?><br><br>
</font>
</b>
</center>
</td>
</tr>
<tr align="center">
<td width="200"><center><b><font color="#000066">Name</font></b></center></td>
<td width="140"><center><b><font color="#000066">Server IP</font></b></center></td>
<td width="75"><center><b><font color="#000066">Port</font></b></center></td>
<!--
<td width="135"><center><b><font color="#000066">Status<br>Changed</font></b></center></td>
<td width="65"><center><b><font color="#000066">Total Disk</font></b></center></td>
<td width="65"><center><b><font color="#000066">Free</font></b></center></td>
<td width="25"><center><b><font color="#000066">Upload</font>
<img src="http://sh.0x31.com/status/images/bu14.gif" width=20 height=20>norm<br>
<img src="http://sh.0x31.com/status/images/bu16_1.gif" width=20 height=20>disb<br>
<img src="http://sh.0x31.com/status/images/bu15.gif" width=20 height=20>fsck<br>
</b>
</center>
</td>
<td width="50"><center><b><font color="#000066">Disk Busy(Lq)</font></b></center></td>
<td width="100"><center><b><font color="#000066">Traffic INB(Packets)</font></b></center></td>
<td width="100"><center><b><font color="#000066">Traffic OUTB(Packets)</font></b></center></td>
<td width="50"><center><b><font color="#000066">Conn EASTAB(TOT)</font></b></center></td>
-->
</tr>
<?
$totalDisk = 0;
$freeDisk = 0;
$usedDisk = 0;
$totalRTSCount = 0;
$totalTrafficINB = 0;
$totalPacketsINB = 0;
$totalTrafficOUTB = 0;
$totalPacketsOUTB = 0;
$totalConnEstab = 0;
$totalConnAll = 0;
for($j=0; $j<$tot_tr; $j++){
$add_alt = "";
if (!strcmp($result[$j][20], "99FFFF")) {
$add_alt = " (UPLOAD TARGET)";
} else if ($result[$j][10] == 1) {
$add_alt = " (UPLOAD MANUALLY DISABLED)";
} else if ($result[$j][10] == 2) {
$add_alt = " (FSCK RUNNING)";
} else {
$add_alt = "";
}
$alt_str =
"[NAME] : ".
$result[$j][2].
" [STATUS] : ".
$pt->translateIt($result[$j][0], 2).$add_alt.
" [TYPE] : ".
$pt->translateIt($result[$j][1], 0);
$totalDisk += $result[$j][8];
$freeDisk += $result[$j][9];
$usedDisk += ($result[$j][8] - $result[$j][9]);
if($result[$j][2]=="RC004_RCTS01" || $result[$j][2] == "RC004_RCTS02" || $result[$j][2] == "EVENT_DB01")
{
continue;
}
if($result[$j][2] == "EVENT_DB02" || $result[$j][2] == "EVENT_PGLB01")
{
continue;
}
if ($result[$j][1] == 1) {
$totalRTSCount += 1;
}
/* Packets INB */
if ($result[$j][16] != '-') {
$totalPacketsINB += $result[$j][16];
}
/* Traffic INB */
if ($result[$j][17] != '-') {
$totalTrafficINB += $result[$j][17];
}
/* Packets OUTB */
if ($result[$j][18] != '-') {
$totalPacketsOUTB += $result[$j][18];
}
/* Traffic OUTB */
if ($result[$j][19] != '-') {
$totalTrafficOUTB += $result[$j][19];
}
/* Connection Estblished */
if ($result[$j][14] != '-') {
$totalConnEstab += $result[$j][14];
}
/* Connection All */
if ($result[$j][15] != '-') {
$totalConnAll += $result[$j][15];
}
?>
<span onmouseover="showtip('<?=$alt_str?>');" onmouseout="hidetip();">
<tr>
<?
if (strrpos($pt->tailer($result[$j][2]), "^") == false)
$servName = $pt->tailer($result[$j][2]);
else
$servName = substr($pt->tailer($result[$j][2]), 0, strrpos($pt->tailer($result[$j][2]), "^"));
?>
<?
switch($result[$j][0])
{
case 2 :
$bgcolor = 'red';
/*
$font_servName = "<font color='red'><b>".$servName."</b></font>";
$font_servIp = "<font color='red'><b>".$result[$j][3]."</b></font>";
$font_servPort = "<font color='red'><b>".$pt->translateIt($result[$j][4],4)."</b></font>";
*/
break;
case 1 :
$bgcolor = 'white';
/*
$font_servName = $servName;
$font_servIp = $result[$j][3];
$font_servPort = $pt->translateIt($result[$j][4],4);
*/
break;
default :
$bgcolor = 'white';
/*
$font_servName = $servName;
$font_servIp = $result[$j][3];
$font_servPort = $pt->translateIt($result[$j][4],4);
*/
break;
}
?>
<td bgcolor=<?=$bgcolor?>><?=$pt->translateIt($result[$j][0],1)?>&nbsp;&nbsp;<?=$servName?></td>
<td bgcolor=<?=$bgcolor?> align="center"><?=$result[$j][3]?></td>
<td bgcolor=<?=$bgcolor?> align="center"><?=$pt->translateIt($result[$j][4],4)?></td>
</tr>
</span>
<?
}
?>
</table></td>
<?
if($i%3 == 2) echo "</table></tr>"; //
}
?>
<table>
</table>
<?
$command = "wget --http-user=ktsh --http-password=5rhkswp0 -O ./mrtg_img/total_aion-day.png http://mrtg.ktsh.co.kr:88/customer/NCSOFT/total_aion-day.png";
system($command);
?>
<!---MRTG START---------->
<br>
<TABLE align="center" BORDER=0 CELLPADDING=0 CELLSPACING=10>
<H5> ◐ AION Cache 서버 트래픽 정보 ◑</H5>
<tr>
<td><img src='mrtg_img/total_aion-day.png'></td>
</tr>
</table>
<!---MRTG END ---------->
<?
////////////////////
//Print REFRESHER
////////////////////
extract($_POST);
$refresh_rate = $_REQUEST['refresh_rate'];
if($refresh_rate<1 || $refresh_rate>1000)
$refresh_rate = 60;
?>
<br>
<table align="center">
<tr>
<td>
Refresh Rate :
<input type=text name=refresh_rate value=<?=$refresh_rate?>>
<input type=submit value=SET>
(MIN : 1, MAX : 1000)
<input type="hidden" name="chk" value="0">
</form>
</td>
</tr><tr>
<td align=right>
<form action=<?=$_SERVER['PHP_SELF']?> method=POST>
<input type="hidden" name="service_type" value="<?= $serviceType?>">
<input type=hidden name=refresh_rate value=30>
<input type=submit value=RESET(30)>
</form>
</td>
</tr>
</table>
<script language="javascript" type="text/javascript" src="tooltip.js" ></script>
<script language=javascript>
function showtip(text) {
tooltip.innerText=text;
tooltip.style.display="inline";
}
function hidetip() {
tooltip.style.display="none";
}
function movetip() {
tooltip.style.pixelTop=event.y+document.body.scrollTop;
tooltip.style.pixelLeft=event.x+document.body.scrollLeft + 10;
}
document.onmousemove=movetip;
</script>
</body>
</html>
<META http-equiv="refresh" content="<?=$refresh_rate?>; url=<?=$PHP_SELF?>?refresh_rate=<?=$refresh_rate?>&service_type=<?= $serviceType ?>">
<?
########
#CLASSES
########
class parsePipe {
var $tot_line;
function parseIt($givenText){
$cnt = 0;
$minValue = 0;
$maxValue = 0;
$minLevel = 1000;
$tmp_arr = array();
$temp_arr = explode("\r\n", $givenText);
$result_arr[$i][9] = "";
$this->tot_line = count($temp_arr) == 1 ? 0 : count($temp_arr) - 1;
for($i=0; $i < $this->tot_line; $i++){
if($temp_arr[$i]!='') {
$result_arr[$i] = explode("|", $temp_arr[$i]);
$result_arr[$i][20] = "";
$tmp_arr[$i] = ($result_arr[$i][9] == '' || $result_arr[$i][9] == '-') ? 0 : $this->nullTrim($result_arr[$i][9]);
$result_arr[$i][8] = $this->nullTrim($result_arr[$i][8]);
$result_arr[$i][9] = $this->nullTrim($result_arr[$i][9]);
$result_arr[$i][10] = $this->nullTrim($result_arr[$i][10]);
/*
if($result_arr[$i][9] != '-' && $result_arr[$i] != '' && $result_arr[$i] != 0) {
if($cnt == 0) {
$minValue = $result_arr[$i][9];
$cnt++;
}
if($minValue > $result_arr[$i][9]) {
$minValue = $result_arr[$i][9];
}
}
*/
if ($result_arr[$i][11] != '-' && $result_arr[$i] != '' && $result_arr[$i] != 0) {
if ($minLevel > $result_arr[$i][11]) {
$minLevel = $result_arr[$i][11];
}
}
}
}
for ($i = 0; $i < $tot_tr; $i++) {
if ($result_arr[$i][11] != '-' && $result_arr[$i] != '' && $result_arr[$i] != 0 && $result_arr[$i][11] <= $minLevel) {
if($result_arr[$i][9] != '-' && $result_arr[$i] != '' && $result_arr[$i] != 0) {
if($cnt == 0) {
$minValue = $result_arr[$i][9];
$cnt++;
}
if($minValue > $result_arr[$i][9]) {
$minValue = $result_arr[$i][9];
}
}
}
}
//echo "minLevel $minLevel minValue $minValue<br>";
$cnt = 0;
arsort($tmp_arr);
reset($tmp_arr);
while (list ($key, $val) = each ($tmp_arr)) {
//echo "$key = $val<br>";
if($val != 0) {
if($cnt == 0) {
if ($minLevel < $result_arr[$key][11] ||
$result_arr[$key][10] > 0) {
$result_arr[$key][20] = "yellow";//$maxValue;
} else {
//echo "11 ".$result_arr[$key][11]." 10 ".$result_arr[$key][10]."<br>";
$maxValue = $val;
$result_arr[$key][20] = "99FFFF";
$cnt++;
}
} else {
//if($minValue == $val) {
if($val < (2 * 1024 * 1024 * 1024 * 10)) {
$result_arr[$key][20] = "red";
} else if(($maxValue - $val) < (1024 * 1024 * 1024) &&
$minLevel == $result_arr[$key][11]) {
//echo "1GB Highed<br>";
//echo "minLevel $minLevel maxValue $maxValue<br>";
$result_arr[$key][20] = "99FFFF";
} else {
//echo "1GB Lowed<br>";
$result_arr[$key][20] = "yellow";//$maxValue;
}
}
} else {
$result_arr[$key][20] = "white";
}
}
return $result_arr;
}
function countIt(){
return $this->tot_line;
}
function translateIt($parsedText, $type){
if($parsedText == '') return;
$eServerType = array('WWW', 'RTS', 'RC', 'CCDB', 'RCTS', 'GTS', "RCDB");
$eStatus = array('<img src=images/bu16_1.gif width=20 height=20>',
'<img src=images/bu14.gif width=20 height=20>',
'<img src=images/bu15.gif width=20 height=20>',
'<img src=images/bu77.gif width=20 height=20>');
$eStatusUP = array('<img src=images/bu14.gif width=20 height=20>',
'<img src=images/bu16_1.gif width=20 height=20>',
'<img src=images/bu15.gif width=20 height=11>');
$eStatusChar = array('UNKNOWN', 'ALIVE', 'DEAD', 'NO MONITORING');
switch($type){
case 0:
return $eServerType[$parsedText];
return '';
case 1:
return $eStatus[$parsedText];
case 2:
return $eStatusChar[$parsedText];
case 3:
if(trim($parsedText) == "-" || $parsedText == "" ) return "-";
else {
if (trim($parsedText) / 1024 / 1024 > 1024) {
return sprintf("<b>%.2fGB</b>",
trim($parsedText) / 1024 / 1024 / 1024 );
} else {
if (trim($parsedText) / 1024 > 1024) {
if (trim($parsedText) / 1024 / 1024 > 10) {
return sprintf("<font color=\"blue\"><b>%.2fMB</b></font>",
trim($parsedText) / 1024 / 1024 );
} else {
return sprintf("<b>%.2fMB</b>",
trim($parsedText) / 1024 / 1024 );
}
} else {
if (trim($parsedText) > 1024) {
return sprintf("%.2fKB",
trim($parsedText) / 1024 );
} else {
return sprintf("%dB",
trim($parsedText));
}
}
}
}
case 8:
if(trim($parsedText) == "-" || $parsedText == "") return "-";
else return sprintf("%.2lfG", (trim($parsedText) / 1024) / 1024 / 1024);
case 9:
if(trim($parsedText) == "-" || $parsedText == "" ) return "-";
else {
if (trim($parsedText) / 1024 / 1024 / 1024 > 1024) {
return sprintf("%.2fT", trim($parsedText) / 1024 / 1024 / 1024 / 1024);
} else
return sprintf("%.2fG", trim($parsedText) / 1024 / 1024 / 1024);
}
case 10:
return $eStatusUP[$parsedText];
case 30:
if(trim($parsedText) == "-" || $parsedText == "" ) return "-";
else {
if (trim($parsedText) / 1024 / 1024 > 1024) {
return sprintf("%.2fG",
trim($parsedText) / 1024 / 1024 / 1024 );
} else {
if (trim($parsedText) / 1024 > 1024) {
return sprintf("%.2fM",
trim($parsedText) / 1024 / 1024 );
} else {
if (trim($parsedText) > 1024) {
return sprintf("%.2fK",
trim($parsedText) / 1024 );
} else {
return sprintf("%d",
trim($parsedText));
}
}
}
}
default:
return $parsedText;
}
}
function nullTrim($tmp_str)
{
$return_str = "";
$maxLength = strlen($tmp_str);
for($i=0 ; $i < $maxLength ; $i++) {
if(ord(substr($tmp_str, $i, 1)) != 0 || $tmp_str != " ") {
$return_str .= substr($tmp_str, $i, 1);
}
}
return $return_str;
}
function textArr($text)
{
$cnt = -1;
$tmp_cnt = 0;
$str_arr = array();
$tmp_search_str = "";
$temp_arr = explode("\r\n", $text);
for($i=0; $i<sizeof($temp_arr); $i++) {
$split_str = explode("|", $temp_arr[$i]);
$search_str = explode("_", $split_str[2]);
if($tmp_search_str != $search_str[0]) {
$tmp_search_str = $search_str[0];
//$str_arr[$cnt][30] = $search_str[0];
//echo $str_arr[$cnt][0]."<br>".$tmp_search_str."->".$cnt."<-"."<br>";
$cnt++;
}
$str_arr[$cnt] .= $temp_arr[$i]."\r\n";
}
return $str_arr;
}
function serviceName($text)
{
$cnt = -1;
$tmp_cnt = 0;
$str_arr = array();
$tmp_search_str = "";
$temp_arr = explode("\r\n", $text);
for($i=0; $i<sizeof($temp_arr); $i++) {
$split_str = explode("|", $temp_arr[$i]);
$search_str = explode("_", $split_str[2]);
//echo $split_str[0]."<br>";
if($tmp_search_str != $search_str[0]) {
$tmp_search_str = $search_str[0];
$cnt++;
}
$str_arr[$cnt][0] = $tmp_search_str;
if($split_str[0] == 2) {
$str_arr[$cnt][1] = "dead";
}
// $str_arr[4][1] = "dead";
// $str_arr[1][1] = "dead";
}
return $str_arr;
}
function tailer($name)
{
$temp_arr = explode("_", $name);
$temp_arr2 = substr($name, strlen($temp_arr[0]) + 1, strlen($name));
return $temp_arr2;
}
function noYear($date)
{
$date = substr($date, 5, 14);
return $date;
}
}
?>