Help
RSS
API
Feed
Maltego
Contact
Domain > 198963.xyz
×
Welcome!
Right click nodes and scroll the mouse to navigate the graph.
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2024-12-28
104.21.56.88
(
ClassC
)
Port 80
HTTP/1.1 200 OKDate: Sat, 28 Dec 2024 16:38:13 GMTContent-Type: text/html; charsetutf-8Transfer-Encoding: chunkedConnection: keep-aliveVary: Accept-EncodingStrict-Transport-Security: max-age31536000cf-cache-status: DYNAMICReport-To: {endpoints:{url:https:\/\/a.nel.cloudflare.com\/report\/v4?szWzTVYrcYxQc0jShhrIVH6x1aVmzj3W71CmkfpG22nzQ1VqvWZALqslPqi%2BPifsHwmgZiMz%2Fd7FInPzsNs7wAYgX5Cs%2BrEDu8P%2FEVJVyO24CYPyeEdBDPYv57PGZ},group:cf-nel,max_age:604800}NEL: {success_fraction:0,report_to:cf-nel,max_age:604800}Server: cloudflareCF-RAY: 8f92fabd9e082792-SEAalt-svc: h3:443; ma86400server-timing: cfL4;desc?protoTCP&rtt9137&min_rtt9137&rtt_var4568&sent1&recv3&lost0&retrans0&sent_bytes0&recv_bytes49&delivery_rate0&cwnd249&unsent_bytes0&cid0000000000000000&ts0&x0 !DOCTYPE html>html langzh-CN>head> title>shiliumu/title> meta charsetutf-8> meta http-equivX-UA-Compatible contentieedge> meta contenttelephoneno nameformat-detection> meta nameviewport contentwidthdevice-width, initial-scale1.0> meta nameapple-mobile-web-app-capable contentyes /> meta namemobile-web-app-capable contentyes /> meta nametheme-color content#000000 /> link relmanifest href/static/manifest-zh-CN.json?v20240905 /> link relapple-touch-startup-image href/static/logo.svg /> link relshortcut icon typeimage/png href/static/logo.svg> link relstylesheet hrefhttps://unpkg.com/semantic-ui@2.4.0/dist/semantic.min.css> link relstylesheet hrefhttps://unpkg.com/font-logos@0.17.0/assets/font-logos.css> link relstylesheet hrefhttps://unpkg.com/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css> link relstylesheet hrefhttps://unpkg.com/flag-icons@7.2.3/css/flag-icons.min.css> link relstylesheet typetext/css href/static/semantic-ui-alerts.min.css> link relstylesheet typetext/css href/static/theme-default/css/main.css?v20240816> link relstylesheet typetext/css href/static/darkmode.css?v20240816> script srchttps://unpkg.com/jquery@3.7.1/dist/jquery.min.js>/script> script srchttps://unpkg.com/semantic-ui@2.4.0/dist/semantic.min.js>/script> script srchttps://unpkg.com/vue@2.6.14/dist/vue.min.js>/script> script srchttps://unpkg.com/echarts@5.5.0/dist/echarts.min.js>/script> script src/static/semantic-ui-alerts.min.js>/script> script src/static/theme-default/js/mixin.js?v20240302>/script> script> document.documentElement.setAttribute(nz-theme, window.matchMedia((prefers-color-scheme: dark)).matches ? dark : light); /script>/head>body> div idapp>div classui large top fixed menu nb-menu stylez-index:9999999;> div classui container> a classitem href/> img src/static/logo.svg?v20210804> /a> a classitem href/>i classhome icon>/i>首页/a> template v-ifisMobile> div classitem ui simple dropdown> div classtext>i classbi bi-gear-wide-connected icon stylemargin-right:3px;>/i>功能i classdropdown icon stylemargin-right:0px;>/i>/div> div classmenu> a href/service classitem>i classrss icon>/i>服务/a> a href/network classitem>i classbi bi-hdd-network icon>/i>网络/a> /div> /div> /template> template v-else> a href/service classitem>i classrss icon>/i>服务/a> a href/network classitem>i classbi bi-hdd-network icon>/i>网络/a> /template> div classitem ui simple dropdown> div classtext>i classbi bi-incognito icon stylemargin-right:3px;>/i>主题i classdropdown icon stylemargin-right:0px;>/i>/div> div classmenu> a v-for(item, index) in adaptedTemplates :keyindex @clicktoggleTemplate(item.key) classitem> i :classitem.icon + icon>/i>@#item.name#@ i classcheck icon v-ifpreferredTemplate item.key>/i> /a> a v-ifdefaultTemplate custom @clicktoggleTemplate(custom) classitem> i classexpand icon>/i>Custom /a> /div> /div> a href/login classitem right item-right stylepadding-right:1.2rem>i classsign-in icon>/i>登录/a> /div>/div>div classui mini confirm modal transition hidden> div classheader>/div> div classcontent> /div> div classactions> div classui negative button>取消/div> button classui positive nezha-primary-btn right labeled icon button>确认i classcheckmark icon>/i> /button> /div>/div>div classnb-container> div classui container> template v-ifgroups> div classui styled fluid accordion v-forgroup in groups> div classactive title> i classdropdown icon>/i> @#(group.Tag!?group.Tag:默认)#@ /div> div classactive content> div classui four stackable status cards> div v-forserver in group.data :idserver.ID classui card> div classcontent v-ifserver.Host stylemargin-top: 10px; padding-bottom: 5px> div classheader> i stylewidth: 22px;border-radius: 4px; :classfi fi- + server.Host.CountryCode>/i> i v-ifisWindowsPlatform(server.Host.Platform) classwindows icon>/i> i v-else-ifgetFontLogoClass(server.Host.Platform) && server.State.Uptime > 0 classfl-tux>/i> i v-else :classfl- + getFontLogoClass(server.Host.Platform)>/i> @#server.Name + (server.live?:已离线)#@ i @clicktogglePopup($event, server.ID) aria-expandedfalse classnezha-secondary-font info circle icon>/i> div classui content popup :class{ visible: isActive(server.ID) } stylemargin-bottom: 0;> i classclosePopup window close icon @clickclosePopup(server.ID)>/i> 系统: @#server.Host.Platform#@-@#server.Host.PlatformVersion#@ span v-ifserver.Host.Virtualization>@#server.Host.Virtualization#@:/span>@#server.Host.Arch#@ br /> CPU: @#server.Host.CPU#@ br /> template v-ifserver.Host.GPU> GPU: @#server.Host.GPU#@ br /> /template> 硬盘: @#formatByteSize(server.State.DiskUsed)#@/@#formatByteSize(server.Host.DiskTotal)#@ br /> 内存: @#formatByteSize(server.State.MemUsed)#@/@#formatByteSize(server.Host.MemTotal)#@ br /> 交换: template v-ifserver.Host.SwapTotal 0>OFF/template> template v-else>@#formatByteSize(server.State.SwapUsed)#@/@#formatByteSize(server.Host.SwapTotal)#@/template> br /> 流量: i classarrow alternate circle down outline icon>/i>@#formatByteSize(server.State.NetInTransfer)#@ i classarrow alternate circle up outline icon>/i>@#formatByteSize(server.State.NetOutTransfer)#@ br /> 负载: @#toFixed2(server.State.Load1)#@/@#toFixed2(server.State.Load5)#@/@# toFixed2(server.State.Load15)#@ br /> 进程数: @#server.State.ProcessCount#@ br /> 连接数: TCP @#server.State.TcpConnCount#@ / UDP @#server.State.UdpConnCount#@ br /> 启动: @#formatTimestamp(server.Host.BootTime)#@ br /> 活动: @#new Date(server.LastActive).toLocaleString()#@ br /> div v-ifserver.State.Temperatures && getTemperature(server.State.Temperatures, sensorList) > 0 classtemp-detail @clicktoggleDetailedTemp(server.ID) :id`temp-${server.ID}` temp-detail-show0> 温度: span :id`temp-main-${server.ID}`> @#getTemperature(server.State.Temperatures, sensorList)#@°C i classbi bi-chevron-double-down>/i> /span> span :id`temp-detail-${server.ID}` styledisplay:none> span v-fortemp in server.State.Temperatures :keytemp.Name v-iftemp.Temperature ! 0> @#temp.Name#@: @#temp.Temperature#@°C /span> i classbi bi-chevron-double-up>/i> /span> /div> 版本: @#server.Host.Version#@ div classchartbox :keyserver.ID :ref`chart${server.ID}` stylewidth: 100%; height: auto; margin-bottom: 2px;>/div> /div> div classui divider stylemargin-bottom: 5px>/div> /div> div classdescription> div classui grid> div classthree wide column>CPU/div> div classthirteen wide column> div :classformatPercent(server.live,server.State.CPU, 100).class> div classbar :styleformatPercent(server.live,server.State.CPU, 100).style> small>@#parseInt(server.State.CPU?server.State.CPU:0)#@%/small> /div> /div> /div> div classthree wide column>内存/div> div classthirteen wide column> div :classformatPercent(server.live,server.State.MemUsed, server.Host.MemTotal).class> div classbar :styleformatPercent(server.live,server.State.MemUsed, server.Host.MemTotal).style> small>@#parseInt(server.Host.MemTotal?server.State.MemUsed/server.Host.MemTotal*100:0)#@%/small> /div> /div> /div> div classthree wide column>交换/div> div classthirteen wide column> div :classformatPercent(server.live,server.State.SwapUsed, server.Host.SwapTotal).class> div classbar :styleformatPercent(server.live,server.State.SwapUsed, server.Host.SwapTotal).style> small v-ifserver.Host.SwapTotal 0>OFF/small> small v-else>@#parseInt(server.State.SwapUsed/server.Host.SwapTotal*100)#@%/small> /div> /div> /div> div classthree wide column>硬盘/div> div classthirteen wide column> div :classformatPercent(server.live,server.State.DiskUsed, server.Host.DiskTotal).class> div classbar :styleformatPercent(server.live,server.State.DiskUsed, server.Host.DiskTotal).style> small>@#parseInt(server.Host.DiskTotal?server.State.DiskUsed/server.Host.DiskTotal*100:0)#@%/small> /div> /div> /div> div classthree wide column>网络/div> div classthirteen wide column> i classarrow alternate circle down outline icon>/i> @#formatByteSize(server.State.NetInSpeed)#@/s i classarrow alternate circle up outline icon>/i> @#formatByteSize(server.State.NetOutSpeed)#@/s /div> div classthree wide column>流量/div> div classthirteen wide column> i classarrow circle down icon>/i> @#formatByteSize(server.State.NetInTransfer)#@ i classarrow circle up icon>/i> @#formatByteSize(server.State.NetOutTransfer)#@ /div> div classthree wide column>信息/div> div classthirteen wide column> i classbi bi-cpu-fill stylefont-size: 1.1rem; color: #4a86e8;>/i> @#getCoreAndGHz(server.Host.CPU)#@ i classbi bi-memory stylefont-size: 1.1rem; color: #00ac0d;>/i> @#getK2Gb(server.Host.MemTotal)#@ i classbi bi-hdd stylefont-size: 1.1rem; color: #e41e10>/i> @#getK2Gb(server.Host.DiskTotal)#@ /div> div classthree wide column>负载/div> div classthirteen wide column> i classbi bi-activity stylefont-size: 1.1rem; color: #e41e10;>/i> @#toFixed2(server.State.Load1)#@ | @#toFixed2(server.State.Load5)#@ | @#toFixed2(server.State.Load15)#@ /div> div classthree wide column>在线/div> div classthirteen wide column> i classclock icon>/i>@#secondToDate(server.State.Uptime)#@ /div> /div> /div> /div> div classcontent v-else> p>@#server.Name#@/p> p>服务器已离线/p> /div> /div> /div> /div> /div> /template> /div>/div>/div>div classui inverted vertical footer segment> div classui center aligned is-size-7 container> b>© a stylecolor: white; href/>shiliumu/a>/b> | small>Powered by a hrefhttps://github.com/naiba/nezha stylecolor: white; target_blank>哪吒监控/a> 0.19.10/small> /div>/div>script> function showSwitchTemplate(list, currentBackendTheme) { } showSwitchTemplate({angel-kanade:AngelKanade,custom:Custom(local),daynight:JackieSung DayNight,default:Default,hotaru:Hotaru,mdui:Neko Mdui,server-status:ServerStatus}, default)/script>/body>/html>script> var statusCards new Vue({ el: #app, delimiters: @#, #@, data: { page: index, defaultTemplate: default, templates: {angel-kanade:AngelKanade,custom:Custom(local),daynight:JackieSung DayNight,default:Default,hotaru:Hotaru,mdui:Neko Mdui,server-status:ServerStatus}, servers: , groups: , cache: , chartDataList: , activePopup: null, sensorList: TC0D, TC0H, TC0P, k10temp, k10temp_tctl, coretemp_package_id_0, cpu_thermal_zone, cpu-thermal, soc_thermal, cpu_thermal, ACPI\\ThermalZone\\TZ0__0, ACPI\\ThermalZone\\CPUZ_0, ACPI\\ThermalZone\\TZ00_0, ACPI\\ThermalZone\\TZ001_0, ACPI\\ThermalZone\\THM0_0 }, mixins: mixinsVue, created() { this.servers JSON.parse({\u0022now\u0022:1735403893000,\u0022servers\u0022:{\u0022ID\u0022:1,\u0022CreatedAt\u0022:\u00222024-09-07T13:07:25.186489119Z\u0022,\u0022UpdatedAt\u0022:\u00222024-09-07T13:07:25.186489119Z\u0022,\u0022DeletedAt\u0022:null,\u0022Name\u0022:\u0022奠脑\u0022,\u0022Tag\u0022:\u0022家里云\u0022,\u0022DisplayIndex\u0022:8964,\u0022HideForGuest\u0022:false,\u0022Host\u0022:{\u0022Platform\u0022:\u0022Microsoft Windows 11 Home China\u0022,\u0022PlatformVersion\u0022:\u002223H2\u0022,\u0022CPU\u0022:\u002213th Gen Intel(R) Core(TM) i9-13980HX 32 Physical Core\u0022,\u0022MemTotal\u0022:16779960320,\u0022DiskTotal\u0022:994678472704,\u0022SwapTotal\u0022:14495514624,\u0022Arch\u0022:\u0022x86_64\u0022,\u0022Virtualization\u0022:\u0022\u0022,\u0022BootTime\u0022:1732375596,\u0022CountryCode\u0022:\u0022cn\u0022,\u0022Version\u0022:\u00220.20.3\u0022,\u0022GPU\u0022:null},\u0022State\u0022:{\u0022CPU\u0022:0.7334963325183375,\u0022MemUsed\u0022:9636970496,\u0022SwapUsed\u0022:51625984,\u0022DiskUsed\u0022:739573563392,\u0022NetInTransfer\u0022:779260268,\u0022NetOutTransfer\u0022:22496432,\u0022NetInSpeed\u0022:955119,\u0022NetOutSpeed\u0022:14256,\u0022Uptime\u0022:508834,\u0022Load1\u0022:0.003154277571960332,\u0022Load5\u0022:0.05567135883832436,\u0022Load15\u0022:0.08008030663795036,\u0022TcpConnCount\u0022:183,\u0022UdpConnCount\u0022:140,\u0022ProcessCount\u0022:315,\u0022Temperatures\u0022:null,\u0022GPU\u0022:0},\u0022LastActive\u0022:\u00222024-11-29T12:47:03.800002224Z\u0022},{\u0022ID\u0022:2,\u0022CreatedAt\u0022:\u00222024-09-07T13:13:55.859252547Z\u0022,\u0022UpdatedAt\u0022:\u00222024-09-07T13:13:55.859252547Z\u0022,\u0022DeletedAt\u0022:null,\u0022Name\u0022:\u0022后端\u0022,\u0022Tag\u0022:\u0022家里云\u0022,\u0022DisplayIndex\u0022:8963,\u0022HideForGuest\u0022:false,\u0022Host\u0022:{\u0022Platform\u0022:\u0022\u0022,\u0022PlatformVersion\u0022:\u0022\u0022,\u0022CPU\u0022:null,\u0022MemTotal\u0022:0,\u0022DiskTotal\u0022:0,\u0022SwapTotal\u0022:0,\u0022Arch\u0022:\u0022\u0022,\u0022Virtualization\u0022:\u0022\u0022,\u0022BootTime\u0022:0,\u0022CountryCode\u0022:\u0022\u0022,\u0022Version\u0022:\u0022\u0022,\u0022GPU\u0022:null},\u0022State\u0022:{\u0022CPU\u0022:0,\u0022MemUsed\u0022:0,\u0022SwapUsed\u0022:0,\u0022DiskUsed\u0022:0,\u0022NetInTransfer\u0022:0,\u0022NetOutTransfer\u0022:0,\u0022NetInSpeed\u0022:0,\u0022NetOutSpeed\u0022:0,\u0022Uptime\u0022:0,\u0022Load1\u0022:0,\u0022Load5\u0022:0,\u0022Load15\u0022:0,\u0022TcpConnCount\u0022:0,\u0022UdpConnCount\u0022:0,\u0022ProcessCount\u0022:0,\u0022Temperatures\u0022:null,\u0022GPU\u0022:0},\u0022LastActive\u0022:\u00220001-01-01T00:00:00Z\u0022},{\u0022ID\u0022:8,\u0022CreatedAt\u0022:\u00222024-10-02T01:35:23.700953769Z\u0022,\u0022UpdatedAt\u0022:\u00222024-10-02T01:35:23.700953769Z\u0022,\u0022DeletedAt\u0022:null,\u0022Name\u0022:\u0022hytron\u0022,\u0022Tag\u0022:\u0022香港\u0022,\u0022DisplayIndex\u0022:1,\u0022HideForGuest\u0022:false,\u0022Host\u0022:{\u0022Platform\u0022:\u0022debian\u0022,\u0022PlatformVersion\u0022:\u002212.0\u0022,\u0022CPU\u0022:\u0022Intel(R) Xeon(R) Gold 6138 CPU @ 2.00GHz 1 Virtual Core\u0022,\u0022MemTotal\u0022:1007693824,\u0022DiskTotal\u0022:5181669376,\u0022SwapTotal\u0022:0,\u0022Arch\u0022:\u0022x86_64\u0022,\u0022Virtualization\u0022:\u0022kvm\u0022,\u0022BootTime\u0022:1728021150,\u0022CountryCode\u0022:\u0022hk\u0022,\u0022Version\u0022:\u00220.20.5\u0022,\u0022GPU\u0022:null},\u0022State\u0022:{\u0022CPU\u0022:0.8474575898923283,\u0022MemUsed\u0022:646729728,\u0022SwapUsed\u0022:0,\u0022DiskUsed\u0022:2297401344,\u0022NetInTransfer\u0022:71692053707,\u0022NetOutTransfer\u0022:68503987902,\u0022NetInSpeed\u0022:338,\u0022NetOutSpeed\u0022:254,\u0022Uptime\u0022:7382743,\u0022Load1\u0022:0,\u0022Load5\u0022:0.04,\u0022Load15\u0022:0.01,\u0022TcpConnCount\u0022:20,\u0022UdpConnCount\u0022:6,\u0022ProcessCount\u0022:72,\u0022Temperatures\u0022:null,\u0022GPU\u0022:0},\u0022LastActive\u0022:\u00222024-12-28T16:38:13.249558176Z\u0022},{\u0022ID\u0022:3,\u0022CreatedAt\u0022:\u00222024-09-07T13:50:27.321248712Z\u0022,\u0022UpdatedAt\u0022:\u00222024-09-08T03:27:10.059301875Z\u0022,\u0022DeletedAt\u0022:null,\u0022Name\u0022:\u0022探针,自走\u0022,\u0022Tag\u0022:\u0022\u0022,\u0022DisplayIndex\u0022:0,\u0022HideForGuest\u0022:false,\u0022Host\u0022:{\u0022Platform\u0022:\u0022debian\u0022,\u0022PlatformVersion\u0022:\u002211.11\u0022,\u0022CPU\u0022:\u0022AMD EPYC-Rome Processor 1 Virtual Core\u0022,\u0022MemTotal\u0022:1026510848,\u0022DiskTotal\u0022:20961435648,\u0022SwapTotal\u0022:1074786304,\u0022Arch\u0022:\u0022x86_64\u0022,\u0022Virtualization\u0022:\u0022\u0022,\u0022BootTime\u0022:1731625204,\u0022CountryCode\u0022:\u0022us\u0022,\u0022Version\u0022:\u00220.20.5\u0022,\u0022GPU\u0022:null},\u0022State\u0022:{\u0022CPU\u0022:0.990099033638258,\u0022MemUsed\u0022:845869056,\u0022SwapUsed\u0022:933326848,\u0022DiskUsed\u0022:9112158208,\u0022NetInTransfer\u0022:20146975775,\u0022NetOutTransfer\u0022:5437375760,\u0022NetInSpeed\u0022:4944,\u0022NetOutSpeed\u0022:517,\u0022Uptime\u0022:3778688,\u0022Load1\u0022:0.02,\u0022Load5\u0022:0.02,\u0022Load15\u0022:0.05,\u0022TcpConnCount\u0022:18,\u0022UdpConnCount\u0022:2,\u0022ProcessCount\u0022:82,\u0022Temperatures\u0022:null,\u0022GPU\u0022:0},\u0022LastActive\u0022:\u00222024-12-28T16:38:12.773912587Z\u0022},{\u0022ID\u0022:5,\u0022CreatedAt\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022UpdatedAt\u0022:\u00222024-12-13T13:15:50.133905041Z\u0022,\u0022DeletedAt\u0022:null,\u0022Name\u0022:\u0022yxvm\u0022,\u0022Tag\u0022:\u0022香港\u0022,\u0022DisplayIndex\u0022:0,\u0022HideForGuest\u0022:false,\u0022Host\u0022:{\u0022Platform\u0022:\u0022debian\u0022,\u0022PlatformVersion\u0022:\u002212.8\u0022,\u0022CPU\u0022:\u0022Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz 1 Virtual Core\u0022,\u0022MemTotal\u0022:756305920,\u0022DiskTotal\u0022:5110910976,\u0022SwapTotal\u0022:0,\u0022Arch\u0022:\u0022x86_64\u0022,\u0022Virtualization\u0022:\u0022kvm\u0022,\u0022BootTime\u0022:1733555174,\u0022CountryCode\u0022:\u0022hk\u0022,\u0022Version\u0022:\u00220.20.5\u0022,\u0022GPU\u0022:null},\u0022State\u0022:{\u0022CPU\u0022:0.8474576277875054,\u0022MemUsed\u0022:363417600,\u0022SwapUsed\u0022:0,\u0022DiskUsed\u0022:1828859904,\u0022NetInTransfer\u0022:57028328346,\u0022NetOutTransfer\u0022:45755486757,\u0022NetInSpeed\u0022:469,\u0022NetOutSpeed\u0022:793,\u0022Uptime\u0022:1848718,\u0022Load1\u0022:0,\u0022Load5\u0022:0,\u0022Load15\u0022:0,\u0022TcpConnCount\u0022:20,\u0022UdpConnCount\u0022:11,\u0022ProcessCount\u0022:77,\u0022Temperatures\u0022:null,\u0022GPU\u0022:0},\u0022LastActive\u0022:\u00222024-12-28T16:38:12.921213472Z\u0022},{\u0022ID\u0022:9,\u0022CreatedAt\u0022:\u00222024-10-02T02:17:29.163583886Z\u0022,\u0022UpdatedAt\u0022:\u00222024-10-02T02:17:29.163583886Z\u0022,\u0022DeletedAt\u0022:null,\u0022Name\u0022:\u0022虚妄猫\u0022,\u0022Tag\u0022:\u0022\u0022,\u0022DisplayIndex\u0022:0,\u0022HideForGuest\u0022:false,\u0022Host\u0022:{\u0022Platform\u0022:\u0022\u0022,\u0022PlatformVersion\u0022:\u0022\u0022,\u0022CPU\u0022:null,\u0022MemTotal\u0022:0,\u0022DiskTotal\u0022:0,\u0022SwapTotal\u0022:0,\u0022Arch\u0022:\u0022\u0022,\u0022Virtualization\u0022:\u0022\u0022,\u0022BootTime\u0022:0,\u0022CountryCode\u0022:\u0022\u0022,\u0022Version\u0022:\u0022\u0022,\u0022GPU\u0022:null},\u0022State\u0022:{\u0022CPU\u0022:0,\u0022MemUsed\u0022:0,\u0022SwapUsed\u0022:0,\u0022DiskUsed\u0022:0,\u0022NetInTransfer\u0022:0,\u0022NetOutTransfer\u0022:0,\u0022NetInSpeed\u0022:0,\u0022NetOutSpeed\u0022:0,\u0022Uptime\u0022:0,\u0022Load1\u0022:0,\u0022Load5\u0022:0,\u0022Load15\u0022:0,\u0022TcpConnCount\u0022:0,\u0022UdpConnCount\u0022:0,\u0022ProcessCount\u0022:0,\u0022Temperatures\u0022:null,\u0022GPU\u0022:0},\u0022LastActive\u0022:\u00220001-01-01T00:00:00Z\u0022},{\u0022ID\u0022:14,\u0022CreatedAt\u0022:\u00222024-11-16T11:43:09.825962328Z\u0022,\u0022UpdatedAt\u0022:\u00222024-11-16T11:43:09.825962328Z\u0022,\u0022DeletedAt\u0022:null,\u0022Name\u0022:\u0022wapac usp\u0022,\u0022Tag\u0022:\u0022美国\u0022,\u0022DisplayIndex\u0022:0,\u0022HideForGuest\u0022:false,\u0022Host\u0022:{\u0022Platform\u0022:\u0022\u0022,\u0022PlatformVersion\u0022:\u0022\u0022,\u0022CPU\u0022:null,\u0022MemTotal\u0022:0,\u0022DiskTotal\u0022:0,\u0022SwapTotal\u0022:0,\u0022Arch\u0022:\u0022\u0022,\u0022Virtualization\u0022:\u0022\u0022,\u0022BootTime\u0022:0,\u0022CountryCode\u0022:\u0022\u0022,\u0022Version\u0022:\u0022\u0022,\u0022GPU\u0022:null},\u0022State\u0022:{\u0022CPU\u0022:0,\u0022MemUsed\u0022:0,\u0022SwapUsed\u0022:0,\u0022DiskUsed\u0022:0,\u0022NetInTransfer\u0022:0,\u0022NetOutTransfer\u0022:0,\u0022NetInSpeed\u0022:0,\u0022NetOutSpeed\u0022:0,\u0022Uptime\u0022:0,\u0022Load1\u0022:0,\u0022Load5\u0022:0,\u0022Load15\u0022:0,\u0022TcpConnCount\u0022:0,\u0022UdpConnCount\u0022:0,\u0022ProcessCount\u0022:0,\u0022Temperatures\u0022:null,\u0022GPU\u0022:0},\u0022LastActive\u0022:\u00220001-01-01T00:00:00Z\u0022},{\u0022ID\u0022:15,\u0022CreatedAt\u0022:\u00222024-12-14T05:52:06.47672315Z\u0022,\u0022UpdatedAt\u0022:\u00222024-12-14T05:52:06.47672315Z\u0022,\u0022DeletedAt\u0022:null,\u0022Name\u0022:\u0022yxvm vol\u0022,\u0022Tag\u0022:\u0022日本\u0022,\u0022DisplayIndex\u0022:0,\u0022HideForGuest\u0022:false,\u0022Host\u0022:{\u0022Platform\u0022:\u0022debian\u0022,\u0022PlatformVersion\u0022:\u002212.8\u0022,\u0022CPU\u0022:\u0022Intel(R) Xeon(R) Gold 6133 CPU @ 2.50GHz 1 Virtual Core\u0022,\u0022MemTotal\u0022:760520704,\u0022DiskTotal\u0022:5110910976,\u0022SwapTotal\u0022:0,\u0022Arch\u0022:\u0022x86_64\u0022,\u0022Virtualization\u0022:\u0022kvm\u0022,\u0022BootTime\u0022:1734154397,\u0022CountryCode\u0022:\u0022jp\u0022,\u0022Version\u0022:\u00220.20.5\u0022,\u0022GPU\u0022:null},\u0022State\u0022:{\u0022CPU\u0022:0,\u0022MemUsed\u0022:268210176,\u0022SwapUsed\u0022:0,\u0022DiskUsed\u0022:1826365440,\u0022NetInTransfer\u0022:21889700346,\u0022NetOutTransfer\u0022:30613843376,\u0022NetInSpeed\u0022:280,\u0022NetOutSpeed\u0022:599,\u0022Uptime\u0022:1249495,\u0022Load1\u0022:0.02,\u0022Load5\u0022:0.02,\u0022Load15\u0022:0,\u0022TcpConnCount\u0022:21,\u0022UdpConnCount\u0022:12,\u0022ProcessCount\u0022:77,\u0022Temperatures\u0022:null,\u0022GPU\u0022:0},\u0022LastActive\u0022:\u00222024-12-28T16:38:12.954774672Z\u0022},{\u0022ID\u0022:16,\u0022CreatedAt\u0022:\u00222024-12-21T13:06:03.364715644Z\u0022,\u0022UpdatedAt\u0022:\u00222024-12-21T13:06:03.364715644Z\u0022,\u0022DeletedAt\u0022:null,\u0022Name\u0022:\u0022阿里\u0022,\u0022Tag\u0022:\u0022月抛\u0022,\u0022DisplayIndex\u0022:0,\u0022HideForGuest\u0022:false,\u0022Host\u0022:{\u0022Platform\u0022:\u0022\u0022,\u0022PlatformVersion\u0022:\u0022\u0022,\u0022CPU\u0022:null,\u0022MemTotal\u0022:0,\u0022DiskTotal\u0022:0,\u0022SwapTotal\u0022:0,\u0022Arch\u0022:\u0022\u0022,\u0022Virtualization\u0022:\u0022\u0022,\u0022BootTime\u0022:0,\u0022CountryCode\u0022:\u0022\u0022,\u0022Version\u0022:\u0022\u0022,\u0022GPU\u0022:null},\u0022State\u0022:{\u0022CPU\u0022:0,\u0022MemUsed\u0022:0,\u0022SwapUsed\u0022:0,\u0022DiskUsed\u0022:0,\u0022NetInTransfer\u0022:0,\u0022NetOutTransfer\u0022:0,\u0022NetInSpeed\u0022:0,\u0022NetOutSpeed\u0022:0,\u0022Uptime\u0022:0,\u0022Load1\u0022:0,\u0022Load5\u0022:0,\u0022Load15\u0022:0,\u0022TcpConnCount\u0022:0,\u0022UdpConnCount\u0022:0,\u0022ProcessCount\u0022:0,\u0022Temperatures\u0022:null,\u0022GPU\u0022:0},\u0022LastActive\u0022:\u00220001-01-01T00:00:00Z\u0022}}).servers; this.group() }, methods: { togglePopup(event, id) { this.activePopup this.activePopup id ? null : id; this.showCharts(id); }, isActive(id) { return this.activePopup id; }, closePopup(id) { this.activePopup null; }, showCharts(id) { const url `/api/v1/monitor/${id}`; fetch(url) .then(response > response.json()) .then(data > { if (data.result) { this.chartDataListid - 1 data.result; this.$nextTick(() > { this.renderCharts(id); }); } else { console.log(this agent (id: + id + ) has no monitor.); } }) .catch(error > { console.error(Error fetching data:, error); }); }, renderCharts(id) { if (!this.chartDataListid - 1) return; const MaxTCPPingValue 1000 ? 1000 : 300; const isMobile this.checkIsMobile(); const fontSize isMobile ? 10 : 9; const itemGap isMobile ? 6 : 6; const itemWidth isMobile ? 10 : 10; const itemHeight isMobile ? 10 : 10; const gridLeft 25; const gridRight 12; const backgroundColor ; const borderColor #ffffff; const chartData this.chartDataListid - 1; const chartContainer this.$refs`chart${id}`0; const chartTheme $(html).attr(nz-theme) dark ? dark : ; const chart echarts.init(chartContainer, chartTheme, { renderer: canvas, useDirtyRect: false, width: auto, height: 120, }); const xAxisData chartData0.created_at.map(time > new Date(time).toLocaleString()); const seriesData chartData.map(item > { let loss 0; const data item.avg_delay.map((avgDelay, index) > { if (avgDelay > 0 && avgDelay MaxTCPPingValue) { loss + avgDelay > 0.9 * MaxTCPPingValue ? 1 : 0; return item.created_atindex, avgDelay; } else { loss + 1; } }); const lossRate ((loss / item.created_at.length) * 100).toFixed(1); item.monitor_name item.monitor_name.includes(%) ? item.monitor_name : `${item.monitor_name} ${lossRate}%`; return { name: item.monitor_name, type: line, smooth: true, symbol: none, data: data, connectNulls: true }; }); const option { backgroundColor: backgroundColor, title: { show: false }, tooltip: { show: true, trigger: axis, textStyle: { fontSize: fontSize, } }, legend: { icon: rect, data: chartData.map(item > item.monitor_name), show: true, textStyle: { fontSize: fontSize, }, lineStyle: { cap: butt }, top: 0, bottom: 0, itemGap: itemGap, itemWidth: itemWidth, itemHeight: itemHeight, padding: 5, 0, 5, 0 }, xAxis: { type: time, data: xAxisData, axisLabel: { textStyle: { fontSize: fontSize } } }, yAxis: { type: value, axisLabel: { textStyle: { fontSize: fontSize } } }, dataZoom: { show: false, type: slider, start: 0, end: 100 } , series: seriesData, textStyle: { fontSize: fontSize, }, grid: { top: 30, bottom: 20, left: gridLeft, right: gridRight } }; chart.setOption(option); }, checkIsMobile() { return window.innerWidth 768; }, toFixed2(f) { return f.toFixed(2) }, isWindowsPlatform(str) { return str.includes(Windows) }, getFontLogoClass(str) { if (almalinux, alpine, aosc, apple, archlinux, archlabs, artix, budgie, centos, coreos, debian, deepin, devuan, docker, elementary, fedora, ferris, flathub, freebsd, gentoo, gnu-guix, illumos, kali-linux, linuxmint, mageia, mandriva, manjaro, nixos, openbsd, opensuse, pop-os, raspberry-pi, redhat, rocky-linux, sabayon, slackware, snappy, solus, tux, ubuntu, void, zorin.indexOf(str) > -1) { return str; } if (str darwin) { return apple; } if (openwrt, linux.indexOf(str) > -1) { return tux; } if (str amazon) { return redhat; } if (str arch) { return archlinux; } if (str.toLowerCase().includes(opensuse)) { return opensuse; } return ; }, group() { this.groups groupingData(this.servers, Tag) }, formatPercent(live, used, total) { const percent live ? (parseInt(used / total * 100) || 0) : -1 if (!this.cachepercent) { this.cachepercent { class: { ui: true, progress: true, }, style: { transition-duration: 300ms, min-width: unset, width: percent + % !important, }, percent, } if (percent 0) { this.cachepercent.stylebackground-color slategray this.cachepercent.class.offline true if (!live) { this.cachepercent.percent 0 } } else if (percent 51) { this.cachepercent.stylebackground-color #0a94f2 this.cachepercent.class.fine true } else if (percent 81) { this.cachepercent.stylebackground-color orange this.cachepercent.class.warning true } else { this.cachepercent.stylebackground-color crimson this.cachepercent.class.error true } } return this.cachepercent }, secondToDate(s) { var d Math.floor(s / 3600 / 24); if (d > 0) { return d + 天 } var h Math.floor(s / 3600 % 24); var m Math.floor(s / 60 % 60); var s Math.floor(s % 60); return h + : + (0 + m).slice(-2) + : + (0 + s).slice(-2); }, formatTimestamp(t) { return new Date(t * 1000).toLocaleString() }, formatByteSize(bs) { const x this.readableBytes(bs) return x ! NaN undefined ? x : 0B }, readableBytes(bytes) { if (!bytes) { return 0B } const i Math.floor(Math.log(bytes) / Math.log(1024)); const sizes B, K, M, G, T, P, E, Z, Y; return parseFloat((bytes / Math.pow(1024, i)).toFixed(2)) + sizesi; }, getCoreAndGHz(arr) { if ((arr || ).length 0) { return ; } let totalCores 0; arr.forEach(str > { let coreMatch str.match(/(\d+(\.\d+)?) Physical/g); let coreCount 0; if (coreMatch) { coreCount parseFloat(coreMatch0); } else { let coreMatch str.match(/(\d+(\.\d+)?) Virtual/g); coreCount coreMatch ? parseFloat(coreMatch0) : 0; } totalCores + coreCount; }); return `${totalCores} Cores`; }, getK2Gb(bs){ bs bs / 1024 / 1024 / 1024; if (bs > 1) { return Math.ceil(bs.toFixed(2)) + GB; } else { bs bs * 1024; return Math.ceil(bs.toFixed(2)) + MB; } }, listTipsMouseenter(obj, strs, tipsNum 1){ this.layerIndex layer.tips(strs, # + obj, { tips: tipsNum, rgb(0 0 0 / 85%), time: 0 }); $(# + obj).attr(layerIndex, this.layerIndex) }, listTipsMouseleave(obj){ layer.close(this.layerIndex) }, toggleDetailedTemp(id){ const tempDom document.getElementById(`temp-${id}`); const tempDetailShow tempDom.getAttribute(temp-detail-show); const tempMain document.getElementById(`temp-main-${id}`); const tempDetail document.getElementById(`temp-detail-${id}`); if (tempDetailShow 0){ tempMain.style.display none; tempDetail.style.display inline; tempDom.setAttribute(temp-detail-show, 1); } else { tempMain.style.display inline; tempDetail.style.display none; tempDom.setAttribute(temp-detail-show, 0); } }, getTemperature(temperatureList, sensorList) { const lowerCaseSensorList sensorList.map(sensor > sensor.toLowerCase()); const filtered temperatureList.filter(item > item.Temperature ! 0 && lowerCaseSensorList.includes(item.Name.toLowerCase())); if (filtered.length > 0) { return filtered.reduce((max, current) > { return current.Temperature > max ? current.Temperature : max; }, filtered0.Temperature); } const nonZeroTemps temperatureList.filter(item > item.Temperature ! 0); if (nonZeroTemps.length > 0) { return nonZeroTemps.reduce((max, current) > { return current.Temperature > max ? current.Temperature : max; }, nonZeroTemps0.Temperature); } return 0; } } }) function groupingData(data, field) { let map {}; let dest ; data.forEach(item > { if (!mapitemfield) { dest.push({ field: itemfield, data: item }); mapitemfield item; } else { dest.forEach(dItem > { if (dItemfield itemfield) { dItem.data.push(item); } }); } }) return dest; } let canShowError true; function connect() { const wsProtocol window.location.protocol https: ? wss : ws const ws new WebSocket(wsProtocol + :// + window.location.host + /ws); ws.onopen function (evt) { canShowError true; $.suiAlert({ title: 实时通道已建立, description: 可以实时获取最新监控数据啦, type: success, time: 2, position: top-center, }); } ws.onmessage function (evt) { const oldServers statusCards.servers const data JSON.parse(evt.data) statusCards.servers data.servers for (let i 0; i statusCards.servers.length; i++) { const ns statusCards.serversi; if (!ns.Host) { ns.live false } else { const lastActive new Date(ns.LastActive).getTime() if (data.now - lastActive > 10 * 1000) { ns.live false } else { ns.live true } } } statusCards.groups groupingData(statusCards.servers, Tag) } ws.onclose function () { if (canShowError) { canShowError false; $.suiAlert({ title: 实时通道已断开, description: 无法实时获取最新监控数据咯, type: warning, time: 2, position: top-center, }); } setTimeout(function () { connect() }, 3000); } ws.onerror function () { ws.close() } } connect(); $(.ui.accordion).accordion({ exclusive: false });/script>
Port 443
HTTP/1.1 200 OKDate: Sat, 28 Dec 2024 16:38:13 GMTContent-Type: text/html; charsetutf-8Transfer-Encoding: chunkedConnection: keep-aliveVary: Accept-EncodingStrict-Transport-Security: max-age31536000cf-cache-status: DYNAMICReport-To: {endpoints:{url:https:\/\/a.nel.cloudflare.com\/report\/v4?sZTB7tQcawPB9%2B7YqEliSh1k121uqZs027Ml33ptecbtT2QPWhd668EwEvUt6%2BE2LnlP8WrXMyF52sgmTF%2BYbXo8fpeuwo%2F89EB3803TAt6uoM%2FswTBpcKIMKbPII},group:cf-nel,max_age:604800}NEL: {success_fraction:0,report_to:cf-nel,max_age:604800}Server: cloudflareCF-RAY: 8f92fabeea4beb3c-SEAalt-svc: h3:443; ma86400server-timing: cfL4;desc?protoTCP&rtt10597&min_rtt10549&rtt_var3006&sent5&recv6&lost0&retrans0&sent_bytes2849&recv_bytes721&delivery_rate274528&cwnd252&unsent_bytes0&cid2e37d32cf05aeb7e&ts124&x0 !DOCTYPE html>html langzh-CN>head> title>shiliumu/title> meta charsetutf-8> meta http-equivX-UA-Compatible contentieedge> meta contenttelephoneno nameformat-detection> meta nameviewport contentwidthdevice-width, initial-scale1.0> meta nameapple-mobile-web-app-capable contentyes /> meta namemobile-web-app-capable contentyes /> meta nametheme-color content#000000 /> link relmanifest href/static/manifest-zh-CN.json?v20240905 /> link relapple-touch-startup-image href/static/logo.svg /> link relshortcut icon typeimage/png href/static/logo.svg> link relstylesheet hrefhttps://unpkg.com/semantic-ui@2.4.0/dist/semantic.min.css> link relstylesheet hrefhttps://unpkg.com/font-logos@0.17.0/assets/font-logos.css> link relstylesheet hrefhttps://unpkg.com/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css> link relstylesheet hrefhttps://unpkg.com/flag-icons@7.2.3/css/flag-icons.min.css> link relstylesheet typetext/css href/static/semantic-ui-alerts.min.css> link relstylesheet typetext/css href/static/theme-default/css/main.css?v20240816> link relstylesheet typetext/css href/static/darkmode.css?v20240816> script srchttps://unpkg.com/jquery@3.7.1/dist/jquery.min.js>/script> script srchttps://unpkg.com/semantic-ui@2.4.0/dist/semantic.min.js>/script> script srchttps://unpkg.com/vue@2.6.14/dist/vue.min.js>/script> script srchttps://unpkg.com/echarts@5.5.0/dist/echarts.min.js>/script> script src/static/semantic-ui-alerts.min.js>/script> script src/static/theme-default/js/mixin.js?v20240302>/script> script> document.documentElement.setAttribute(nz-theme, window.matchMedia((prefers-color-scheme: dark)).matches ? dark : light); /script>/head>body> div idapp>div classui large top fixed menu nb-menu stylez-index:9999999;> div classui container> a classitem href/> img src/static/logo.svg?v20210804> /a> a classitem href/>i classhome icon>/i>首页/a> template v-ifisMobile> div classitem ui simple dropdown> div classtext>i classbi bi-gear-wide-connected icon stylemargin-right:3px;>/i>功能i classdropdown icon stylemargin-right:0px;>/i>/div> div classmenu> a href/service classitem>i classrss icon>/i>服务/a> a href/network classitem>i classbi bi-hdd-network icon>/i>网络/a> /div> /div> /template> template v-else> a href/service classitem>i classrss icon>/i>服务/a> a href/network classitem>i classbi bi-hdd-network icon>/i>网络/a> /template> div classitem ui simple dropdown> div classtext>i classbi bi-incognito icon stylemargin-right:3px;>/i>主题i classdropdown icon stylemargin-right:0px;>/i>/div> div classmenu> a v-for(item, index) in adaptedTemplates :keyindex @clicktoggleTemplate(item.key) classitem> i :classitem.icon + icon>/i>@#item.name#@ i classcheck icon v-ifpreferredTemplate item.key>/i> /a> a v-ifdefaultTemplate custom @clicktoggleTemplate(custom) classitem> i classexpand icon>/i>Custom /a> /div> /div> a href/login classitem right item-right stylepadding-right:1.2rem>i classsign-in icon>/i>登录/a> /div>/div>div classui mini confirm modal transition hidden> div classheader>/div> div classcontent> /div> div classactions> div classui negative button>取消/div> button classui positive nezha-primary-btn right labeled icon button>确认i classcheckmark icon>/i> /button> /div>/div>div classnb-container> div classui container> template v-ifgroups> div classui styled fluid accordion v-forgroup in groups> div classactive title> i classdropdown icon>/i> @#(group.Tag!?group.Tag:默认)#@ /div> div classactive content> div classui four stackable status cards> div v-forserver in group.data :idserver.ID classui card> div classcontent v-ifserver.Host stylemargin-top: 10px; padding-bottom: 5px> div classheader> i stylewidth: 22px;border-radius: 4px; :classfi fi- + server.Host.CountryCode>/i> i v-ifisWindowsPlatform(server.Host.Platform) classwindows icon>/i> i v-else-ifgetFontLogoClass(server.Host.Platform) && server.State.Uptime > 0 classfl-tux>/i> i v-else :classfl- + getFontLogoClass(server.Host.Platform)>/i> @#server.Name + (server.live?:已离线)#@ i @clicktogglePopup($event, server.ID) aria-expandedfalse classnezha-secondary-font info circle icon>/i> div classui content popup :class{ visible: isActive(server.ID) } stylemargin-bottom: 0;> i classclosePopup window close icon @clickclosePopup(server.ID)>/i> 系统: @#server.Host.Platform#@-@#server.Host.PlatformVersion#@ span v-ifserver.Host.Virtualization>@#server.Host.Virtualization#@:/span>@#server.Host.Arch#@ br /> CPU: @#server.Host.CPU#@ br /> template v-ifserver.Host.GPU> GPU: @#server.Host.GPU#@ br /> /template> 硬盘: @#formatByteSize(server.State.DiskUsed)#@/@#formatByteSize(server.Host.DiskTotal)#@ br /> 内存: @#formatByteSize(server.State.MemUsed)#@/@#formatByteSize(server.Host.MemTotal)#@ br /> 交换: template v-ifserver.Host.SwapTotal 0>OFF/template> template v-else>@#formatByteSize(server.State.SwapUsed)#@/@#formatByteSize(server.Host.SwapTotal)#@/template> br /> 流量: i classarrow alternate circle down outline icon>/i>@#formatByteSize(server.State.NetInTransfer)#@ i classarrow alternate circle up outline icon>/i>@#formatByteSize(server.State.NetOutTransfer)#@ br /> 负载: @#toFixed2(server.State.Load1)#@/@#toFixed2(server.State.Load5)#@/@# toFixed2(server.State.Load15)#@ br /> 进程数: @#server.State.ProcessCount#@ br /> 连接数: TCP @#server.State.TcpConnCount#@ / UDP @#server.State.UdpConnCount#@ br /> 启动: @#formatTimestamp(server.Host.BootTime)#@ br /> 活动: @#new Date(server.LastActive).toLocaleString()#@ br /> div v-ifserver.State.Temperatures && getTemperature(server.State.Temperatures, sensorList) > 0 classtemp-detail @clicktoggleDetailedTemp(server.ID) :id`temp-${server.ID}` temp-detail-show0> 温度: span :id`temp-main-${server.ID}`> @#getTemperature(server.State.Temperatures, sensorList)#@°C i classbi bi-chevron-double-down>/i> /span> span :id`temp-detail-${server.ID}` styledisplay:none> span v-fortemp in server.State.Temperatures :keytemp.Name v-iftemp.Temperature ! 0> @#temp.Name#@: @#temp.Temperature#@°C /span> i classbi bi-chevron-double-up>/i> /span> /div> 版本: @#server.Host.Version#@ div classchartbox :keyserver.ID :ref`chart${server.ID}` stylewidth: 100%; height: auto; margin-bottom: 2px;>/div> /div> div classui divider stylemargin-bottom: 5px>/div> /div> div classdescription> div classui grid> div classthree wide column>CPU/div> div classthirteen wide column> div :classformatPercent(server.live,server.State.CPU, 100).class> div classbar :styleformatPercent(server.live,server.State.CPU, 100).style> small>@#parseInt(server.State.CPU?server.State.CPU:0)#@%/small> /div> /div> /div> div classthree wide column>内存/div> div classthirteen wide column> div :classformatPercent(server.live,server.State.MemUsed, server.Host.MemTotal).class> div classbar :styleformatPercent(server.live,server.State.MemUsed, server.Host.MemTotal).style> small>@#parseInt(server.Host.MemTotal?server.State.MemUsed/server.Host.MemTotal*100:0)#@%/small> /div> /div> /div> div classthree wide column>交换/div> div classthirteen wide column> div :classformatPercent(server.live,server.State.SwapUsed, server.Host.SwapTotal).class> div classbar :styleformatPercent(server.live,server.State.SwapUsed, server.Host.SwapTotal).style> small v-ifserver.Host.SwapTotal 0>OFF/small> small v-else>@#parseInt(server.State.SwapUsed/server.Host.SwapTotal*100)#@%/small> /div> /div> /div> div classthree wide column>硬盘/div> div classthirteen wide column> div :classformatPercent(server.live,server.State.DiskUsed, server.Host.DiskTotal).class> div classbar :styleformatPercent(server.live,server.State.DiskUsed, server.Host.DiskTotal).style> small>@#parseInt(server.Host.DiskTotal?server.State.DiskUsed/server.Host.DiskTotal*100:0)#@%/small> /div> /div> /div> div classthree wide column>网络/div> div classthirteen wide column> i classarrow alternate circle down outline icon>/i> @#formatByteSize(server.State.NetInSpeed)#@/s i classarrow alternate circle up outline icon>/i> @#formatByteSize(server.State.NetOutSpeed)#@/s /div> div classthree wide column>流量/div> div classthirteen wide column> i classarrow circle down icon>/i> @#formatByteSize(server.State.NetInTransfer)#@ i classarrow circle up icon>/i> @#formatByteSize(server.State.NetOutTransfer)#@ /div> div classthree wide column>信息/div> div classthirteen wide column> i classbi bi-cpu-fill stylefont-size: 1.1rem; color: #4a86e8;>/i> @#getCoreAndGHz(server.Host.CPU)#@ i classbi bi-memory stylefont-size: 1.1rem; color: #00ac0d;>/i> @#getK2Gb(server.Host.MemTotal)#@ i classbi bi-hdd stylefont-size: 1.1rem; color: #e41e10>/i> @#getK2Gb(server.Host.DiskTotal)#@ /div> div classthree wide column>负载/div> div classthirteen wide column> i classbi bi-activity stylefont-size: 1.1rem; color: #e41e10;>/i> @#toFixed2(server.State.Load1)#@ | @#toFixed2(server.State.Load5)#@ | @#toFixed2(server.State.Load15)#@ /div> div classthree wide column>在线/div> div classthirteen wide column> i classclock icon>/i>@#secondToDate(server.State.Uptime)#@ /div> /div> /div> /div> div classcontent v-else> p>@#server.Name#@/p> p>服务器已离线/p> /div> /div> /div> /div> /div> /template> /div>/div>/div>div classui inverted vertical footer segment> div classui center aligned is-size-7 container> b>© a stylecolor: white; href/>shiliumu/a>/b> | small>Powered by a hrefhttps://github.com/naiba/nezha stylecolor: white; target_blank>哪吒监控/a> 0.19.10/small> /div>/div>script> function showSwitchTemplate(list, currentBackendTheme) { } showSwitchTemplate({angel-kanade:AngelKanade,custom:Custom(local),daynight:JackieSung DayNight,default:Default,hotaru:Hotaru,mdui:Neko Mdui,server-status:ServerStatus}, default)/script>/body>/html>script> var statusCards new Vue({ el: #app, delimiters: @#, #@, data: { page: index, defaultTemplate: default, templates: {angel-kanade:AngelKanade,custom:Custom(local),daynight:JackieSung DayNight,default:Default,hotaru:Hotaru,mdui:Neko Mdui,server-status:ServerStatus}, servers: , groups: , cache: , chartDataList: , activePopup: null, sensorList: TC0D, TC0H, TC0P, k10temp, k10temp_tctl, coretemp_package_id_0, cpu_thermal_zone, cpu-thermal, soc_thermal, cpu_thermal, ACPI\\ThermalZone\\TZ0__0, ACPI\\ThermalZone\\CPUZ_0, ACPI\\ThermalZone\\TZ00_0, ACPI\\ThermalZone\\TZ001_0, ACPI\\ThermalZone\\THM0_0 }, mixins: mixinsVue, created() { this.servers JSON.parse({\u0022now\u0022:1735403893000,\u0022servers\u0022:{\u0022ID\u0022:1,\u0022CreatedAt\u0022:\u00222024-09-07T13:07:25.186489119Z\u0022,\u0022UpdatedAt\u0022:\u00222024-09-07T13:07:25.186489119Z\u0022,\u0022DeletedAt\u0022:null,\u0022Name\u0022:\u0022奠脑\u0022,\u0022Tag\u0022:\u0022家里云\u0022,\u0022DisplayIndex\u0022:8964,\u0022HideForGuest\u0022:false,\u0022Host\u0022:{\u0022Platform\u0022:\u0022Microsoft Windows 11 Home China\u0022,\u0022PlatformVersion\u0022:\u002223H2\u0022,\u0022CPU\u0022:\u002213th Gen Intel(R) Core(TM) i9-13980HX 32 Physical Core\u0022,\u0022MemTotal\u0022:16779960320,\u0022DiskTotal\u0022:994678472704,\u0022SwapTotal\u0022:14495514624,\u0022Arch\u0022:\u0022x86_64\u0022,\u0022Virtualization\u0022:\u0022\u0022,\u0022BootTime\u0022:1732375596,\u0022CountryCode\u0022:\u0022cn\u0022,\u0022Version\u0022:\u00220.20.3\u0022,\u0022GPU\u0022:null},\u0022State\u0022:{\u0022CPU\u0022:0.7334963325183375,\u0022MemUsed\u0022:9636970496,\u0022SwapUsed\u0022:51625984,\u0022DiskUsed\u0022:739573563392,\u0022NetInTransfer\u0022:779260268,\u0022NetOutTransfer\u0022:22496432,\u0022NetInSpeed\u0022:955119,\u0022NetOutSpeed\u0022:14256,\u0022Uptime\u0022:508834,\u0022Load1\u0022:0.003154277571960332,\u0022Load5\u0022:0.05567135883832436,\u0022Load15\u0022:0.08008030663795036,\u0022TcpConnCount\u0022:183,\u0022UdpConnCount\u0022:140,\u0022ProcessCount\u0022:315,\u0022Temperatures\u0022:null,\u0022GPU\u0022:0},\u0022LastActive\u0022:\u00222024-11-29T12:47:03.800002224Z\u0022},{\u0022ID\u0022:2,\u0022CreatedAt\u0022:\u00222024-09-07T13:13:55.859252547Z\u0022,\u0022UpdatedAt\u0022:\u00222024-09-07T13:13:55.859252547Z\u0022,\u0022DeletedAt\u0022:null,\u0022Name\u0022:\u0022后端\u0022,\u0022Tag\u0022:\u0022家里云\u0022,\u0022DisplayIndex\u0022:8963,\u0022HideForGuest\u0022:false,\u0022Host\u0022:{\u0022Platform\u0022:\u0022\u0022,\u0022PlatformVersion\u0022:\u0022\u0022,\u0022CPU\u0022:null,\u0022MemTotal\u0022:0,\u0022DiskTotal\u0022:0,\u0022SwapTotal\u0022:0,\u0022Arch\u0022:\u0022\u0022,\u0022Virtualization\u0022:\u0022\u0022,\u0022BootTime\u0022:0,\u0022CountryCode\u0022:\u0022\u0022,\u0022Version\u0022:\u0022\u0022,\u0022GPU\u0022:null},\u0022State\u0022:{\u0022CPU\u0022:0,\u0022MemUsed\u0022:0,\u0022SwapUsed\u0022:0,\u0022DiskUsed\u0022:0,\u0022NetInTransfer\u0022:0,\u0022NetOutTransfer\u0022:0,\u0022NetInSpeed\u0022:0,\u0022NetOutSpeed\u0022:0,\u0022Uptime\u0022:0,\u0022Load1\u0022:0,\u0022Load5\u0022:0,\u0022Load15\u0022:0,\u0022TcpConnCount\u0022:0,\u0022UdpConnCount\u0022:0,\u0022ProcessCount\u0022:0,\u0022Temperatures\u0022:null,\u0022GPU\u0022:0},\u0022LastActive\u0022:\u00220001-01-01T00:00:00Z\u0022},{\u0022ID\u0022:8,\u0022CreatedAt\u0022:\u00222024-10-02T01:35:23.700953769Z\u0022,\u0022UpdatedAt\u0022:\u00222024-10-02T01:35:23.700953769Z\u0022,\u0022DeletedAt\u0022:null,\u0022Name\u0022:\u0022hytron\u0022,\u0022Tag\u0022:\u0022香港\u0022,\u0022DisplayIndex\u0022:1,\u0022HideForGuest\u0022:false,\u0022Host\u0022:{\u0022Platform\u0022:\u0022debian\u0022,\u0022PlatformVersion\u0022:\u002212.0\u0022,\u0022CPU\u0022:\u0022Intel(R) Xeon(R) Gold 6138 CPU @ 2.00GHz 1 Virtual Core\u0022,\u0022MemTotal\u0022:1007693824,\u0022DiskTotal\u0022:5181669376,\u0022SwapTotal\u0022:0,\u0022Arch\u0022:\u0022x86_64\u0022,\u0022Virtualization\u0022:\u0022kvm\u0022,\u0022BootTime\u0022:1728021150,\u0022CountryCode\u0022:\u0022hk\u0022,\u0022Version\u0022:\u00220.20.5\u0022,\u0022GPU\u0022:null},\u0022State\u0022:{\u0022CPU\u0022:0.8474575898923283,\u0022MemUsed\u0022:646729728,\u0022SwapUsed\u0022:0,\u0022DiskUsed\u0022:2297401344,\u0022NetInTransfer\u0022:71692053707,\u0022NetOutTransfer\u0022:68503987902,\u0022NetInSpeed\u0022:338,\u0022NetOutSpeed\u0022:254,\u0022Uptime\u0022:7382743,\u0022Load1\u0022:0,\u0022Load5\u0022:0.04,\u0022Load15\u0022:0.01,\u0022TcpConnCount\u0022:20,\u0022UdpConnCount\u0022:6,\u0022ProcessCount\u0022:72,\u0022Temperatures\u0022:null,\u0022GPU\u0022:0},\u0022LastActive\u0022:\u00222024-12-28T16:38:13.249558176Z\u0022},{\u0022ID\u0022:3,\u0022CreatedAt\u0022:\u00222024-09-07T13:50:27.321248712Z\u0022,\u0022UpdatedAt\u0022:\u00222024-09-08T03:27:10.059301875Z\u0022,\u0022DeletedAt\u0022:null,\u0022Name\u0022:\u0022探针,自走\u0022,\u0022Tag\u0022:\u0022\u0022,\u0022DisplayIndex\u0022:0,\u0022HideForGuest\u0022:false,\u0022Host\u0022:{\u0022Platform\u0022:\u0022debian\u0022,\u0022PlatformVersion\u0022:\u002211.11\u0022,\u0022CPU\u0022:\u0022AMD EPYC-Rome Processor 1 Virtual Core\u0022,\u0022MemTotal\u0022:1026510848,\u0022DiskTotal\u0022:20961435648,\u0022SwapTotal\u0022:1074786304,\u0022Arch\u0022:\u0022x86_64\u0022,\u0022Virtualization\u0022:\u0022\u0022,\u0022BootTime\u0022:1731625204,\u0022CountryCode\u0022:\u0022us\u0022,\u0022Version\u0022:\u00220.20.5\u0022,\u0022GPU\u0022:null},\u0022State\u0022:{\u0022CPU\u0022:0.990099033638258,\u0022MemUsed\u0022:845869056,\u0022SwapUsed\u0022:933326848,\u0022DiskUsed\u0022:9112158208,\u0022NetInTransfer\u0022:20146975775,\u0022NetOutTransfer\u0022:5437375760,\u0022NetInSpeed\u0022:4944,\u0022NetOutSpeed\u0022:517,\u0022Uptime\u0022:3778688,\u0022Load1\u0022:0.02,\u0022Load5\u0022:0.02,\u0022Load15\u0022:0.05,\u0022TcpConnCount\u0022:18,\u0022UdpConnCount\u0022:2,\u0022ProcessCount\u0022:82,\u0022Temperatures\u0022:null,\u0022GPU\u0022:0},\u0022LastActive\u0022:\u00222024-12-28T16:38:12.773912587Z\u0022},{\u0022ID\u0022:5,\u0022CreatedAt\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022UpdatedAt\u0022:\u00222024-12-13T13:15:50.133905041Z\u0022,\u0022DeletedAt\u0022:null,\u0022Name\u0022:\u0022yxvm\u0022,\u0022Tag\u0022:\u0022香港\u0022,\u0022DisplayIndex\u0022:0,\u0022HideForGuest\u0022:false,\u0022Host\u0022:{\u0022Platform\u0022:\u0022debian\u0022,\u0022PlatformVersion\u0022:\u002212.8\u0022,\u0022CPU\u0022:\u0022Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz 1 Virtual Core\u0022,\u0022MemTotal\u0022:756305920,\u0022DiskTotal\u0022:5110910976,\u0022SwapTotal\u0022:0,\u0022Arch\u0022:\u0022x86_64\u0022,\u0022Virtualization\u0022:\u0022kvm\u0022,\u0022BootTime\u0022:1733555174,\u0022CountryCode\u0022:\u0022hk\u0022,\u0022Version\u0022:\u00220.20.5\u0022,\u0022GPU\u0022:null},\u0022State\u0022:{\u0022CPU\u0022:0.8474576277875054,\u0022MemUsed\u0022:363417600,\u0022SwapUsed\u0022:0,\u0022DiskUsed\u0022:1828859904,\u0022NetInTransfer\u0022:57028328346,\u0022NetOutTransfer\u0022:45755486757,\u0022NetInSpeed\u0022:469,\u0022NetOutSpeed\u0022:793,\u0022Uptime\u0022:1848718,\u0022Load1\u0022:0,\u0022Load5\u0022:0,\u0022Load15\u0022:0,\u0022TcpConnCount\u0022:20,\u0022UdpConnCount\u0022:11,\u0022ProcessCount\u0022:77,\u0022Temperatures\u0022:null,\u0022GPU\u0022:0},\u0022LastActive\u0022:\u00222024-12-28T16:38:12.921213472Z\u0022},{\u0022ID\u0022:9,\u0022CreatedAt\u0022:\u00222024-10-02T02:17:29.163583886Z\u0022,\u0022UpdatedAt\u0022:\u00222024-10-02T02:17:29.163583886Z\u0022,\u0022DeletedAt\u0022:null,\u0022Name\u0022:\u0022虚妄猫\u0022,\u0022Tag\u0022:\u0022\u0022,\u0022DisplayIndex\u0022:0,\u0022HideForGuest\u0022:false,\u0022Host\u0022:{\u0022Platform\u0022:\u0022\u0022,\u0022PlatformVersion\u0022:\u0022\u0022,\u0022CPU\u0022:null,\u0022MemTotal\u0022:0,\u0022DiskTotal\u0022:0,\u0022SwapTotal\u0022:0,\u0022Arch\u0022:\u0022\u0022,\u0022Virtualization\u0022:\u0022\u0022,\u0022BootTime\u0022:0,\u0022CountryCode\u0022:\u0022\u0022,\u0022Version\u0022:\u0022\u0022,\u0022GPU\u0022:null},\u0022State\u0022:{\u0022CPU\u0022:0,\u0022MemUsed\u0022:0,\u0022SwapUsed\u0022:0,\u0022DiskUsed\u0022:0,\u0022NetInTransfer\u0022:0,\u0022NetOutTransfer\u0022:0,\u0022NetInSpeed\u0022:0,\u0022NetOutSpeed\u0022:0,\u0022Uptime\u0022:0,\u0022Load1\u0022:0,\u0022Load5\u0022:0,\u0022Load15\u0022:0,\u0022TcpConnCount\u0022:0,\u0022UdpConnCount\u0022:0,\u0022ProcessCount\u0022:0,\u0022Temperatures\u0022:null,\u0022GPU\u0022:0},\u0022LastActive\u0022:\u00220001-01-01T00:00:00Z\u0022},{\u0022ID\u0022:14,\u0022CreatedAt\u0022:\u00222024-11-16T11:43:09.825962328Z\u0022,\u0022UpdatedAt\u0022:\u00222024-11-16T11:43:09.825962328Z\u0022,\u0022DeletedAt\u0022:null,\u0022Name\u0022:\u0022wapac usp\u0022,\u0022Tag\u0022:\u0022美国\u0022,\u0022DisplayIndex\u0022:0,\u0022HideForGuest\u0022:false,\u0022Host\u0022:{\u0022Platform\u0022:\u0022\u0022,\u0022PlatformVersion\u0022:\u0022\u0022,\u0022CPU\u0022:null,\u0022MemTotal\u0022:0,\u0022DiskTotal\u0022:0,\u0022SwapTotal\u0022:0,\u0022Arch\u0022:\u0022\u0022,\u0022Virtualization\u0022:\u0022\u0022,\u0022BootTime\u0022:0,\u0022CountryCode\u0022:\u0022\u0022,\u0022Version\u0022:\u0022\u0022,\u0022GPU\u0022:null},\u0022State\u0022:{\u0022CPU\u0022:0,\u0022MemUsed\u0022:0,\u0022SwapUsed\u0022:0,\u0022DiskUsed\u0022:0,\u0022NetInTransfer\u0022:0,\u0022NetOutTransfer\u0022:0,\u0022NetInSpeed\u0022:0,\u0022NetOutSpeed\u0022:0,\u0022Uptime\u0022:0,\u0022Load1\u0022:0,\u0022Load5\u0022:0,\u0022Load15\u0022:0,\u0022TcpConnCount\u0022:0,\u0022UdpConnCount\u0022:0,\u0022ProcessCount\u0022:0,\u0022Temperatures\u0022:null,\u0022GPU\u0022:0},\u0022LastActive\u0022:\u00220001-01-01T00:00:00Z\u0022},{\u0022ID\u0022:15,\u0022CreatedAt\u0022:\u00222024-12-14T05:52:06.47672315Z\u0022,\u0022UpdatedAt\u0022:\u00222024-12-14T05:52:06.47672315Z\u0022,\u0022DeletedAt\u0022:null,\u0022Name\u0022:\u0022yxvm vol\u0022,\u0022Tag\u0022:\u0022日本\u0022,\u0022DisplayIndex\u0022:0,\u0022HideForGuest\u0022:false,\u0022Host\u0022:{\u0022Platform\u0022:\u0022debian\u0022,\u0022PlatformVersion\u0022:\u002212.8\u0022,\u0022CPU\u0022:\u0022Intel(R) Xeon(R) Gold 6133 CPU @ 2.50GHz 1 Virtual Core\u0022,\u0022MemTotal\u0022:760520704,\u0022DiskTotal\u0022:5110910976,\u0022SwapTotal\u0022:0,\u0022Arch\u0022:\u0022x86_64\u0022,\u0022Virtualization\u0022:\u0022kvm\u0022,\u0022BootTime\u0022:1734154397,\u0022CountryCode\u0022:\u0022jp\u0022,\u0022Version\u0022:\u00220.20.5\u0022,\u0022GPU\u0022:null},\u0022State\u0022:{\u0022CPU\u0022:0,\u0022MemUsed\u0022:268210176,\u0022SwapUsed\u0022:0,\u0022DiskUsed\u0022:1826365440,\u0022NetInTransfer\u0022:21889700346,\u0022NetOutTransfer\u0022:30613843376,\u0022NetInSpeed\u0022:280,\u0022NetOutSpeed\u0022:599,\u0022Uptime\u0022:1249495,\u0022Load1\u0022:0.02,\u0022Load5\u0022:0.02,\u0022Load15\u0022:0,\u0022TcpConnCount\u0022:21,\u0022UdpConnCount\u0022:12,\u0022ProcessCount\u0022:77,\u0022Temperatures\u0022:null,\u0022GPU\u0022:0},\u0022LastActive\u0022:\u00222024-12-28T16:38:12.954774672Z\u0022},{\u0022ID\u0022:16,\u0022CreatedAt\u0022:\u00222024-12-21T13:06:03.364715644Z\u0022,\u0022UpdatedAt\u0022:\u00222024-12-21T13:06:03.364715644Z\u0022,\u0022DeletedAt\u0022:null,\u0022Name\u0022:\u0022阿里\u0022,\u0022Tag\u0022:\u0022月抛\u0022,\u0022DisplayIndex\u0022:0,\u0022HideForGuest\u0022:false,\u0022Host\u0022:{\u0022Platform\u0022:\u0022\u0022,\u0022PlatformVersion\u0022:\u0022\u0022,\u0022CPU\u0022:null,\u0022MemTotal\u0022:0,\u0022DiskTotal\u0022:0,\u0022SwapTotal\u0022:0,\u0022Arch\u0022:\u0022\u0022,\u0022Virtualization\u0022:\u0022\u0022,\u0022BootTime\u0022:0,\u0022CountryCode\u0022:\u0022\u0022,\u0022Version\u0022:\u0022\u0022,\u0022GPU\u0022:null},\u0022State\u0022:{\u0022CPU\u0022:0,\u0022MemUsed\u0022:0,\u0022SwapUsed\u0022:0,\u0022DiskUsed\u0022:0,\u0022NetInTransfer\u0022:0,\u0022NetOutTransfer\u0022:0,\u0022NetInSpeed\u0022:0,\u0022NetOutSpeed\u0022:0,\u0022Uptime\u0022:0,\u0022Load1\u0022:0,\u0022Load5\u0022:0,\u0022Load15\u0022:0,\u0022TcpConnCount\u0022:0,\u0022UdpConnCount\u0022:0,\u0022ProcessCount\u0022:0,\u0022Temperatures\u0022:null,\u0022GPU\u0022:0},\u0022LastActive\u0022:\u00220001-01-01T00:00:00Z\u0022}}).servers; this.group() }, methods: { togglePopup(event, id) { this.activePopup this.activePopup id ? null : id; this.showCharts(id); }, isActive(id) { return this.activePopup id; }, closePopup(id) { this.activePopup null; }, showCharts(id) { const url `/api/v1/monitor/${id}`; fetch(url) .then(response > response.json()) .then(data > { if (data.result) { this.chartDataListid - 1 data.result; this.$nextTick(() > { this.renderCharts(id); }); } else { console.log(this agent (id: + id + ) has no monitor.); } }) .catch(error > { console.error(Error fetching data:, error); }); }, renderCharts(id) { if (!this.chartDataListid - 1) return; const MaxTCPPingValue 1000 ? 1000 : 300; const isMobile this.checkIsMobile(); const fontSize isMobile ? 10 : 9; const itemGap isMobile ? 6 : 6; const itemWidth isMobile ? 10 : 10; const itemHeight isMobile ? 10 : 10; const gridLeft 25; const gridRight 12; const backgroundColor ; const borderColor #ffffff; const chartData this.chartDataListid - 1; const chartContainer this.$refs`chart${id}`0; const chartTheme $(html).attr(nz-theme) dark ? dark : ; const chart echarts.init(chartContainer, chartTheme, { renderer: canvas, useDirtyRect: false, width: auto, height: 120, }); const xAxisData chartData0.created_at.map(time > new Date(time).toLocaleString()); const seriesData chartData.map(item > { let loss 0; const data item.avg_delay.map((avgDelay, index) > { if (avgDelay > 0 && avgDelay MaxTCPPingValue) { loss + avgDelay > 0.9 * MaxTCPPingValue ? 1 : 0; return item.created_atindex, avgDelay; } else { loss + 1; } }); const lossRate ((loss / item.created_at.length) * 100).toFixed(1); item.monitor_name item.monitor_name.includes(%) ? item.monitor_name : `${item.monitor_name} ${lossRate}%`; return { name: item.monitor_name, type: line, smooth: true, symbol: none, data: data, connectNulls: true }; }); const option { backgroundColor: backgroundColor, title: { show: false }, tooltip: { show: true, trigger: axis, textStyle: { fontSize: fontSize, } }, legend: { icon: rect, data: chartData.map(item > item.monitor_name), show: true, textStyle: { fontSize: fontSize, }, lineStyle: { cap: butt }, top: 0, bottom: 0, itemGap: itemGap, itemWidth: itemWidth, itemHeight: itemHeight, padding: 5, 0, 5, 0 }, xAxis: { type: time, data: xAxisData, axisLabel: { textStyle: { fontSize: fontSize } } }, yAxis: { type: value, axisLabel: { textStyle: { fontSize: fontSize } } }, dataZoom: { show: false, type: slider, start: 0, end: 100 } , series: seriesData, textStyle: { fontSize: fontSize, }, grid: { top: 30, bottom: 20, left: gridLeft, right: gridRight } }; chart.setOption(option); }, checkIsMobile() { return window.innerWidth 768; }, toFixed2(f) { return f.toFixed(2) }, isWindowsPlatform(str) { return str.includes(Windows) }, getFontLogoClass(str) { if (almalinux, alpine, aosc, apple, archlinux, archlabs, artix, budgie, centos, coreos, debian, deepin, devuan, docker, elementary, fedora, ferris, flathub, freebsd, gentoo, gnu-guix, illumos, kali-linux, linuxmint, mageia, mandriva, manjaro, nixos, openbsd, opensuse, pop-os, raspberry-pi, redhat, rocky-linux, sabayon, slackware, snappy, solus, tux, ubuntu, void, zorin.indexOf(str) > -1) { return str; } if (str darwin) { return apple; } if (openwrt, linux.indexOf(str) > -1) { return tux; } if (str amazon) { return redhat; } if (str arch) { return archlinux; } if (str.toLowerCase().includes(opensuse)) { return opensuse; } return ; }, group() { this.groups groupingData(this.servers, Tag) }, formatPercent(live, used, total) { const percent live ? (parseInt(used / total * 100) || 0) : -1 if (!this.cachepercent) { this.cachepercent { class: { ui: true, progress: true, }, style: { transition-duration: 300ms, min-width: unset, width: percent + % !important, }, percent, } if (percent 0) { this.cachepercent.stylebackground-color slategray this.cachepercent.class.offline true if (!live) { this.cachepercent.percent 0 } } else if (percent 51) { this.cachepercent.stylebackground-color #0a94f2 this.cachepercent.class.fine true } else if (percent 81) { this.cachepercent.stylebackground-color orange this.cachepercent.class.warning true } else { this.cachepercent.stylebackground-color crimson this.cachepercent.class.error true } } return this.cachepercent }, secondToDate(s) { var d Math.floor(s / 3600 / 24); if (d > 0) { return d + 天 } var h Math.floor(s / 3600 % 24); var m Math.floor(s / 60 % 60); var s Math.floor(s % 60); return h + : + (0 + m).slice(-2) + : + (0 + s).slice(-2); }, formatTimestamp(t) { return new Date(t * 1000).toLocaleString() }, formatByteSize(bs) { const x this.readableBytes(bs) return x ! NaN undefined ? x : 0B }, readableBytes(bytes) { if (!bytes) { return 0B } const i Math.floor(Math.log(bytes) / Math.log(1024)); const sizes B, K, M, G, T, P, E, Z, Y; return parseFloat((bytes / Math.pow(1024, i)).toFixed(2)) + sizesi; }, getCoreAndGHz(arr) { if ((arr || ).length 0) { return ; } let totalCores 0; arr.forEach(str > { let coreMatch str.match(/(\d+(\.\d+)?) Physical/g); let coreCount 0; if (coreMatch) { coreCount parseFloat(coreMatch0); } else { let coreMatch str.match(/(\d+(\.\d+)?) Virtual/g); coreCount coreMatch ? parseFloat(coreMatch0) : 0; } totalCores + coreCount; }); return `${totalCores} Cores`; }, getK2Gb(bs){ bs bs / 1024 / 1024 / 1024; if (bs > 1) { return Math.ceil(bs.toFixed(2)) + GB; } else { bs bs * 1024; return Math.ceil(bs.toFixed(2)) + MB; } }, listTipsMouseenter(obj, strs, tipsNum 1){ this.layerIndex layer.tips(strs, # + obj, { tips: tipsNum, rgb(0 0 0 / 85%), time: 0 }); $(# + obj).attr(layerIndex, this.layerIndex) }, listTipsMouseleave(obj){ layer.close(this.layerIndex) }, toggleDetailedTemp(id){ const tempDom document.getElementById(`temp-${id}`); const tempDetailShow tempDom.getAttribute(temp-detail-show); const tempMain document.getElementById(`temp-main-${id}`); const tempDetail document.getElementById(`temp-detail-${id}`); if (tempDetailShow 0){ tempMain.style.display none; tempDetail.style.display inline; tempDom.setAttribute(temp-detail-show, 1); } else { tempMain.style.display inline; tempDetail.style.display none; tempDom.setAttribute(temp-detail-show, 0); } }, getTemperature(temperatureList, sensorList) { const lowerCaseSensorList sensorList.map(sensor > sensor.toLowerCase()); const filtered temperatureList.filter(item > item.Temperature ! 0 && lowerCaseSensorList.includes(item.Name.toLowerCase())); if (filtered.length > 0) { return filtered.reduce((max, current) > { return current.Temperature > max ? current.Temperature : max; }, filtered0.Temperature); } const nonZeroTemps temperatureList.filter(item > item.Temperature ! 0); if (nonZeroTemps.length > 0) { return nonZeroTemps.reduce((max, current) > { return current.Temperature > max ? current.Temperature : max; }, nonZeroTemps0.Temperature); } return 0; } } }) function groupingData(data, field) { let map {}; let dest ; data.forEach(item > { if (!mapitemfield) { dest.push({ field: itemfield, data: item }); mapitemfield item; } else { dest.forEach(dItem > { if (dItemfield itemfield) { dItem.data.push(item); } }); } }) return dest; } let canShowError true; function connect() { const wsProtocol window.location.protocol https: ? wss : ws const ws new WebSocket(wsProtocol + :// + window.location.host + /ws); ws.onopen function (evt) { canShowError true; $.suiAlert({ title: 实时通道已建立, description: 可以实时获取最新监控数据啦, type: success, time: 2, position: top-center, }); } ws.onmessage function (evt) { const oldServers statusCards.servers const data JSON.parse(evt.data) statusCards.servers data.servers for (let i 0; i statusCards.servers.length; i++) { const ns statusCards.serversi; if (!ns.Host) { ns.live false } else { const lastActive new Date(ns.LastActive).getTime() if (data.now - lastActive > 10 * 1000) { ns.live false } else { ns.live true } } } statusCards.groups groupingData(statusCards.servers, Tag) } ws.onclose function () { if (canShowError) { canShowError false; $.suiAlert({ title: 实时通道已断开, description: 无法实时获取最新监控数据咯, type: warning, time: 2, position: top-center, }); } setTimeout(function () { connect() }, 3000); } ws.onerror function () { ws.close() } } connect(); $(.ui.accordion).accordion({ exclusive: false });/script>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]