//
        // GET: /Cluster/MonitorInfo/

        public ActionResult Index(string keyword, string serverid, string monitorjsonkeyword, string ifrefreash, int pageindex = 1, int pagesize = 10)
        {
            ViewBag.keyword = keyword; ViewBag.monitorjsonkeyword = monitorjsonkeyword; ViewBag.ifrefreash = ifrefreash;

            PagedList <tb_cluster_monitorinfo_model> pageList = null;
            int count = 0;
            List <tb_cluster_monitorinfo_model> List = new List <tb_cluster_monitorinfo_model>();

            using (DbConn PubConn = DbConfig.CreateConn(Config.ClusterConnectString))
            {
                PubConn.Open();
                ViewBag.SqlTimeNow = PubConn.GetServerDate();
                tb_cluster_monitorinfo_dal dal = new tb_cluster_monitorinfo_dal();
                List = dal.GetList(PubConn, keyword, serverid, monitorjsonkeyword, pagesize, pageindex, out count);
            }
            pageList = new PagedList <tb_cluster_monitorinfo_model>(List, pageindex, pagesize, count);
            Dictionary <int, List <Dyd.BaseService.Monitor.Core.CollectConfig> > ServerConfigDic = new Dictionary <int, List <Dyd.BaseService.Monitor.Core.CollectConfig> >();

            SqlHelper.ExcuteSql(Config.PlatformManageConnectString, (c) =>
            {
                tb_cluster_dal dal = new tb_cluster_dal();
                var list           = dal.GetListInIds(c, List.Select(o => o.serverid).ToList());
                foreach (var o in list)
                {
                    var config = new XXF.Serialization.JsonHelper().Deserialize <List <Dyd.BaseService.Monitor.Core.CollectConfig> >(o.monitorcollectconfigjson);
                    ServerConfigDic.Add(o.id, config);
                }
            });
            ViewBag.ServerConfigDic = ServerConfigDic;
            if (Request.IsAjaxRequest())
            {
                return(PartialView("List", pageList));
            }
            return(View(pageList));
        }
Пример #2
0
        //
        // GET: /Manage/Manage/

        public ActionResult Index(string id, string keyword, string CStime, string CEtime, int pagesize = 10, int pageindex = 1)
        {
            ViewBag.keyword    = keyword;
            ViewBag.CStime     = CStime;
            ViewBag.CEtime     = CEtime;
            ViewBag.pagesize   = pagesize;
            ViewBag.pageindex  = pageindex;
            ViewBag.SqlTimeNow = DateTime.Now;
            ViewBag.id         = id;
            tb_cluster_dal dal = new tb_cluster_dal();
            PagedList <tb_cluster_model> pageList = null;
            int count = 0;

            using (DbConn PubConn = DbConfig.CreateConn(Config.PlatformManageConnectString))
            {
                PubConn.Open();
                List <tb_cluster_model> List = dal.GetList(PubConn, id, keyword, CStime, CEtime, pagesize, pageindex, out count);
                using (DbConn MonitorConn = DbConfig.CreateConn(Config.ClusterConnectString))
                {
                    MonitorConn.Open();
                    tb_cluster_monitorinfo_dal monitordal = new tb_cluster_monitorinfo_dal();
                    for (int i = 0; i < List.Count; i++)
                    {
                        List[i].MonitorJson = monitordal.GetServerMonitorJson(MonitorConn, List[i].id);
                    }
                }
                pageList           = new PagedList <tb_cluster_model>(List, pageindex, pagesize, count);
                ViewBag.SqlTimeNow = PubConn.GetServerDate();
            }
            if (Request.IsAjaxRequest())
            {
                return(PartialView("List", pageList));
            }
            return(View(pageList));
        }
