This commit is contained in:
cantoblanco committed 2024-05-15 02:33:37 +00:00
1 parent 8df244390b
commit 436134bd72
208 files changed
+871 -857

No files matched your search

+6 -6
View File
@@ -3,21 +3,21 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Nezha Monitoring | Nezha Monitoring</title>
<title>Notification Configuration | Nezha Monitoring</title>
<meta name="description" content="Nezha Monitoring is a lightweight O&M tool">
<link rel="preload stylesheet" href="/assets/style.ac216bba.css" as="style">
<script type="module" src="/assets/app.586a9009.js"></script>
<link rel="preload" href="/assets/inter-roman-latin.2ed14f66.woff2" as="font" type="font/woff2" crossorigin="">
<link rel="modulepreload" href="/assets/chunks/framework.44fd0451.js">
<link rel="modulepreload" href="/assets/chunks/theme.ccb07a11.js">
<link rel="modulepreload" href="/assets/en_US_guide_notifications.md.26ba83c4.lean.js">
<link rel="modulepreload" href="/assets/en_US_guide_notifications.md.5677b74f.lean.js">
<script src="https://cdn.wwads.cn/js/makemoney.js" async="true"></script>
<script async="" src="https://www.googletagmanager.com/gtag/js?id=G-FDME8GJGTW"></script>
<script>window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments)}gtag("js",new Date),gtag("config","G-FDME8GJGTW");</script>
<script id="check-dark-light">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
</head>
<body>
<div id="app"><div class="Layout" data-v-b2cf3e0b><!--[--><!--]--><!--[--><span tabindex="-1" data-v-b8b11faa></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-b8b11faa> Skip to content </a><!--]--><!----><header class="VPNav" data-v-b2cf3e0b data-v-7e5bc4a5><div class="VPNavBar has-sidebar" data-v-7e5bc4a5 data-v-7683ced7><div class="container" data-v-7683ced7><div class="title" data-v-7683ced7><div class="VPNavBarTitle has-sidebar" data-v-7683ced7 data-v-4d981103><a class="title" href="/en_US/" data-v-4d981103><!--[--><!--]--><!----><!--[-->Nezha Monitoring<!--]--><!--[--><!--]--></a></div></div><div class="content" data-v-7683ced7><div class="curtain" data-v-7683ced7></div><div class="content-body" data-v-7683ced7><!--[--><!--]--><div class="VPNavBarSearch search" style="--vp-meta-key:&#39;Meta&#39;;" data-v-7683ced7><!--[--><div id="docsearch"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg class="DocSearch-Search-Icon" width="20" height="20" viewBox="0 0 20 20" aria-label="search icon"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-7683ced7 data-v-7f418b0f><span id="main-nav-aria-label" class="visually-hidden" data-v-7f418b0f>Main Navigation</span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink active" href="/en_US/" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->User Guide<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/en_US/case/index.html" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->Community Projects<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/en_US/developer/index.html" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->Development Manual<!--]--><!----></a><!--]--><!--]--></nav><div class="VPFlyout VPNavBarTranslations translations" data-v-7683ced7 data-v-74abcbb9 data-v-764effdf><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="Change language" data-v-764effdf><span class="text" data-v-764effdf><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="option-icon" data-v-764effdf><path d="M0 0h24v24H0z" fill="none"></path><path d=" M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z " class="css-c4d79v"></path></svg> <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="text-icon" data-v-764effdf><path d="M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"></path></svg></span></button><div class="menu" data-v-764effdf><div class="VPMenu" data-v-764effdf data-v-e7ea1737><!----><!--[--><!--[--><div class="items" data-v-74abcbb9><p class="title" data-v-74abcbb9>English</p><!--[--><div class="VPMenuLink" data-v-74abcbb9 data-v-2f2cfafc><a class="VPLink link" href="/guide/notifications.html" data-v-2f2cfafc data-v-8f4dc553><!--[-->简体中文<!--]--><!----></a></div><!--]--></div><!--]--><!--]--></div></div></div><div class="VPNavBarAppearance appearance" data-v-7683ced7 data-v-f6a63727><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="toggle dark mode" aria-checked="false" data-v-f6a63727 data-v-82b282f1 data-v-f3c41672><span class="check" data-v-f3c41672><span class="icon" data-v-f3c41672><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-82b282f1><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.Line truncated
<div id="app"><div class="Layout" data-v-b2cf3e0b><!--[--><!--]--><!--[--><span tabindex="-1" data-v-b8b11faa></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-b8b11faa> Skip to content </a><!--]--><!----><header class="VPNav" data-v-b2cf3e0b data-v-7e5bc4a5><div class="VPNavBar has-sidebar" data-v-7e5bc4a5 data-v-7683ced7><div class="container" data-v-7683ced7><div class="title" data-v-7683ced7><div class="VPNavBarTitle has-sidebar" data-v-7683ced7 data-v-4d981103><a class="title" href="/en_US/" data-v-4d981103><!--[--><!--]--><!----><!--[-->Nezha Monitoring<!--]--><!--[--><!--]--></a></div></div><div class="content" data-v-7683ced7><div class="curtain" data-v-7683ced7></div><div class="content-body" data-v-7683ced7><!--[--><!--]--><div class="VPNavBarSearch search" style="--vp-meta-key:&#39;Meta&#39;;" data-v-7683ced7><!--[--><div id="docsearch"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg class="DocSearch-Search-Icon" width="20" height="20" viewBox="0 0 20 20" aria-label="search icon"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-7683ced7 data-v-7f418b0f><span id="main-nav-aria-label" class="visually-hidden" data-v-7f418b0f>Main Navigation</span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink active" href="/en_US/" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->User Guide<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/en_US/case/index.html" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->Community Projects<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/en_US/developer/index.html" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->Development Manual<!--]--><!----></a><!--]--><!--]--></nav><div class="VPFlyout VPNavBarTranslations translations" data-v-7683ced7 data-v-74abcbb9 data-v-764effdf><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="Change language" data-v-764effdf><span class="text" data-v-764effdf><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="option-icon" data-v-764effdf><path d="M0 0h24v24H0z" fill="none"></path><path d=" M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z " class="css-c4d79v"></path></svg> <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="text-icon" data-v-764effdf><path d="M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"></path></svg></span></button><div class="menu" data-v-764effdf><div class="VPMenu" data-v-764effdf data-v-e7ea1737><!----><!--[--><!--[--><div class="items" data-v-74abcbb9><p class="title" data-v-74abcbb9>English</p><!--[--><div class="VPMenuLink" data-v-74abcbb9 data-v-2f2cfafc><a class="VPLink link" href="/guide/notifications.html" data-v-2f2cfafc data-v-8f4dc553><!--[-->简体中文<!--]--><!----></a></div><!--]--></div><!--]--><!--]--></div></div></div><div class="VPNavBarAppearance appearance" data-v-7683ced7 data-v-f6a63727><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="toggle dark mode" aria-checked="false" data-v-f6a63727 data-v-82b282f1 data-v-f3c41672><span class="check" data-v-f3c41672><span class="icon" data-v-f3c41672><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-82b282f1><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.Line truncated
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C792EA;">message</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span></span>
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&quot;</span><span style="color:#FFCB6B;">subject</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">Server Status Notification</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">,</span></span>
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&quot;</span><span style="color:#FFCB6B;">body</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span></span>
@@ -56,9 +56,9 @@
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C792EA;">markdown</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span></span>
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&quot;</span><span style="color:#FFCB6B;">content</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;"># Nezha Notification</span><span style="color:#A6ACCD;">\n\n\&quot;</span><span style="color:#C3E88D;">#NEZHA#</span><span style="color:#A6ACCD;">\&quot;\n\n</span><span style="color:#C3E88D;">&gt; Name: </span><span style="color:#A6ACCD;">\&quot;</span><span style="color:#C3E88D;">#SERVER.NAME#</span><span style="color:#A6ACCD;">\&quot;\n</span><span style="color:#C3E88D;">&gt; IP: </span><span style="color:#A6ACCD;">\&quot;</span><span style="color:#C3E88D;">#SERVER.IP#</span><span style="color:#A6ACCD;">\&quot;\n</span><span style="color:#C3E88D;">&gt; IPv4: </span><span style="color:#A6ACCD;">\&quot;</span><span style="color:#C3E88D;">#SERVER.IPV4#</span><span style="color:#A6ACCD;">\&quot;\n</span><span style="color:#C3E88D;">IPv6: </span><span style="color:#A6ACCD;">\&quot;</span><span style="color:#C3E88D;">#SERVER.IPV6#</span><span style="color:#A6ACCD;">\&quot;\n</span><span style="color:#C3E88D;">&gt; CPU: </span><span style="color:#A6ACCD;">\&quot;</span><span style="color:#C3E88D;">#SERVER.CPU#</span><span style="color:#A6ACCD;">\&quot;\n</span><span style="color:#C3E88D;">&gt; Memory: </span><span style="color:#A6ACCD;">\&quot;</span><span style="color:#C3E88D;">#SERVER.MEM#</span><span style="color:#A6ACCD;">\&quot;\n</span><span style="color:#C3E88D;">&gt; Swap: </span><span style="color:#A6ACCD;">\&quot;</span><span style="color:#C3E88D;">#SERVER.SWAP#</span><span style="color:#A6ACCD;">\&quot;\n</span><span style="color:#C3E88D;">&gt; Disk: </span><span style="color:#A6ACCD;">\&quot;</span><span style="color:#C3E88D;">#SERVER.DISK#</span><span style="color:#A6ACCD;">\&quot;\n</span><span style="color:#C3E88D;">&gt; Upload Speed: </span><span style="color:#A6ACCD;">\&quot;</span><span style="color:#C3E88D;">#SERVER.NETINSPEED#</span><span style="color:#A6ACCD;">\&quot;\n</span><span style="color:#C3E88D;">&gt; Download Speed: </span><span style="color:#A6ACCD;">\&quot;</span><span style="color:#C3E88D;">#SERVER.NETOUTSPEED#</span><span style="color:#A6ACCD;">\&quot;\n</span><span style="color:#C3E88D;">&gt; Total Upload: </span><span style="color:#A6ACCD;">\&quot;</span><span style="color:#C3E88D;">#SERVER.TRANSFERIN#</span><span style="color:#A6ACCD;">\&quot;\n</span><span style="color:#C3E88D;">&gt; Total Download: </span><span style="color:#A6ACCD;">\&quot;</span><span style="color:#C3E88D;">#SERVER.TRANSFEROUT#</span><span style="color:#A6ACCD;">\&quot;\n</span><span style="color:#C3E88D;">&gt; Load1: </span><span style="color:#A6ACCD;">\&quot;</span><span style="color:#C3E88D;">#SERVER.LOAD1#</span><span style="color:#A6ACCD;">\&quot;\n</span><span style="color:#C3E88D;">&gt; Load5: </span><span style="color:#A6ACCD;">\&quot;</span><span style="color:#C3E88D;">#SERVER.LOAD5#</span><span style="color:#A6ACCD;">\&quot;\n</span><span style="color:#C3E88D;">&gt; Load15: </span><span style="color:#A6ACCD;">\&quot;</span><span style="color:#C3E88D;">#SERVER.LOAD15#</span><span style="color:#A6ACCD;">\&quot;\n</span><span style="color:#C3E88D;">&gt; TCP Connection Count: </span><span style="color:#A6ACCD;">\&quot;</span><span style="color:#C3E88D;">#SERVER.TCPCONNCOUNT</span><span style="color:#A6ACCD;">\&quot;\n</span><span style="color:#C3E88D;">&gt; UDP Connection Count: </span><span style="color:#A6ACCD;">\&quot;</span><span style="color:#C3E88D;">#SERVER.UDPCONNCOUNT</span><span style="color:#A6ACCD;">\&quot;\n\n</span><span style="color:#89DDFF;">&quot;</span></span>
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">}</span></span>
<span class="line"><span style="color:#89DDFF;">}</span></span></code></pre></div></li></ul><p>You can remove or add relevant information as needed.</p></details><h2 id="notification-rule-explanation" tabindex="-1">Notification Rule Explanation <a class="header-anchor" href="#notification-rule-explanation" aria-label="Permalink to &quot;Notification Rule Explanation&quot;">​</a></h2><h3 id="basic-rules" tabindex="-1">Basic Rules <a class="header-anchor" href="#basic-rules" aria-label="Permalink to &quot;Basic Rules&quot;">​</a></h3><ul><li><code>type</code>: You can choose one or more types. If multiple types are selected in one rule, <strong>all selected types must be satisfied</strong> to trigger a notification (refer to the examples below) <ul><li><code>cpu</code>, <code>memory</code>, <code>swap</code>, <code>disk</code></li><li><code>net_in_speed</code> inbound network speed, <code>net_out_speed</code> outbound network speed, <code>net_all_speed</code> total network speed, <code>transfer_in</code> inbound traffic, <code>transfer_out</code> outbound traffic, <code>transfer_all</code> total traffic</li><li><code>offline</code> offline monitoring</li><li><code>load1</code>, <code>load5</code>, <code>load15</code> load</li><li><code>process_count</code> process count (currently resource-intensive due to thread count, not supported temporarily)</li><li><code>tcp_conn_count</code>, <code>udp_conn_count</code> connection count</li></ul></li><li><code>duration</code>: Duration in seconds. An notification is triggered if 30% or more of the samples exceed the threshold within this duration (to prevent data spikes).</li><li><code>min</code> or <code>max</code>: <ul><li>For traffic and network speed, the unit is bytes (1KB = 1024B, 1MB = 1024 * 1024B)</li><li>For memory, disk, and CPU, the unit is percentage</li><li>No need to set this for offline monitoring</li></ul></li><li><code>cover</code>: <ul><li><code>0</code> monitors all servers, use <code>ignore</code> to exclude specific servers</li><li><code>1</code> ignores all servers, use <code>ignore</code> to monitor specific servers<br> Example: <code>[{&quot;type&quot;:&quot;offline&quot;,&quot;duration&quot;:10, &quot;cover&quot;:0, &quot;ignore&quot;:{&quot;5&quot;: true}}]</code></li></ul></li><li><code>ignore</code>: Select specific servers to exclude, used with <code>cover</code>, content is server ID and boolean value, e.g., <code>{&quot;1&quot;: true, &quot;2&quot;: false}</code></li></ul><p><strong>Complete Examples:</strong></p><p>Add an offline notification:</p><ul><li>Name: Offline Notification</li><li>Rule: <code>[{&quot;Type&quot;:&quot;offline&quot;,&quot;Duration&quot;:10}]</code></li><li>Enabled: √</li></ul><p>Add an notification for CPU usage exceeding 50% for 10 seconds <strong>and</strong> memory usage below 20% for 20 seconds:</p><ul><li>Name: CPU+Memory</li><li>Rule: <code>[{&quot;Type&quot;:&quot;cpu&quot;,&quot;Min&quot;:0,&quot;Max&quot;:50,&quot;Duration&quot;:10},{&quot;Type&quot;:&quot;memory&quot;,&quot;Min&quot;:20,&quot;Max&quot;:0,&quot;Duration&quot;:20}]</code></li><li>Enabled: √</li></ul><p>Send notifications for specific servers to specific notification groups:</p><p>Scenario example:<br> There are 4 servers (1, 2, 3, 4) and two notification groups (A, B).<br> Notify group A if servers 1 and 2 are offline for 10 minutes.<br> Notify group B if servers 3 and 4 are offline for 10 minutes.</p><p>First, set up notification groups A and B, then add two notification rules:</p><p><strong>Rule 1:</strong></p><ul><li>Name: 1, 2 Offline, Send to Notification Group A</li><li>Rule: <code>[{&quot;type&quot;:&quot;offline&quot;,&quot;duration&quot;:600,&quot;cover&quot;:1,&quot;ignore&quot;:{&quot;1&quot;:true,&quot;2&quot;:true}}]</code></li><li>Notification Group: A</li><li>Enabled: √</li></ul><p><strong>Rule 2:</strong></p><ul><li>Name: 3, 4 Offline, Send to Notification Group B</li><li>Rule: <code>[{&quot;type&quot;:&quot;offline&quot;,&quot;duration&quot;:600,&quot;cover&quot;:1,&quot;ignore&quot;:{&quot;3&quot;:true,&quot;4&quot;:true}}]</code></li><li>Notification Group: B</li><li>Enabled: √</li></ul><p><strong>Flexibly using parameters can make your notification function fully utilized</strong></p><h3 id="special-any-cycle-traffic-notification" tabindex="-1">Special: Any Cycle Traffic notification <a class="header-anchor" href="#special-any-cycle-traffic-notification" aria-label="Permalink to &quot;Special: Any Cycle Traffic notification&quot;">​</a></h3><p>Can be used for monthly traffic monitoring</p><ul><li><code>type</code>: <ul><li><code>transfer_in_cycle</code> inbound traffic during the cycle</li><li><code>transfer_out_cycle</code> outbound traffic during the cycle</li><li><code>transfer_all_cycle</code> total traffic during the cycle</li></ul></li><li><code>cycle_start</code>: The start date of the statistical cycle (can be the start date of your server billing cycle). The time format is RFC3339, e.g., Beijing Line truncated
<script>__VP_HASH_MAP__ = JSON.parse("{\"developer_index.md\":\"111a68f3\",\"en_us_guide_loginq.md\":\"cbcb363e\",\"en_us_case_case4.md\":\"9e4f3127\",\"en_us_guide_q8.md\":\"babff2f0\",\"case_case2.md\":\"1b519ed4\",\"developer_theme.md\":\"650aa830\",\"developer_l10n.md\":\"82b6ef01\",\"en_us_guide_q6.md\":\"88b5afe3\",\"en_us_guide_agent.md\":\"cc9897a3\",\"guide_q8.md\":\"3f79bbbf\",\"en_us_guide_q3.md\":\"2c8f5905\",\"guide_q6.md\":\"2387732f\",\"guide_q4.md\":\"385e3441\",\"en_us_guide_q2.md\":\"f03cfb16\",\"guide_q7.md\":\"5f75b305\",\"guide_q5.md\":\"f2042fe7\",\"guide_tasks.md\":\"8f7f039f\",\"en_us_case_case2.md\":\"04a1553e\",\"en_us_developer_theme.md\":\"02a748b8\",\"en_us_case_index.md\":\"e0cbd391\",\"en_us_guide_agentq.md\":\"d6149542\",\"en_us_developer_l10n.md\":\"9c7c5854\",\"guide_q2.md\":\"266cd01b\",\"case_case1.md\":\"5ca7d527\",\"case_case3.md\":\"7b739806\",\"en_us_guide_q5.md\":\"a97be7a8\",\"en_us_guide_q7.md\":\"43c5a1a6\",\"en_us_guide_q4.md\":\"b3bf1aae\",\"en_us_case_case1.md\":\"feb3e39a\",\"en_us_guide_tasks.md\":\"bb6ba1f3\",\"en_us_guide_notifications.md\":\"26ba83c4\",\"en_us_guide_dashboardq.md\":\"0c4d5040\",\"en_us_case_case5.md\":\"3d7ef894\",\"guide_agentq.md\":\"658b47c5\",\"en_us_developer_index.md\":\"11878279\",\"guide_loginq.md\":\"74c0b434\",\"case_case5.md\":\"e585c67c\",\"case_index.md\":\"87221e96\",\"guide_dashboardq.md\":\"23ea658c\",\"en_us_index.md\":\"b913a84e\",\"guide_agent.md\":\"543f423f\",\"guide_api.md\":\"ad4b295f\",\"en_us_case_case3.md\":\"1ac3d51f\",\"case_case4.md\":\"b184f4de\",\"en_us_guide_servers.md\":\"f9e06964\",\"guide_q3.md\":\"a7ac5ff7\",\"guide_services.md\":\"460da91d\",\"en_us_guide_dashboard.md\":\"b5a70b91\",\"guide_settings.md\":\"330c6934\",\"guide_notifications.md\":\"a70fdddd\",\"guide_q1.md\":\"d83a745a\",\"index.md\":\"c944995f\",\"en_us_guide_services.md\":\"2500cf90\",\"guide_servers.md\":\"e4f7abb2\",\"en_us_guide_settings.md\":\"8c07b41e\",\"guide_dashboard.md\":\"f6e4d1f8\",\"en_us_guide_api.md\":\"381d03f9\"}")
__VP_SITE_DATA__ = JSON.parse("{\"lang\":\"zh-CN\",\"dir\":\"ltr\",\"title\":\"VitePress\",\"description\":\"A VitePress site\",\"base\":\"/\",\"head\":[],\"appearance\":true,\"themeConfig\":{\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/nezhahq/nezhahq.github.io\"}],\"algolia\":{\"appId\":\"HP6QF6KMZD\",\"apiKey\":\"fb8bae9ed373d1057e0c07fcf32b3f1a\",\"indexName\":\"nezhahq\"},\"footer\":{\"message\":\"This work is licensed under a <a rel=\\\"license\\\" href=\\\"http://creativecommons.org/licenses/by-nc-sa/4.0/\\\">Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) License\",\"copyright\":\"Copyright © 2022-present NezhaHQ\"}},\"locales\":{\"root\":{\"lang\":\"zh-CN\",\"label\":\"简体中文\",\"title\":\"哪吒监控\",\"description\":\"哪吒监控是一个轻量化的运维工具\",\"link\":\"/\",\"themeConfig\":{\"lastUpdatedText\":\"上次更新\",\"editLink\":{\"pattern\":\"https://github.com/nezhahq/nezhahq.github.io/edit/main/docs/:path\",\"text\":\"在GitHub中编辑\"},\"nav\":[{\"text\":\"使用指南\",\"link\":\"/\",\"activeMatch\":\"^/$|^/guide/\"},{\"text\":\"社区项目\",\"link\":\"/case/index.html\",\"activeMatch\":\"^/case/\"},{\"text\":\"开发手册\",\"link\":\"/developer/index.html\",\"activeMatch\":\"^/developer/\"}],\"sidebar\":{\"/\":[{\"text\":\"安装手册\",\"items\":[{\"text\":\"安装 Dashboard\",\"link\":\"/guide/dashboard.html\"},{\"text\":\"安装 Agent\",\"link\":\"/guide/agent.html\"}]},{\"text\":\"管理面板配置\",\"items\":[{\"text\":\"服务器\",\"link\":\"/guide/servers.html\"},{\"text\":\"服务\",\"link\":\"/guide/services.html\"},{\"text\":\"任务\",\"link\":\"/guide/tasks.html\"},{\"text\":\"告警\",\"link\":\"/guide/notifications.html\"},{\"text\":\"设置\",\"link\":\"/guide/settings.html\"},{\"text\":\"API\",\"link\":\"/guide/api.html\"}]},{\"text\":\"常见问题\",\"items\":[{\"text\":\"反向代理 Telegram API\",\"link\":\"/guide/q1.html\"},{\"text\":\"Agent 启动/上线 问题自检流程\",\"link\":\"/guide/q2.html\"},{\"text\":\"反向代理 gRPC 端口\",\"link\":\"/guide/q3.html\"},{\"text\":\"实时通道断开/在线终端连接失败\",\"link\":\"/guide/q4.html\"},{\"text\":\"面板数据迁移、备份和恢复\",\"link\":\"/guide/q5.html\"},{\"text\":\"设置每月重置流量统计\",\"link\":\"/guide/q6.html\"},{\"text\":\"自定义 Agent 监控项目\",\"link\":\"/guide/q7.html\"},{\"text\":\"使用 Cloudflare Access 作为 OAuth2 提供方\",\"link\":\"/guide/q8\"}]},{\"text\":\"排障指南\",\"items\":[{\"text\":\"Dashboard 相关\",\"link\":\"/guide/dashboardq.html\"},{\"text\":\"Agent 相关\",\"link\":\"/guide/agentq.html\"},{\"text\":\"登录相关\",\"link\":\"/guide/loginq.html\"}]}],\"/guide/\":[{\"text\":\"安装手册\",\"items\":[{\"text\":\"安装 Dashboard\",\"link\":\"/guide/dashboard.html\"},{\"text\":\"安装 Agent\",\"link\":\"/guide/agent.html\"}]},{\"text\":\"管理面板配置\",\"items\":[{\"text\":\"服务器\",\"link\":\"/guide/servers.html\"},{\"text\":\"服务\",\"link\":\"/guide/services.html\"},{\"text\":\"任务\",\"link\":\"/guide/tasks.html\"},{\"text\":\"告警\",\"link\":\"/guide/notifications.html\"},{\"text\":\"设置\",\"link\":\"/guide/settings.html\"},{\"text\":\"API\",\"link\":\"/guide/api.html\"}]},{\"text\":\"常见问题\",\"items\":[{\"text\":\"反向代理 Telegram API\",\"link\":\"/guide/q1.html\"},{\"text\":\"Agent 启动/上线 问题自检流程\",\"link\":\"/guide/q2.html\"},{\"text\":\"反向代理 gRPC 端口\",\"link\":\"/guide/q3.html\"},{\"text\":\"实时通道断开/在线终端连接失败\",\"link\":\"/guide/q4.html\"},{\"text\":\"面板数据迁移、备份和恢复\",\"link\":\"/guide/q5.html\"},{\"text\":\"设置每月重置流量统计\",\"link\":\"/guide/q6.html\"},{\"text\":\"自定义 Agent 监控项目\",\"link\":\"/guide/q7.html\"},{\"text\":\"使用 Cloudflare Access 作为 OAuth2 提供方\",\"link\":\"/guide/q8\"}]},{\"text\":\"排障指南\",\"items\":[{\"text\":\"Dashboard 相关\",\"link\":\"/guide/dashboardq.html\"},{\"text\":\"Agent 相关\",\"link\":\"/guide/agentq.html\"},{\"text\":\"登录相关\",\"link\":\"/guide/loginq.html\"}]}],\"/case/\":[{\"text\":\"社区项目\",\"items\":[{\"text\":\"1. 搭建哪吒 Telegram 机器人\",\"link\":\"/case/case1.html\"},{\"text\":\"2. 使用 Siri 语音运行快捷指令查询服务器状态\",\"link\":\"/case/case2.html\"},{\"text\":\"3. 自建多用户多语言 Telegram 服务器状态查询机器人\",\"link\":\"/case/case3.html\"},{\"text\":\"4. Fake-agent,监控数据作弊器\",\"link\":\"/case/case4.html\"},{\"text\":\"5. 使用 Argo 隧道的哪吒服务端\",\"link\":\"/case/case5.html\"}]}],\"/developer/\":[{\"text\":\"开发手册\",\"items\":[{\"text\":\"创建新主题\",\"link\":\"/developer/theme.html\"},{\"text\":\"l10n\",\"link\":\"/developer/l10n.html\"}]}]}}},\"en_US\":{\"lang\":\"en-US\",\"label\":\"English\",\"title\":\"Nezha MoniLine truncated
<span class="line"><span style="color:#89DDFF;">}</span></span></code></pre></div></li></ul><p>You can remove or add relevant information as needed.</p></details><h2 id="notification-rule-explanation" tabindex="-1">Notification Rule Explanation <a class="header-anchor" href="#notification-rule-explanation" aria-label="Permalink to &quot;Notification Rule Explanation&quot;">​</a></h2><h3 id="basic-rules" tabindex="-1">Basic Rules <a class="header-anchor" href="#basic-rules" aria-label="Permalink to &quot;Basic Rules&quot;">​</a></h3><ul><li><code>type</code>: You can choose one or more types. If multiple types are selected in one rule, <strong>all selected types must be satisfied</strong> to trigger a notification (refer to the examples below) <ul><li><code>cpu</code>, <code>memory</code>, <code>swap</code>, <code>disk</code></li><li><code>net_in_speed</code> inbound network speed, <code>net_out_speed</code> outbound network speed, <code>net_all_speed</code> total network speed, <code>transfer_in</code> inbound traffic, <code>transfer_out</code> outbound traffic, <code>transfer_all</code> total traffic</li><li><code>offline</code> offline monitoring</li><li><code>load1</code>, <code>load5</code>, <code>load15</code> load</li><li><code>process_count</code> process count (currently resource-intensive due to thread count, not supported temporarily)</li><li><code>tcp_conn_count</code>, <code>udp_conn_count</code> connection count</li></ul></li><li><code>duration</code>: Duration in seconds. An notification is triggered if 30% or more of the samples exceed the threshold within this duration (to prevent data spikes).</li><li><code>min</code> or <code>max</code>: <ul><li>For traffic and network speed, the unit is bytes (1KB = 1024B, 1MB = 1024 * 1024B)</li><li>For memory, disk, and CPU, the unit is percentage</li><li>No need to set this for offline monitoring</li></ul></li><li><code>cover</code>: <ul><li><code>0</code> monitors all servers, use <code>ignore</code> to exclude specific servers</li><li><code>1</code> ignores all servers, use <code>ignore</code> to monitor specific servers<br> Example: <code>[{&quot;type&quot;:&quot;offline&quot;,&quot;duration&quot;:10, &quot;cover&quot;:0, &quot;ignore&quot;:{&quot;5&quot;: true}}]</code></li></ul></li><li><code>ignore</code>: Select specific servers to exclude, used with <code>cover</code>, content is server ID and boolean value, e.g., <code>{&quot;1&quot;: true, &quot;2&quot;: false}</code></li></ul><p><strong>Complete Examples:</strong></p><p>Add an offline notification:</p><ul><li>Name: Offline Notification</li><li>Rule: <code>[{&quot;Type&quot;:&quot;offline&quot;,&quot;Duration&quot;:10}]</code></li><li>Enabled: √</li></ul><p>Add an notification for CPU usage exceeding 50% for 10 seconds <strong>and</strong> memory usage below 20% for 20 seconds:</p><ul><li>Name: CPU+Memory</li><li>Rule: <code>[{&quot;Type&quot;:&quot;cpu&quot;,&quot;Min&quot;:0,&quot;Max&quot;:50,&quot;Duration&quot;:10},{&quot;Type&quot;:&quot;memory&quot;,&quot;Min&quot;:20,&quot;Max&quot;:0,&quot;Duration&quot;:20}]</code></li><li>Enabled: √</li></ul><p>Send notifications for specific servers to specific notification groups:</p><p>Scenario example:<br> There are 4 servers (1, 2, 3, 4) and two notification groups (A, B).<br> Notify group A if servers 1 and 2 are offline for 10 minutes.<br> Notify group B if servers 3 and 4 are offline for 10 minutes.</p><p>First, set up notification groups A and B, then add two notification rules:</p><p><strong>Rule 1:</strong></p><ul><li>Name: 1, 2 Offline, Send to Notification Group A</li><li>Rule: <code>[{&quot;type&quot;:&quot;offline&quot;,&quot;duration&quot;:600,&quot;cover&quot;:1,&quot;ignore&quot;:{&quot;1&quot;:true,&quot;2&quot;:true}}]</code></li><li>Notification Group: A</li><li>Enabled: √</li></ul><p><strong>Rule 2:</strong></p><ul><li>Name: 3, 4 Offline, Send to Notification Group B</li><li>Rule: <code>[{&quot;type&quot;:&quot;offline&quot;,&quot;duration&quot;:600,&quot;cover&quot;:1,&quot;ignore&quot;:{&quot;3&quot;:true,&quot;4&quot;:true}}]</code></li><li>Notification Group: B</li><li>Enabled: √</li></ul><p><strong>Flexibly using parameters can make your notification function fully utilized</strong></p><h3 id="special-any-cycle-traffic-notification" tabindex="-1">Special: Any Cycle Traffic notification <a class="header-anchor" href="#special-any-cycle-traffic-notification" aria-label="Permalink to &quot;Special: Any Cycle Traffic notification&quot;">​</a></h3><p>Can be used for monthly traffic monitoring</p><ul><li><code>type</code>: <ul><li><code>transfer_in_cycle</code> inbound traffic during the cycle</li><li><code>transfer_out_cycle</code> outbound traffic during the cycle</li><li><code>transfer_all_cycle</code> total traffic during the cycle</li></ul></li><li><code>cycle_start</code>: The start date of the statistical cycle (can be the start date of your server billing cycle). The time format is RFC3339, e.g., Beijing Line truncated
<script>__VP_HASH_MAP__ = JSON.parse("{\"en_us_guide_agentq.md\":\"5dff1cae\",\"developer_index.md\":\"8dd0d4ce\",\"en_us_guide_api.md\":\"f398ffac\",\"case_case3.md\":\"700617c7\",\"case_case4.md\":\"8c8c6510\",\"en_us_case_case3.md\":\"1d0b03ce\",\"en_us_case_case2.md\":\"ba36c1ea\",\"case_case2.md\":\"a48ed6af\",\"en_us_case_case4.md\":\"7fa644c7\",\"en_us_case_index.md\":\"06fe85e6\",\"en_us_developer_index.md\":\"89dead46\",\"en_us_developer_l10n.md\":\"9dc8061a\",\"en_us_developer_theme.md\":\"bb8f2da4\",\"developer_l10n.md\":\"93690476\",\"en_us_case_case5.md\":\"cdd04896\",\"en_us_guide_tasks.md\":\"41e3d75c\",\"developer_theme.md\":\"fd933b01\",\"en_us_index.md\":\"fb1080e2\",\"en_us_guide_dashboard.md\":\"e44a1fe6\",\"case_index.md\":\"2849e83b\",\"en_us_case_case1.md\":\"37bc70c7\",\"en_us_guide_agent.md\":\"9cc4c6a2\",\"case_case5.md\":\"258885f4\",\"case_case1.md\":\"63108b24\",\"en_us_guide_dashboardq.md\":\"190c26f2\",\"en_us_guide_notifications.md\":\"5677b74f\",\"en_us_guide_q2.md\":\"24e1c4ce\",\"en_us_guide_q7.md\":\"913c9a89\",\"en_us_guide_q3.md\":\"b54f6d21\",\"en_us_guide_q6.md\":\"f72b6edb\",\"en_us_guide_loginq.md\":\"34231f03\",\"en_us_guide_servers.md\":\"b1f6b9bf\",\"en_us_guide_q5.md\":\"2cda75bb\",\"en_us_guide_services.md\":\"16e17c91\",\"en_us_guide_q4.md\":\"ed096799\",\"en_us_guide_q8.md\":\"24401c9b\",\"en_us_guide_settings.md\":\"dd24cd79\",\"guide_agentq.md\":\"61a707dd\",\"guide_dashboard.md\":\"2d9ea238\",\"guide_q2.md\":\"f30c66aa\",\"guide_loginq.md\":\"b1aa0e4e\",\"guide_q6.md\":\"34659a64\",\"guide_q3.md\":\"57836670\",\"guide_dashboardq.md\":\"b935b35b\",\"guide_q1.md\":\"995ec01c\",\"guide_q8.md\":\"f59daf2c\",\"guide_q4.md\":\"9fa3763a\",\"guide_api.md\":\"fdbf645f\",\"guide_notifications.md\":\"ad9fa2da\",\"guide_tasks.md\":\"9c9a1acc\",\"guide_services.md\":\"92dd7c60\",\"guide_q5.md\":\"30f2ce23\",\"guide_agent.md\":\"cd146bdd\",\"guide_q7.md\":\"c3187b64\",\"guide_settings.md\":\"1e3d125c\",\"index.md\":\"84ae6b37\",\"guide_servers.md\":\"ce53cd79\"}")
__VP_SITE_DATA__ = JSON.parse("{\"lang\":\"zh-CN\",\"dir\":\"ltr\",\"title\":\"VitePress\",\"description\":\"A VitePress site\",\"base\":\"/\",\"head\":[],\"appearance\":true,\"themeConfig\":{\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/nezhahq/nezhahq.github.io\"}],\"algolia\":{\"appId\":\"HP6QF6KMZD\",\"apiKey\":\"fb8bae9ed373d1057e0c07fcf32b3f1a\",\"indexName\":\"nezhahq\"},\"footer\":{\"message\":\"This work is licensed under a <a rel=\\\"license\\\" href=\\\"http://creativecommons.org/licenses/by-nc-sa/4.0/\\\">Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) License\",\"copyright\":\"Copyright © 2022-present NezhaHQ\"}},\"locales\":{\"root\":{\"lang\":\"zh-CN\",\"label\":\"简体中文\",\"title\":\"哪吒监控\",\"description\":\"哪吒监控是一个轻量化的运维工具\",\"link\":\"/\",\"themeConfig\":{\"lastUpdatedText\":\"上次更新\",\"editLink\":{\"pattern\":\"https://github.com/nezhahq/nezhahq.github.io/edit/main/docs/:path\",\"text\":\"在GitHub中编辑\"},\"nav\":[{\"text\":\"使用指南\",\"link\":\"/\",\"activeMatch\":\"^/$|^/guide/\"},{\"text\":\"社区项目\",\"link\":\"/case/index.html\",\"activeMatch\":\"^/case/\"},{\"text\":\"开发手册\",\"link\":\"/developer/index.html\",\"activeMatch\":\"^/developer/\"}],\"sidebar\":{\"/\":[{\"text\":\"安装手册\",\"items\":[{\"text\":\"安装 Dashboard\",\"link\":\"/guide/dashboard.html\"},{\"text\":\"安装 Agent\",\"link\":\"/guide/agent.html\"}]},{\"text\":\"管理面板配置\",\"items\":[{\"text\":\"服务器\",\"link\":\"/guide/servers.html\"},{\"text\":\"服务\",\"link\":\"/guide/services.html\"},{\"text\":\"任务\",\"link\":\"/guide/tasks.html\"},{\"text\":\"告警\",\"link\":\"/guide/notifications.html\"},{\"text\":\"设置\",\"link\":\"/guide/settings.html\"},{\"text\":\"API\",\"link\":\"/guide/api.html\"}]},{\"text\":\"常见问题\",\"items\":[{\"text\":\"反向代理 Telegram API\",\"link\":\"/guide/q1.html\"},{\"text\":\"Agent 启动/上线 问题自检流程\",\"link\":\"/guide/q2.html\"},{\"text\":\"反向代理 gRPC 端口\",\"link\":\"/guide/q3.html\"},{\"text\":\"实时通道断开/在线终端连接失败\",\"link\":\"/guide/q4.html\"},{\"text\":\"面板数据迁移、备份和恢复\",\"link\":\"/guide/q5.html\"},{\"text\":\"设置每月重置流量统计\",\"link\":\"/guide/q6.html\"},{\"text\":\"自定义 Agent 监控项目\",\"link\":\"/guide/q7.html\"},{\"text\":\"使用 Cloudflare Access 作为 OAuth2 提供方\",\"link\":\"/guide/q8\"}]},{\"text\":\"排障指南\",\"items\":[{\"text\":\"Dashboard 相关\",\"link\":\"/guide/dashboardq.html\"},{\"text\":\"Agent 相关\",\"link\":\"/guide/agentq.html\"},{\"text\":\"登录相关\",\"link\":\"/guide/loginq.html\"}]}],\"/guide/\":[{\"text\":\"安装手册\",\"items\":[{\"text\":\"安装 Dashboard\",\"link\":\"/guide/dashboard.html\"},{\"text\":\"安装 Agent\",\"link\":\"/guide/agent.html\"}]},{\"text\":\"管理面板配置\",\"items\":[{\"text\":\"服务器\",\"link\":\"/guide/servers.html\"},{\"text\":\"服务\",\"link\":\"/guide/services.html\"},{\"text\":\"任务\",\"link\":\"/guide/tasks.html\"},{\"text\":\"告警\",\"link\":\"/guide/notifications.html\"},{\"text\":\"设置\",\"link\":\"/guide/settings.html\"},{\"text\":\"API\",\"link\":\"/guide/api.html\"}]},{\"text\":\"常见问题\",\"items\":[{\"text\":\"反向代理 Telegram API\",\"link\":\"/guide/q1.html\"},{\"text\":\"Agent 启动/上线 问题自检流程\",\"link\":\"/guide/q2.html\"},{\"text\":\"反向代理 gRPC 端口\",\"link\":\"/guide/q3.html\"},{\"text\":\"实时通道断开/在线终端连接失败\",\"link\":\"/guide/q4.html\"},{\"text\":\"面板数据迁移、备份和恢复\",\"link\":\"/guide/q5.html\"},{\"text\":\"设置每月重置流量统计\",\"link\":\"/guide/q6.html\"},{\"text\":\"自定义 Agent 监控项目\",\"link\":\"/guide/q7.html\"},{\"text\":\"使用 Cloudflare Access 作为 OAuth2 提供方\",\"link\":\"/guide/q8\"}]},{\"text\":\"排障指南\",\"items\":[{\"text\":\"Dashboard 相关\",\"link\":\"/guide/dashboardq.html\"},{\"text\":\"Agent 相关\",\"link\":\"/guide/agentq.html\"},{\"text\":\"登录相关\",\"link\":\"/guide/loginq.html\"}]}],\"/case/\":[{\"text\":\"社区项目\",\"items\":[{\"text\":\"1. 搭建哪吒 Telegram 机器人\",\"link\":\"/case/case1.html\"},{\"text\":\"2. 使用 Siri 语音运行快捷指令查询服务器状态\",\"link\":\"/case/case2.html\"},{\"text\":\"3. 自建多用户多语言 Telegram 服务器状态查询机器人\",\"link\":\"/case/case3.html\"},{\"text\":\"4. Fake-agent,监控数据作弊器\",\"link\":\"/case/case4.html\"},{\"text\":\"5. 使用 Argo 隧道的哪吒服务端\",\"link\":\"/case/case5.html\"}]}],\"/developer/\":[{\"text\":\"开发手册\",\"items\":[{\"text\":\"创建新主题\",\"link\":\"/developer/theme.html\"},{\"text\":\"l10n\",\"link\":\"/developer/l10n.html\"}]}]}}},\"en_US\":{\"lang\":\"en-US\",\"label\":\"English\",\"title\":\"Nezha MoniLine truncated
</body>
</html>