xiaoyu il y a 3 ans
Parent
commit
18115d43d0

+ 13 - 0
admin/config/config.ini.php

@@ -24,4 +24,17 @@ $config['test_mchid'] = [
     1092, 10165, 10112
 ];
 
+$config['server'] = [
+    '39.99.250.4' => 'worker服务器',
+    '121.89.196.45' => 'worker服务器',
+    '121.89.201.55' => 'worker服务器',
+    '121.89.223.81' => 'worker服务器',
+    '39.101.140.116' => 'worker服务器',
+
+    '39.99.250.165' => '主数据库服务器',
+    '39.103.201.41' => '备份数据库服务器',
+    '39.103.141.163' => '后台服务器',
+
+];
+
 return $config;

+ 49 - 17
admin/control/arw_monitor.php

@@ -9,31 +9,63 @@ class arw_monitorControl extends SystemControl
 
     public function indexOp()
     {
+        global $config;
+        $servers = $config['server'];
         $ins = Cache::getInstance('cacheredis');
         $name = 'disk_monitor';
         $hash_data = $ins->hget($name, '');
         $result = [];
-        foreach ($hash_data as $ip => $str)
-        {
-            $str = str_replace('\t', "", $str);
-            $str = ltrim($str,'#');
-            $arrs = explode('#', $str);
-            foreach ($arrs as $arr) {
-                $data = explode(':', $arr);
-                $key = ltrim($data[0],'_');
-                $value = $data[1];
-                if($key == 'cur_time') {
-                    $cur_time = explode('-',$value);
-                    $value = "$cur_time[0]-$cur_time[1]-$cur_time[2] $cur_time[3]:$cur_time[4]:$cur_time[5]";
-                }else{
-                    $key = str_replace('_', "/", $key);
-                    $value = rtrim($value, '.');
+        $cur_time = time();
+        $ago_time = 0;
+
+        $time_check = function($stat_str, $cur_time) {
+            $value = explode('-', $stat_str);
+            $value = "$value[0]-$value[1]-$value[2] $value[3]:$value[4]:$value[5]";
+            $stat_time = strtotime($value);
+            if($stat_time == false) return false;
+
+            $check_seconds = 1800;
+            $diff_time = $cur_time - $stat_time;
+            if($diff_time > $check_seconds) {
+                return false;
+            }else{
+                return $diff_time;
+            }
+        };
+        foreach ($servers as $ip => $server_name) {
+            $hash_str = $hash_data[$ip];
+            $item = [];
+            if (!empty($hash_str)) {
+                $hash_str = str_replace('\t', "", $hash_str);
+                $hash_str = ltrim($hash_str, '#');
+                $arrs = explode('#', $hash_str);
+                foreach ($arrs as $arr) {
+                    $data = explode(':', $arr);
+                    $key = ltrim($data[0], '_');
+                    $value = $data[1];
+                    if ($key == 'cur_time') {
+                        $diff_time = $time_check($value, $cur_time);
+                        if ($diff_time == false) {
+                            $value = '定时更新未正常工作';
+                        } else {
+                            $ago_time = $diff_time;
+                        }
+                    } elseif (strpos($key, 'dev') !== false) {
+                        $key = str_replace('_', "/", $key);
+                        $value = explode(',', $value);
+                        $value = "{$value[1]}/{$value[0]}";
+                    } else {
+                        $key = str_replace('_', "/", $key);
+                        $value = rtrim($value, '.');
+                    }
+                    $item[$key] = $value;
+                    ksort($item);
                 }
-                $item[$key] = $value;
             }
-            $result[$ip] = $item;
+            $result[$ip . "({$server_name})"] = $item;
         }
         Tpl::output('data', $result);
+        Tpl::output('ago_time', $this->elapse_time($ago_time));
         Tpl::showpage('arw.monitor');
     }
 }

+ 24 - 37
admin/templates/default/arw.monitor.php

@@ -1,32 +1,8 @@
 <style>
     th label { display: inline-block;width: 60px; }
-    .lineLi {
-        min-width: 150px;
-        font-size: 12px;
-        color:#000;
-    }
-    #prompt ul .noLineLi {
-        background:none;
-    }
-    #prompt div {
-        display:inline-block;
-        background:none
-    }
-    #prompt ul .lineLi {
-        color:#000;
-    }
     th {
         width: 10px;
     }
-    .txt2 {
-        position: relative;
-    }
-    .btn-search {
-        position: absolute;
-        left: 332px;
-        margin-top: 3px;
-    }
-
 </style>
 
 <?php defined('InShopNC') or exit('Access Invalid!'); ?>
@@ -44,10 +20,14 @@
             <tbody>
             <tr>
                 <td class="tip_info">
-                    _dev_开头:总量,可用 <br/>
-                    _mnt_开头:总占用 <br/>
+                    dev开头:可用/总量 <br/>
+                    mnt开头:总占用 <br/>
                     cur_time:信息更新日期
                 </td>
+                <td>
+                    距上次更新时间:<span style="color: red; font-size: 16px"><?php echo $output['ago_time'];?></span>
+
+                </td>
             </tr>
             </tbody>
         </table>
@@ -61,19 +41,26 @@
         <?php if (count($output['data']) > 0) { ?>
             <?php
             foreach ($output['data'] as $key => $value) { ?>
-                <tr class="hover trFlex">
-                    <td class="align-center"><?php echo $key; ?></td>
+                <tr class="hover trFlex" style="height: 150px;">
+                    <td class="align-center"><span style="color: red; font-size: 16px"><?php echo $key; ?></span></td>
                     <td class="align-left">
-                    <?php foreach ($value as $k => $v){ ?>
-                        <span style="color: red; font-size: 16px">
-                                <?php echo $k;?>:
-                        </span>
-                        <span style="color: green; font-size: 16px">
-                                <?php echo $v;?>
-                        </span>
-                        <br/>
-                    <?php }?>
+                    <?php
+                        if(!empty($value)) {
+                            foreach ($value as $k => $v){
+                    ?>
+                            <span style="color: red; font-size: 16px">
+                                    <?php echo $k;?>:
+                            </span>
+                            <span style="color: green; font-size: 16px">
+                                    <?php echo $v;?>
+                            </span>
+                            <br/>
+                    <?php   }
+                        }else{
+                    ?>
+                        <span style="color: red; font-size: 16px">无统计数据</span>
                     </td>
+                    <?php } ?>
                 </tr>
             <?php } ?>
         <?php } else { ?>