Parcourir la source

前后端修改

demon il y a 8 ans
Parent
commit
4657142535

+ 30 - 2
hos-broker/src/main/java/com/yihu/hos/common/util/SigarUtil.java

@ -167,6 +167,10 @@ public class SigarUtil {
            Cpu timer = sigar.getCpu();
            CpuInfo infos[] = sigar.getCpuInfoList();
            Cpu cpu = sigar.getCpu();
            ThreadCpu threadCpu = sigar.getThreadCpu();
            CpuInfo[] cpuInfoList = sigar.getCpuInfoList();
            CpuPerc cpuPerc = sigar.getCpuPerc();
            CpuInfo info1 = infos[0];
            //cpu信息
@ -303,8 +307,26 @@ public class SigarUtil {
        try {
            netConfig = sigar.getNetInterfaceConfig();
            NetInterfaceStat netIfStat = sigar.getNetInterfaceStat(netConfig.getName());
            // 取到当前机器的IP地址
            String address = null;
            try {
                address = InetAddress.getLocalHost().getHostAddress();
                InetAddress inet = InetAddress.getLocalHost();
                // 没有出现异常而正常当取到的IP时,如果取到的不是网卡循回地址时就返回
                // 否则再通过Sigar工具包中的方法来获取
                if (!NetFlags.LOOPBACK_ADDRESS.equals(address)) {
                    address = netConfig.getAddress();
                }
            } catch (UnknownHostException e) {
                address = netConfig.getAddress();
            }
            Map<String, Object> bps = populate(netConfig.getName());//bps
            netMap.put("address", netConfig.getAddress());
            netMap.put("name", netConfig.getName());
            netMap.put("address", address);
            netMap.put("mac", netConfig.getHwaddr());
            netMap.put("type", netConfig.getType());
            netMap.put("broadcast", netConfig.getBroadcast());
            netMap.put("netmask", netConfig.getNetmask());
            netMap.put("rxPackets", netIfStat.getRxPackets());
@ -325,7 +347,12 @@ public class SigarUtil {
        for (int i = 0; i < ifaces.length; i++) {
            NetInterfaceConfig cfg = sigar.getNetInterfaceConfig(ifaces[i]);
            if (NetFlags.LOOPBACK_ADDRESS.equals(cfg.getAddress()) || (cfg.getFlags() & NetFlags.IFF_LOOPBACK) != 0
                    || NetFlags.NULL_HWADDR.equals(cfg.getHwaddr())) {
                    || NetFlags.NULL_HWADDR.equals(cfg.getHwaddr())
                    || NetFlags.ANY_ADDR.equals(cfg.getAddress())) {
                continue;
            }
            if ((cfg.getFlags() & 1L) <= 0L) {
                System.out.println("!IFF_UP...skipping getNetInterfaceStat");
                continue;
            }
            logger.info(cfg.getName() + "IP地址:" + cfg.getAddress());// IP地址
@ -380,4 +407,5 @@ public class SigarUtil {
    }
}

BIN
hos-broker/src/main/resources/libsigar-x86-linux.so


BIN
hos-broker/src/main/resources/sigar-x86-winnt.dll


+ 10 - 4
src/main/java/com/yihu/hos/monitor/service/ServerMonitorService.java

@ -12,9 +12,7 @@ import org.springframework.stereotype.Service;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.*;
/**
 * Created by chenweida on 2016/1/27.
@ -89,8 +87,16 @@ public class ServerMonitorService {
    public Result getHosts() {
        mongoOperations = new MongoTemplate(mongo, envHealth);
        Set<String> collections = mongoOperations.getCollectionNames();
        List<Map<String,Object>> result = new ArrayList<>();
        Iterator<String> iterator = collections.iterator();
        while (iterator.hasNext()){
            String host = iterator.next();
            Map<String,Object> hostMap = new HashMap<>();
            hostMap.put("host",host);
            result.add(hostMap);
        }
        ActionResult actionResult = new ActionResult();
        actionResult.setData(collections);
        actionResult.setData(result);
        return actionResult;
    }

+ 2 - 4
src/main/webapp/WEB-INF/ehr/jsp/monitor/server/sEnvManage.jsp

@ -24,10 +24,8 @@
<div id="div_wrapper">
    <!--左边 区域-->
    <div position="left"  style="margin-left:10px;margin-top:10px;">
        <div class="m-form-control" style="margin-bottom: 15px">
            <input type="text" id="div_wrapper_left_inp_search" placeholder="请输入服务器名"/>
        </div>
        <ul id="div_wrapper_left_ul_resourcetree" class="m-snav"></ul>
        <input type="hidden" id="nowHost">
        <ul id="div_wrapper_left_ul_resourcetree" class="m-snav"  style="margin-left:50px;margin-top:40px;"></ul>
    </div>
    <div position="center" style="margin-left:10px;margin-top:10px;margin-right:10px;">
        <!-- ####### 查询条件部分 ####### -->

+ 111 - 103
src/main/webapp/WEB-INF/ehr/jsp/monitor/server/sEnvManageJs.jsp

@ -3,8 +3,10 @@
<script src="${contextRoot}/develop/lib/plugin/echarts/echarts-all.js"></script>
<%--<script src="${contextRoot}/develop/echarts/echarts.js"></script>--%>
<script>
    var host ="";
    $(function () {
        initTree();
        //l-layout-left
        //初始化layout
        $("#div_wrapper").ligerLayout({
@ -31,9 +33,28 @@
        var type = $(".div-menu .active").attr("data-item");
        var beginTime = $("#repeatStartTime").ligerDateEditor("getValue");
        var endTime = $("#repeatEndTime").ligerDateEditor("getValue");
        var host = '192.168.131.11'; //TODO 通过树获取服务器IP
        alert(host);
        getServerInfo(host,type,beginTime,endTime);
        getCpnInfo(host,type,endTime);
        getInfo(host,type,endTime);
        $('#div_wrapper_left_ul_resourcetree').on("click","li",function(){
           $(this).addClass("active");
            $(this).siblings("li").removeClass("active");
            var host = $(this).find("span").text();
            var beginTime = $("#repeatStartTime").ligerDateEditor("getValue");
            var endTime = $("#repeatEndTime").ligerDateEditor("getValue");
            if(beginTime=="" && $endTime=="")
            {
                $.ligerDialog.error("请选择起始结束时间!");
                return false;
            }
            var type = $(".div-menu .active").attr("data-item");
            //获取服务器监控数据
            getServerInfo(host,type,beginTime,endTime);
            getInfo(host,type,endTime);
        });
        //搜索按钮事件
        $(".m-form-control").on("click","#btnSearch",function(){
@ -46,10 +67,10 @@
            }
            var type = $(".div-menu .active").attr("data-item");
            var host = '192.168.131.11'; //TODO 通过树获取服务器IP
            host = $("#div_wrapper_left_ul_resourcetree").find("li.active").find("span").text();
            //获取服务器监控数据
            getServerInfo(host,type,beginTime,endTime);
            getCpnInfo(host,type,endTime);
            getInfo(host,type,endTime);
        })
        //选项卡切换时间
@ -60,12 +81,35 @@
            //获取服务器监控数据
            var beginTime = $("#repeatStartTime").ligerDateEditor("getValue");
            var endTime = $("#repeatEndTime").ligerDateEditor("getValue");
            var host = '192.168.131.11'; //TODO 通过树获取服务器IP
            host = $("#div_wrapper_left_ul_resourcetree").find("li.active").find("span").text();
            getServerInfo(host,type,beginTime,endTime);
            getCpnInfo(host,type,endTime);
            getInfo(host,type,endTime);
        })
    });
    function initTree(){
        //初始化树
        var $resourceTree = $('#div_wrapper_left_ul_resourcetree');
        $.ajax({
            type: "GET",
            url: "${contextRoot}/monitor/server/hosts",
            success: function (msg) {
                // 初始化树形菜单
                var data = msg.data;
                if(data!=null && data.length>0){
                    for(var i=0;i<data.length;i++){
                        if(i==0){
                            $resourceTree.append( "<li class='active'><span>"+data[i].host+"</span></li>");
                        }else{
                            $resourceTree.append( "<li><span>"+data[i].host+"</span></li>");
                        }
                    }
                    host = data[0].host;
                }
            }
        });
    }
    function getServerInfo(host,type,beginTime,endTime){
        $.ajax({
            type: "GET",
@ -114,18 +158,16 @@
                url: "${contextRoot}/monitor/server/hosts",
                success: function (msg) {
                    // 初始化树形菜单
                    resourceTree = resourceTree.ligerTree({
                    resourceTree = $('#div_wrapper_left_ul_resourcetree').ligerTree({
                        data: msg.data,
                        idFieldName: 'id',
                        idFieldName: 'host',
                        nodeWidth: 200,
                        parentIDFieldName: 'pid',
                        isExpand: false,
                        onClick: function (obj) {
                            rsResoureManege.reloadGridTree(obj.data.id, rsResoureManege.$searchresourceName.val());
                            rsResoureManege.$resourceTreeId=obj.data.id;
                            alert(obj);
                        },
                        onSuccess: function (data) {
                            alert("success");
                        }
                    });
                }
@ -199,7 +241,7 @@
             };
             myChart.setOption(option);
             myChart.on('mouseover', function (params) {
//                 getCpnInfo(host,type,params.name);
//                 getInfo(host,type,params.name);
                 console.log(params);
             });
             //设置图例下方的信息
@ -218,8 +260,8 @@
                var y2=[];
                for(var i=0;i<data.length;i++)
                {
                    var create_date = data[i].create_date.substring(11,16);
                    x.push(create_date);
//                    var create_date = data[i].create_date.substring(11,16);
                    x.push(data[i].create_date);
                    y1.push(data[i].data.usedPerc);
                    y2.push(data[i].data.freePerc);
                }
@ -289,8 +331,8 @@
                {
                    var count = 0
                    var total =0;
                    var create_date = data[i].create_date.substring(11,16);
                    x.push(create_date);
//                    var create_date = data[i].create_date.substring(11,16);
                    x.push(data[i].create_date);
                    for(var j=0;j<data[i].data.length;j++){
                        count += data[i].data[j].used;
                        total += data[i].data[j].total;
@ -363,8 +405,8 @@
                var y2=[];
                for(var i=0;i<data.length;i++)
                {
                    var create_date = data[i].create_date.substring(11,16);
                    x.push(create_date);
//                    var create_date = data[i].create_date.substring(11,16);
                    x.push(data[i].create_date);
                    y1.push(data[i].data.rxbps);
                    y2.push(data[i].data.txbps);
                }
@ -501,22 +543,22 @@
        var html = "<div class=\"div-item\">\n" +
                "                    <div>\n" +
                "                        <div class=\"d-item\">利用率</div>" +
                "                        <div class=\"d-item\">速度</div>" +
//                "                        <div class=\"d-item\">速度</div>" +
                "                    </div>" +
                "                    <div class=\"mb20\">\n" +
                "                        <div class=\"c-content\">"+envData.userPerc+"%</div>" +
                "                        <div class=\"c-content\">2.18GHZ</div>\n" +
                "                    </div>\n" +
                "                    <div>\n" +
                "                        <div class=\"d-item\">进程</div>\n" +
                "                        <div class=\"d-item\">线程</div>\n" +
                "                        <div class=\"d-item\">句柄</div>\n" +
                "                    </div>\n" +
                "                    <div class=\"mb20\">\n" +
                "                        <div class=\"c-content\">107</div>\n" +
                "                        <div class=\"c-content\">1720</div>\n" +
                "                        <div class=\"c-content\">59868</div>\n" +
//                "                        <div class=\"c-content\">2.18GHZ</div>\n" +
                "                    </div>\n" +
//                "                    <div>\n" +
//                "                        <div class=\"d-item\">进程</div>\n" +
//                "                        <div class=\"d-item\">线程</div>\n" +
//                "                        <div class=\"d-item\">句柄</div>\n" +
//                "                    </div>\n" +
//                "                    <div class=\"mb20\">\n" +
//                "                        <div class=\"c-content\">107</div>\n" +
//                "                        <div class=\"c-content\">1720</div>\n" +
//                "                        <div class=\"c-content\">59868</div>\n" +
//                "                    </div>\n" +
                "                    <div class=\"f-dis-inline f-fs12\">正常运行时间</div>\n" +
                "                    <div class=\"mb20\">\n" +
                "                        <div class=\"c-content\">11:19:15:40</div>\n" +
@ -524,13 +566,13 @@
                "                </div>\n" +
                "                <div class=\"div-item\">\n" +
                "                    <div class=\"div-right-item\">最大速度:<span class=\"f-fs14 c-fwb\">"+envData.model.substring(envData.model.length-8)+"</span></div>\n" +
                "                    <div class=\"div-right-item\">插槽:<span class=\"f-fs14 c-fwb\">1</span></div>\n" +
                "                    <div class=\"div-right-item\">内核:<span class=\"f-fs14 c-fwb\">"+envData.cores+"</span></div>\n" +
//                "                    <div class=\"div-right-item\">插槽:<span class=\"f-fs14 c-fwb\">1</span></div>\n" +
                "                    <div class=\"div-right-item\">内核:<span class=\"f-fs14 c-fwb\">"+envData.quantity+"</span></div>\n" +
                "                    <div class=\"div-right-item\">逻辑处理器:<span class=\"f-fs14 c-fwb\">"+envData.totalCores+"</span></div>\n" +
                "                    <div class=\"div-right-item\">物理处理器:<span class=\"f-fs14 c-fwb\">"+envData.totalSockets+"</span></div>\n" +
                "                    <div class=\"div-right-item\">L1缓存:<span class=\"f-fs14 c-fwb\">121KB</span></div>\n" +
                "                    <div class=\"div-right-item\">L2缓存:<span class=\"f-fs14 c-fwb\">512KB</span></div>\n" +
                "                    <div class=\"div-right-item\">L3缓存:<span class=\"f-fs14 c-fwb\">3.0MB</span></div>\n" +
//                "                    <div class=\"div-right-item\">L1缓存:<span class=\"f-fs14 c-fwb\">121KB</span></div>\n" +
//                "                    <div class=\"div-right-item\">L2缓存:<span class=\"f-fs14 c-fwb\">512KB</span></div>\n" +
//                "                    <div class=\"div-right-item\">L3缓存:<span class=\"f-fs14 c-fwb\">3.0MB</span></div>\n" +
                "                </div>";
        return html;
@ -543,100 +585,66 @@
                "                        <div class=\"d-item\">可用</div>" +
                "                    </div>" +
                "                    <div class=\"mb20\">\n" +
                "                        <div class=\"c-content\">"+envData.userPerc+"%</div>" +
                "                        <div class=\"c-content\">2.18GHZ</div>\n" +
                "                        <div class=\"c-content\">"+envData.used+"G</div>" +
                "                        <div class=\"c-content\">"+envData.free+"G</div>\n" +
                "                    </div>\n" +
                "                    <div>\n" +
                "                        <div class=\"d-item\">緩存</div>\n" +
                "                        <div class=\"d-item\">空闲</div>\n" +
                "                        <div class=\"d-item\">交换区使用量</div>\n" +
                "                        <div class=\"d-item\">交换区可用量</div>\n" +
                "                    </div>\n" +
                "                    <div class=\"mb20\">\n" +
                "                        <div class=\"c-content\">107</div>\n" +
                "                        <div class=\"c-content\">1720</div>\n" +
                "                        <div class=\"c-content\">"+envData.swapUsed+"G</div>\n" +
                "                        <div class=\"c-content\">"+envData.swapFree+"G</div>\n" +
                "                    </div>\n" +
                "                </div>\n" +
                "                <div class=\"div-item\">\n" +
                "                    <div class=\"div-right-item\">速度:<span class=\"f-fs14 c-fwb\">"+envData.cores+"</span></div>\n" +
                "                    <div class=\"div-right-item\">已使用插槽:<span class=\"f-fs14 c-fwb\">1</span></div>\n" +
                "                    <div class=\"div-right-item\">内存模组:<span class=\"f-fs14 c-fwb\">"+envData.cores+"</span></div>\n" +
                "                    <div class=\"div-right-item\">硬件保留内存:<span class=\"f-fs14 c-fwb\">"+envData.totalCores+"</span></div>\n" +
                "                    <div class=\"div-right-item\">容量:<span class=\"f-fs14 c-fwb\">"+envData.totalSockets+"</span></div>\n" +
                "            <div>" +
        "                        <div class=\"d-item\">总量:</div>\n" +
        "                        <div class=\"d-item\">交换区总量:</div>\n" +
        "                    </div>\n" +
        "                    <div class=\"mb20\">\n" +
        "                        <div class=\"c-content\">"+envData.total+"G</div>\n" +
        "                        <div class=\"c-content\">"+envData.swapTotal+"G</div>\n" +
        "                    </div>\n" +
                "                </div>";
        return html;
    }
    function getFilesHtml(envData){
        var html = "<div class=\"div-item\">\n" +
                "                    <div>\n" +
                "                        <div class=\"d-item\">利用率</div>" +
                "                        <div class=\"d-item\">速度</div>" +
                "                    </div>" +
                "                    <div class=\"mb20\">\n" +
                "                        <div class=\"c-content\">"+envData.userPerc+"%</div>" +
                "                        <div class=\"c-content\">2.18GHZ</div>\n" +
                "                    </div>\n" +
                "                    <div>\n" +
                "                        <div class=\"d-item\">进程</div>\n" +
                "                        <div class=\"d-item\">线程</div>\n" +
                "                        <div class=\"d-item\">句柄</div>\n" +
                "                    </div>\n" +
                "                    <div class=\"mb20\">\n" +
                "                        <div class=\"c-content\">107</div>\n" +
                "                        <div class=\"c-content\">1720</div>\n" +
                "                        <div class=\"c-content\">59868</div>\n" +
                "                    </div>\n" +
                "                    <div class=\"f-dis-inline f-fs12\">正常运行时间</div>\n" +
                "                    <div class=\"mb20\">\n" +
                "                        <div class=\"c-content\">11:19:15:40</div>\n" +
                "                    </div>\n" +
                "                </div>\n" +
                "                <div class=\"div-item\">\n" +
                "                    <div class=\"div-right-item\">最大速度:<span class=\"f-fs14 c-fwb\">"+envData.model.substring(envData.model.length-8)+"</span></div>\n" +
                "                    <div class=\"div-right-item\">插槽:<span class=\"f-fs14 c-fwb\">1</span></div>\n" +
                "                    <div class=\"div-right-item\">内核:<span class=\"f-fs14 c-fwb\">"+envData.cores+"</span></div>\n" +
                "                    <div class=\"div-right-item\">逻辑处理器:<span class=\"f-fs14 c-fwb\">"+envData.totalCores+"</span></div>\n" +
                "                    <div class=\"div-right-item\">物理处理器:<span class=\"f-fs14 c-fwb\">"+envData.totalSockets+"</span></div>\n" +
                "                    <div class=\"div-right-item\">L1缓存:<span class=\"f-fs14 c-fwb\">121KB</span></div>\n" +
                "                    <div class=\"div-right-item\">L2缓存:<span class=\"f-fs14 c-fwb\">512KB</span></div>\n" +
                "                    <div class=\"div-right-item\">L3缓存:<span class=\"f-fs14 c-fwb\">3.0MB</span></div>\n" +
                "                </div>";
        var html ="";
        var total = "";
        var use ="";
        if(envData.length>0){
            for(var i=0;i<envData.length;i++){
                total+="<div class=\"div-right-item\">"+envData[i].devName+"盘总量:<span class=\"f-fs14 c-fwb\">"+envData[i].total+"G</span></div>";
                use+="<div class=\"div-right-item\">"+envData[i].devName+"盘已使用:<span class=\"f-fs14 c-fwb\">"+envData[i].used+"G</span></div>";
            }
            html = "<div class=\"div-item\">" +total+"</div><div class=\"div-item\">"+use+"</div>";
        }
        return html;
    }
    function getNetHtml(envData){
        var html = "<div class=\"div-item\">\n" +
                "                    <div>\n" +
                "                        <div class=\"d-item\">利用率</div>" +
                "                        <div class=\"d-item\">速度</div>" +
                "                        <div class=\"d-item\">发送</div>" +
                "                    </div>" +
                "                    <div class=\"mb20\">\n" +
                "                        <div class=\"c-content\">"+envData.userPerc+"%</div>" +
                "                        <div class=\"c-content\">2.18GHZ</div>\n" +
                "                        <div class=\"c-content\">"+envData.txbps+"kbps</div>" +
                "                    </div>\n" +
                "                    <div>\n" +
                "                        <div class=\"d-item\">进程</div>\n" +
                "                        <div class=\"d-item\">线程</div>\n" +
                "                        <div class=\"d-item\">句柄</div>\n" +
                "                        <div class=\"d-item\">接收</div>\n" +
                "                    </div>\n" +
                "                    <div class=\"mb20\">\n" +
                "                        <div class=\"c-content\">107</div>\n" +
                "                        <div class=\"c-content\">1720</div>\n" +
                "                        <div class=\"c-content\">59868</div>\n" +
                "                    </div>\n" +
                "                    <div class=\"f-dis-inline f-fs12\">正常运行时间</div>\n" +
                "                    <div class=\"mb20\">\n" +
                "                        <div class=\"c-content\">11:19:15:40</div>\n" +
                "                        <div class=\"c-content\">"+envData.rxbps+"kbps</div>\n" +
                "                    </div>\n" +
                "                </div>\n" +
                "                <div class=\"div-item\">\n" +
                "                    <div class=\"div-right-item\">最大速度:<span class=\"f-fs14 c-fwb\">"+envData.model.substring(envData.model.length-8)+"</span></div>\n" +
                "                    <div class=\"div-right-item\">插槽:<span class=\"f-fs14 c-fwb\">1</span></div>\n" +
                "                    <div class=\"div-right-item\">内核:<span class=\"f-fs14 c-fwb\">"+envData.cores+"</span></div>\n" +
                "                    <div class=\"div-right-item\">逻辑处理器:<span class=\"f-fs14 c-fwb\">"+envData.totalCores+"</span></div>\n" +
                "                    <div class=\"div-right-item\">物理处理器:<span class=\"f-fs14 c-fwb\">"+envData.totalSockets+"</span></div>\n" +
                "                    <div class=\"div-right-item\">L1缓存:<span class=\"f-fs14 c-fwb\">121KB</span></div>\n" +
                "                    <div class=\"div-right-item\">L2缓存:<span class=\"f-fs14 c-fwb\">512KB</span></div>\n" +
                "                    <div class=\"div-right-item\">L3缓存:<span class=\"f-fs14 c-fwb\">3.0MB</span></div>\n" +
                "                    <div class=\"div-right-item\">適配器名:<span class=\"f-fs14 c-fwb\">"+envData.name+"</span></div>\n" +
                "                    <div class=\"div-right-item\">连接类型:<span class=\"f-fs14 c-fwb\">"+envData.type+"</span></div>\n" +
                "                    <div class=\"div-right-item\">IP地址:<span class=\"f-fs14 c-fwb\">"+envData.address+"</span></div>\n" +
                "                    <div class=\"div-right-item\">Mac地址:<span class=\"f-fs14 c-fwb\">"+envData.mac+"</span></div>\n" +
                "                </div>";
        return html;
    }