Пример #3
0
        /// <summary>
        /// 检查监控信息的预警
        /// </summary>
        private void CheckMonitorInfoWarning()
        {
            try
            {
                string waringmsg = "";
                List <tb_cluster_model> clusters = new List <tb_cluster_model>();
                SqlHelper.ExcuteSql(GlobalConfig.MonitorPlatformManageConnectString, (c) =>
                {
                    tb_cluster_dal dal = new tb_cluster_dal();
                    clusters           = dal.GetAllList(c);
                });
                clusters.ForEach(o =>
                {
                    if (o.ifmonitor == true)
                    {
                        tb_cluster_monitorinfo_model monitorinfo = null;
                        SqlHelper.ExcuteSql(MonitorClusterConnectString, (c) =>
                        {
                            tb_cluster_monitorinfo_dal dal = new tb_cluster_monitorinfo_dal();
                            monitorinfo = dal.GetByServerId(c, o.id);
                        });
                        if (monitorinfo != null)
                        {
                            var collectconfigs = new XXF.Serialization.JsonHelper().Deserialize <List <CollectConfig> >(o.monitorcollectconfigjson);
                            foreach (var config in collectconfigs)
                            {
                                waringmsg += GetWarnningInfo(config, monitorinfo, o);
                            }
                        }
                    }
                });

                if (waringmsg != "")
                {
                    TaskLogHelper.Error("检查监控信息的预警", "服务器性能检查(预警值检查)" + "\r\n" + waringmsg, "集群性能预警任务");
                }
            }
            catch (Exception exp)
            {
                this.OpenOperator.Error("【集群性能预警任务】检查监控信息的预警", exp);
            }
        }
        protected override void Run()
        {
            if (GlobalConfig.ClusterModel.ifmonitor == false)
            {
                return;
            }
            List <ClusterMonitorInfo> cmis = new List <ClusterMonitorInfo>();

            foreach (var p in pcounts)
            {
                var c = p.Collect();
                cmis.Add(new ClusterMonitorInfo(p.Name, c.ToString("F2"), (double)c));
            }

            if (dct.IsCollect == true)
            {
                string msg = ""; double minfreespace = 1000000;
                foreach (var d in dct.Collect())
                {
                    minfreespace = Math.Min(minfreespace, d.FreeSpace);
                    msg         += string.Format("[{0}]:{1}(G)/{2}(G)\r\n", d.Name, d.FreeSpace.ToString("F2"), d.TotalSpace.ToString("F2"));
                }
                cmis.Add(new ClusterMonitorInfo(dct.Name, msg, minfreespace));
            }

            if (mct.IsCollect == true)
            {
                var mper = mct.Collect();
                cmis.Add(new ClusterMonitorInfo(mct.Name, string.Format("剩余/总量:{0}(M)/{1}(M) 已用:{2}%", ConvertHelper.ByteToM(mper.AvailablePhysicalMemory).ToString("F2"), ConvertHelper.ByteToM(mper.TotalPhysicalMemory).ToString("F2"), mper.UserdPercent), mper.UserdPercent));
            }

            SqlHelper.ExcuteSql(DbShardingHelper.GetDataBase(GlobalConfig.DataBaseConfigModels.Select(c1 => (dynamic)c1).ToList(), DataBaseType.Cluster), (c) =>
            {
                tb_cluster_monitorinfo_dal dal = new tb_cluster_monitorinfo_dal();
                dal.AddOrUpdate(c, new tb_cluster_monitorinfo_model()
                {
                    lastupdatetime = c.GetServerDate(), serverid = GlobalConfig.ClusterModel.id, monitorinfojson = new JsonHelper().Serializer(cmis)
                });
            });
        }
Пример #5
0
        public bool StatisServerMinitor()
        {
            List <tb_cluster_model>        dataBaseList    = GetEnableServer();
            tb_performance_dayreport_dal   dal             = new tb_performance_dayreport_dal();
            tb_performance_dayreport_model staticDayReport = new tb_performance_dayreport_model();
            DateTime dateNow           = new DateTime();
            string   day               = "";
            string   date              = "";
            string   ConnectionCluster = "";
            int      updateMinite      = 0;

            using (DbConn ManConn = DbConfig.CreateConn(XXF.Common.XXFConfig.MonitorPlatformConnectionString))
            {
                ManConn.Open();
                ConnectionCluster = new tb_database_config_dal().GetDataBaseSqlConn(ManConn, (int)DataBaseType.Cluster);
                dateNow           = ManConn.GetServerDate();
                day  = dateNow.ToString("yyyyMMdd");
                date = dateNow.ToString("yyyy-MM-dd");
                tb_keyvalue_config_model keymodel = new tb_keyvalue_config_dal().Get(ManConn, "SaveServerMonitorIntervalTime");
                updateMinite = Convert.ToInt32(keymodel.value);
            }
            using (DbConn PubConn = DbConfig.CreateConn(ConnectionCluster))
            {
                PubConn.Open();
                if ((dateNow - LastReserverdServerMonitorTime).TotalMinutes > updateMinite)
                {
                    int i = new tb_cluster_monitorinfo_dal().ReseverdServerMonitor(PubConn);
                    LastReserverdServerMonitorTime = dateNow;
                }
                Dictionary <int, tb_performance_dayreport_model> dayReportList = new tb_performance_dayreport_dal().GetAutoTaskList(PubConn, date);
                foreach (tb_cluster_model m in dataBaseList)
                {
                    if (dayReportList.Keys.Contains(m.id))
                    {
                        tb_performance_dayreport_model oldStaticDayReport = dayReportList[m.id];
                        staticDayReport = dal.GetStaticMonitor(PubConn, day, oldStaticDayReport.serverid, oldStaticDayReport.lastmaxid);
                        if (staticDayReport != null)
                        {
                            tb_performance_dayreport_model newStaticDayReport = new tb_performance_dayreport_model()
                            {
                                id       = oldStaticDayReport.id,
                                serverid = m.id,
                                avgcpu   = (oldStaticDayReport.avgcpu * oldStaticDayReport.count + staticDayReport.avgcpu * staticDayReport.count) / (oldStaticDayReport.count + staticDayReport.count),
                                maxcpu   = oldStaticDayReport.maxcpu > staticDayReport.maxcpu ? oldStaticDayReport.maxcpu : staticDayReport.maxcpu,
                                mincpu   = oldStaticDayReport.mincpu <staticDayReport.mincpu?oldStaticDayReport.mincpu : staticDayReport.mincpu,
                                                                      avgmemory = (oldStaticDayReport.avgmemory *oldStaticDayReport.count + staticDayReport.avgmemory *staticDayReport.count) / (oldStaticDayReport.count + staticDayReport.count),
                                                                      maxmemory = oldStaticDayReport.maxmemory> staticDayReport.maxmemory ? oldStaticDayReport.maxmemory : staticDayReport.maxmemory,
                                minmemory = oldStaticDayReport.minmemory <staticDayReport.minmemory?oldStaticDayReport.minmemory : staticDayReport.minmemory,
                                                                          avgnetworkupload = (oldStaticDayReport.avgnetworkupload *oldStaticDayReport.count + staticDayReport.avgnetworkupload *staticDayReport.count) / (oldStaticDayReport.count + staticDayReport.count),
                                                                          maxnetworkupload = oldStaticDayReport.maxnetworkupload> staticDayReport.maxnetworkupload ? oldStaticDayReport.maxnetworkupload : staticDayReport.maxnetworkupload,
                                minnetworkupload = oldStaticDayReport.minnetworkupload <staticDayReport.minnetworkupload?oldStaticDayReport.minnetworkupload : staticDayReport.minnetworkupload,
                                                                                        avgnetworkdownload = (oldStaticDayReport.avgnetworkdownload *oldStaticDayReport.count + staticDayReport.avgnetworkdownload *staticDayReport.count) / (oldStaticDayReport.count + staticDayReport.count),
                                                                                        maxnetworkdownload = oldStaticDayReport.maxnetworkdownload> staticDayReport.maxnetworkdownload ? oldStaticDayReport.maxnetworkdownload : staticDayReport.maxnetworkdownload,
                                minnetworkdownload = oldStaticDayReport.minnetworkdownload <staticDayReport.minnetworkdownload?oldStaticDayReport.minnetworkdownload : staticDayReport.minnetworkdownload,
                                                                                            avgioread = (oldStaticDayReport.avgioread *oldStaticDayReport.count + staticDayReport.avgioread *staticDayReport.count) / (oldStaticDayReport.count + staticDayReport.count),
                                                                                            maxioread = oldStaticDayReport.maxioread> staticDayReport.maxioread ? oldStaticDayReport.maxioread : staticDayReport.maxioread,
                                minioread = oldStaticDayReport.minioread <staticDayReport.minioread?oldStaticDayReport.minioread : staticDayReport.minioread,
                                                                          avgiowrite = (oldStaticDayReport.avgiowrite *oldStaticDayReport.count + staticDayReport.avgiowrite *staticDayReport.count) / (oldStaticDayReport.count + staticDayReport.count),
                                                                          maxiowrite = oldStaticDayReport.maxiowrite> staticDayReport.maxiowrite ? oldStaticDayReport.maxiowrite : staticDayReport.maxiowrite,
                                miniowrite = oldStaticDayReport.miniowrite <staticDayReport.miniowrite?oldStaticDayReport.miniowrite : staticDayReport.miniowrite,
                                                                            avgiisrequest = (oldStaticDayReport.avgiisrequest *oldStaticDayReport.count + staticDayReport.avgiisrequest *staticDayReport.count) / (oldStaticDayReport.count + staticDayReport.count),
                                                                            maxiisrequest = oldStaticDayReport.maxiisrequest> staticDayReport.maxiisrequest ? oldStaticDayReport.maxiisrequest : staticDayReport.maxiisrequest,
                                miniisrequest  = oldStaticDayReport.miniisrequest < staticDayReport.miniisrequest ? oldStaticDayReport.miniisrequest : staticDayReport.miniisrequest,
                                lastmaxid      = staticDayReport.lastmaxid,
                                count          = oldStaticDayReport.count + staticDayReport.count,
                                lastupdatetime = dateNow,
                            };
                            dal.Update(PubConn, newStaticDayReport);
                        }
                    }
                    else
                    {
                        staticDayReport = dal.GetStaticMonitor(PubConn, day, m.id, 0);
                        if (staticDayReport == null)
                        {
                            staticDayReport = new tb_performance_dayreport_model();
                        }
                        staticDayReport.serverid = m.id;
                        staticDayReport.date     = dateNow;
                        dal.AddStatis(PubConn, staticDayReport);
                    }
                }
                return(true);
            }
        }