This commit is contained in:
naiba committed 2023-12-02 16:27:14 +00:00
1 parent 424b214136
commit 1b2bc3ac68
171 files changed
+409 -433

No files matched your search

+26 -32
View File
@@ -10,13 +10,14 @@
<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/case_case5.md.93900c94.lean.js">
<link rel="modulepreload" href="/assets/case_case5.md.895ea2d3.lean.js">
<script src="https://cdn.wwads.cn/js/makemoney.js" async="true"></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="/" data-v-4d981103><!--[--><!--]--><!----><!--[-->哪吒监控<!--]--><!--[--><!--]--></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" href="/" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->使用指南<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink active" href="/case/index.html" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->社区项目<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/developer/index.html" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->开发手册<!--]--><!----></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>简体中文</p><!--[--><div class="VPMenuLink" data-v-74abcbb9 data-v-2f2cfafc><a class="VPLink link" href="/en_US/case/case5.html" data-v-2f2cfafc data-v-8f4dc553><!--[-->English<!--]--><!----></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.7,20,20.8,19.8,20.8z"></path><path d="M3,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="/" data-v-4d981103><!--[--><!--]--><!----><!--[-->哪吒监控<!--]--><!--[--><!--]--></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" href="/" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->使用指南<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink active" href="/case/index.html" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->社区项目<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/developer/index.html" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->开发手册<!--]--><!----></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>简体中文</p><!--[--><div class="VPMenuLink" data-v-74abcbb9 data-v-2f2cfafc><a class="VPLink link" href="/en_US/case/case5.html" data-v-2f2cfafc data-v-8f4dc553><!--[-->English<!--]--><!----></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.7,20,20.8,19.8,20.8z"></path><path d="M3,Line truncated
<span class="line"><span style="color:#A6ACCD;"> --name nezha_dashboard \</span></span>
<span class="line"><span style="color:#A6ACCD;"> --pull always \</span></span>
<span class="line"><span style="color:#A6ACCD;"> --restart always \</span></span>
<span class="line"><span style="color:#A6ACCD;"> -e GH_USER=&lt;填 github 用户名&gt; \</span></span>
<span class="line"><span style="color:#A6ACCD;"> -e GH_EMAIL=&lt;填 github 邮箱&gt; \</span></span>
@@ -25,14 +26,13 @@
<span class="line"><span style="color:#A6ACCD;"> -e GH_CLIENTID=&lt;填获取的&gt; \</span></span>
<span class="line"><span style="color:#A6ACCD;"> -e GH_CLIENTSECRET=&lt;填获取的&gt; \</span></span>
<span class="line"><span style="color:#A6ACCD;"> -e ARGO_AUTH=&#39;&lt;填获取的 Argo json 或者 token&gt;&#39; \</span></span>
<span class="line"><span style="color:#A6ACCD;"> -e WEB_DOMAIN=&lt;填自定义的&gt; \</span></span>
<span class="line"><span style="color:#A6ACCD;"> -e DATA_DOMAIN=&lt;填自定义的&gt; \</span></span>
<span class="line"><span style="color:#A6ACCD;"> -e SSH_DOMAIN=&lt;填自定义的&gt; \</span></span>
<span class="line"><span style="color:#A6ACCD;"> -e SSH_PASSWORD=&lt;填自定义的&gt; \</span></span>
<span class="line"><span style="color:#A6ACCD;"> -e ARGO_DOMAIN=&lt;填自定义的&gt; \</span></span>
<span class="line"><span style="color:#A6ACCD;"> -e GH_BACKUP_USER=&lt;如与 GH_USER 一致,可以不要该环境变量&gt; \</span></span>
<span class="line"><span style="color:#A6ACCD;"> fscarmen/argo-nezha</span></span></code></pre></div><h3 id="docker-compose-部署" tabindex="-1">docker-compose 部署 <a class="header-anchor" href="#docker-compose-部署" aria-label="Permalink to &quot;docker-compose 部署&quot;">​</a></h3><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">version: &#39;3.8&#39;</span></span>
<span class="line"><span style="color:#A6ACCD;">services:</span></span>
<span class="line"><span style="color:#A6ACCD;"> argo-nezha:</span></span>
<span class="line"><span style="color:#A6ACCD;"> image: fscarmen/argo-nezha</span></span>
<span class="line"><span style="color:#A6ACCD;"> pull: always</span></span>
<span class="line"><span style="color:#A6ACCD;"> container_name: nezha_dashboard</span></span>
<span class="line"><span style="color:#A6ACCD;"> restart: always</span></span>
<span class="line"><span style="color:#A6ACCD;"> environment:</span></span>
@@ -43,32 +43,26 @@
<span class="line"><span style="color:#A6ACCD;"> - GH_CLIENTID=&lt;填获取的&gt;</span></span>
<span class="line"><span style="color:#A6ACCD;"> - GH_CLIENTSECRET=&lt;填获取的&gt;</span></span>
<span class="line"><span style="color:#A6ACCD;"> - ARGO_AUTH=&#39;&lt;填获取的 Argo json 或者 token&gt;&#39;</span></span>
<span class="line"><span style="color:#A6ACCD;"> - WEB_DOMAIN=&lt;填自定义的&gt;</span></span>
<span class="line"><span style="color:#A6ACCD;"> - DATA_DOMAIN=&lt;填自定义的&gt;</span></span>
<span class="line"><span style="color:#A6ACCD;"> - SSH_DOMAIN=&lt;填自定义的&gt;</span></span>
<span class="line"><span style="color:#A6ACCD;"> - SSH_PASSWORD=&lt;填自定义的&gt;</span></span></code></pre></div><h2 id="客户端接入" tabindex="-1">客户端接入 <a class="header-anchor" href="#客户端接入" aria-label="Permalink to &quot;客户端接入&quot;">​</a></h2><p>通过gRPC传输,无需额外配置。使用面板给到的安装方式,举例</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh -o nezha.sh &amp;&amp; chmod +x nezha.sh &amp;&amp; sudo ./nezha.sh install_agent data.seales.nom.za 443 eAxO9IF519fKFODlW0 --tls</span></span></code></pre></div><h2 id="ssh-接入" tabindex="-1">SSH 接入 <a class="header-anchor" href="#ssh-接入" aria-label="Permalink to &quot;SSH 接入&quot;">​</a></h2><ul><li>以 macOS + WindTerm 为例,其他根据使用的 SSH 工具,结合官方官方说明文档: <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/use_cases/ssh/#2-connect-as-a-user" target="_blank" rel="noreferrer">https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/use_cases/ssh/#2-connect-as-a-user</a></li><li>官方 cloudflared 下载: <a href="https://github.com/cloudflare/cloudflared/releases" target="_blank" rel="noreferrer">https://github.com/cloudflare/cloudflared/releases</a></li><li>以下输入命令举例</li></ul><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">&lt;file path&gt;/cloudflared access ssh --hostname ssh.seales.nom.za</span></span></code></pre></div><img width="834" alt="image" src="https://user-images.githubusercontent.com/92626977/233349393-cec79e11-346e-4a57-8357-8d153d75ee40.png"><img width="830" alt="image" src="https://user-images.githubusercontent.com/92626977/233350601-73de67f9-19ca-451f-b395-8721abbb3342.png"><img width="955" alt="image" src="https://user-images.githubusercontent.com/92626977/233350802-754624e0-8456-4353-8577-1f5385fb8723.png"><h2 id="自动还原备份" tabindex="-1">自动还原备份 <a class="header-anchor" href="#自动还原备份" aria-label="Permalink to &quot;自动还原备份&quot;">​</a></h2><ul><li>把需要还原的文件名改到 github 备份库里的 <code>README.md</code>,定时服务会每分钟检测更新,并把上次同步的文件名记录在本地 <code>/dbfile</code> 处以与在线的文件内容作比对</li></ul><p>下图为以还原文件名为 <code>dashboard-2023-04-23-13:08:37.tar.gz</code> 作示例</p><p><img src="https://user-images.githubusercontent.com/92626977/233822466-c24e94f6-ba8a-47c9-b77d-aa62a56cc929.png" alt="image"></p><h2 id="手动还原备份" tabindex="-1">手动还原备份 <a class="header-anchor" href="#手动还原备份" aria-label="Permalink to &quot;手动还原备份&quot;">​</a></h2><ul><li>ssh 进入容器后运行,github 备份库里的 tar.gz 文件名,格式: dashboard-2023-04-22-21:42:10.tar.gz</li></ul><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">bash /dashboard/restore.sh &lt;文件名&gt;</span></span></code></pre></div><img width="1209" alt="image" src="https://user-images.githubusercontent.com/92626977/233792709-fb37b79c-c755-4db1-96ec-1039309ff932.png"><h2 id="完美搬家" tabindex="-1">完美搬家 <a class="header-anchor" href="#完美搬家" aria-label="Permalink to &quot;完美搬家&quot;">​</a></h2><ul><li>备份原哪吒的 <code>/dashboard</code> 文件夹,压缩备份为 <code>dashboard.tar.gz</code> 文件</li></ul><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">tar czvf dashboard.tar.gz /dashboard</span></span></code></pre></div><ul><li>下载文件并放入私库,这个私库名要与新哪吒 &lt;GH_REPO&gt; 完全一致,并把该库的 README.md 的内容编辑为 <code>dashboard.tar.gz</code></li><li>部署本项目新哪吒,完整填入变量即可。部署完成后,自动还原脚本会每分钟作检测,发现有新的内容即会自动还原,全程约 3 分钟</li></ul><h2 id="主体目录文件及说明" tabindex="-1">主体目录文件及说明 <a class="header-anchor" href="#主体目录文件及说明" aria-label="Permalink to &quot;主体目录文件及说明&quot;">​</a></h2><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">.</span></spLine truncated
<span class="line"><span style="color:#A6ACCD;">|-- dashboard</span></span>
<span class="line"><span style="color:#A6ACCD;">| |-- app # 哪吒面板主程序</span></span>
<span class="line"><span style="color:#A6ACCD;">| |-- argo.json # Argo 隧道 json 文件,记录着使用隧道的信息</span></span>
<span class="line"><span style="color:#A6ACCD;">| |-- argo.yml # Argo 隧道 yml 文件,用于在一同隧道下,根据不同域名来分流 web, gRPC 和 ssh 协议的作用</span></span>
<span class="line"><span style="color:#A6ACCD;">| |-- backup.sh # 备份数据脚本</span></span>
<span class="line"><span style="color:#A6ACCD;">| |-- data</span></span>
<span class="line"><span style="color:#A6ACCD;">| | |-- config.yaml # 哪吒面板的配置,如 Github OAuth2 / gRPC 域名 / 端口 / 是否启用 TLS 等信息</span></span>
<span class="line"><span style="color:#A6ACCD;">| | `-- sqlite.db # SQLite 数据库文件,记录着面板设置的所有 severs 和 cron 等信息</span></span>
<span class="line"><span style="color:#A6ACCD;">| |-- entrypoint.sh # 主脚本,容器运行后执行</span></span>
<span class="line"><span style="color:#A6ACCD;">| |-- nezha.csr # SSL/TLS 证书签名请求</span></span>
<span class="line"><span style="color:#A6ACCD;">| |-- nezha.key # SSL/TLS 证书的私钥信息</span></span>
<span class="line"><span style="color:#A6ACCD;">| |-- nezha.pem # SSL/TLS 隐私增强邮件</span></span>
<span class="line"><span style="color:#A6ACCD;">| `-- restore.sh # 还原备份脚本</span></span>
<span class="line"><span style="color:#A6ACCD;">|-- usr</span></span>
<span class="line"><span style="color:#A6ACCD;">| `-- local</span></span>
<span class="line"><span style="color:#A6ACCD;">| `-- bin</span></span>
<span class="line"><span style="color:#A6ACCD;">| |-- cloudflared # Cloudflare Argo 隧道主程序</span></span>
<span class="line"><span style="color:#A6ACCD;">| |-- grpcwebproxy # gRPC 反代主程序</span></span>
<span class="line"><span style="color:#A6ACCD;">| `-- nezha-agent # 哪吒客户端,用于监控本地 localhost</span></span>
<span class="line"><span style="color:#A6ACCD;">|-- dbfile # 记录最新的还原或备份文件名</span></span>
<span class="line"><span style="color:#A6ACCD;">`-- version # 记录当前的面板 app 版本</span></span></code></pre></div><h2 id="鸣谢下列作者的文章和项目" tabindex="-1">鸣谢下列作者的文章和项目: <a class="header-anchor" href="#鸣谢下列作者的文章和项目" aria-label="Permalink to &quot;鸣谢下列作者的文章和项目:&quot;">​</a></h2><ul><li>热心的朝阳群众 Robin,讨论哪吒服务端与客户端的关系,从而诞生了此项目</li><li>哪吒官网: <a href="https://nezha.wiki/" target="_blank" rel="noreferrer">https://nezha.wiki/</a> , TG 群: <a href="https://t.me/nezhamonitoring" target="_blank" rel="noreferrer">https://t.me/nezhamonitoring</a></li><li>共穷国际老中医: <a href="http://solitud.es/" target="_blank" rel="noreferrer">http://solitud.es/</a></li><li>Akkia&#39;s Blog: <a href="https://blog.akkia.moe/" target="_blank" rel="noreferrer">https://blog.akkia.moe/</a></li><li>HiFeng&#39;s Blog: <a href="https://www.hicairo.com/" target="_blank" rel="noreferrer">https://www.hicairo.com/</a></li><li>用 Cloudflare Tunnel 进行内网穿透: <a href="https://blog.outv.im/2021/cloudflared-tunnel/" target="_blank" rel="noreferrer">https://blog.outv.im/2021/cloudflared-tunnel/</a></li><li>如何给 GitHub Actions 添加自己的 Runner 主机: <a href="https://cloud.tencent.com/developer/article/1756690" target="_blank" rel="noreferrer">https://cloud.tencent.com/developer/article/1756690</a></li><li>github self-hosted runner 添加与启动: <a href="https://blog.csdn.net/sinat_32188225/article/details/125978331" target="_blank" rel="noreferrer">https://blog.csdn.net/sinat_32188225/article/details/125978331</a></li><li>如何从Docker镜像中导出文件: <a href="https://www.pkslow.com/archives/extract-files-from-docker-image" target="_blank" rel="noreferrer">https://www.pkslow.com/archives/extract-files-from-docker-image</a></li><li>grpcwebproxy: <a href="https://github.com/improbable-eng/grpc-web/tree/master/go/grpcwebproxy" target="_blank" rel="noreferrer">https://github.com/improbable-eng/grpc-web/tree/master/go/grpcwebproxy</a></li></ul><h2 id="免责声明" tabindex="-1">免责声明: <a class="header-anchor" href="#免责声明" aria-label="Permalink to &quot;免责声明:&quot;">​</a></h2><ul><li>本程序仅供学习了解, 非盈利目的,请于下载后 24 小时内删除, 不得用作任何商业用途, 文字、数据及图片均有所属版权, 如转载须注明来源。</li><li>使用本程序必循遵守部署免责声明。使用本程序必循遵守部署服务器所在地、所在国家和用户所在国家的法律法规, 程序作者不对使用者任何不当行为负责。</li></ul></div></div></main><footer class="VPDocFooter" data-v-c4b0d3cf data-v-face870a><!--[--><!--]--><div class="edit-info" data-v-face870a><div class="edit-link" data-v-face870a><a class="VPLink link edit-link-button" href="https://github.com/nezhahq/nezhahq.github.io/edit/main/docs/case/case5.md" target="_blank" rel="noreferrer" data-v-face870a data-v-8f4dc553><!--[--><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" class="edit-link-icon" aria-label="edit icon" data-v-face870a><path d="M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"></path><path d="M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"></path></svg> 在GitHub中编辑<!--]--><!----></a></div><div class="last-updated" data-v-face870a><p class="VPLastUpdated" data-v-face870a data-v-7b3ebfe1>上次更新: <time datetime="2023-10-27T03:04:11.000Z" data-v-7b3ebfe1></time></p></div></div><div class="prev-next" data-v-face870a><div class="pager" data-v-face870a><a class="pager-link prev" href="/case/case4.html" data-v-face870a><span class="desc" data-v-face870a>Previous page</span><span class="title" data-v-face870a>4. Fake-agent,监控数据作弊器</span></a></div><div class="has-prev pager" data-v-face870a><!----></div></div></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-b2cf3e0b data-v-f7fc41f4><div class="container" data-v-f7fc41f4><p class="message" data-v-f7fc41f4>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</p><p class="copyright" data-v-f7fc41f4>Copyright © 2022-present NezhaHQ</p></div></footer><!--[--><!--]--></div></div>
<script>__VP_HASH_MAP__ = JSON.parse("{\"developer_theme.md\":\"5883687e\",\"en_us_case_case1.md\":\"9a8ad188\",\"en_us_case_case2.md\":\"77f26080\",\"en_us_case_case3.md\":\"c8bf14c8\",\"en_us_case_case4.md\":\"87565e31\",\"en_us_case_case5.md\":\"635f3c8f\",\"en_us_developer_index.md\":\"494894a7\",\"en_us_developer_l10n.md\":\"f30e1696\",\"en_us_case_index.md\":\"51e3fcf1\",\"case_case2.md\":\"98fa8429\",\"en_us_developer_theme.md\":\"fec1d800\",\"case_case3.md\":\"8673f8b5\",\"case_case4.md\":\"69b133d8\",\"case_case5.md\":\"93900c94\",\"case_index.md\":\"0419435e\",\"developer_index.md\":\"fb38673e\",\"developer_l10n.md\":\"e16b7f23\",\"case_case1.md\":\"10924026\",\"en_us_guide_dashboard.md\":\"d3da906a\",\"en_us_guide_dashboardq.md\":\"60106923\",\"en_us_guide_loginq.md\":\"6e1954e3\",\"en_us_guide_api.md\":\"5bfd89f2\",\"guide_q7.md\":\"6e5b4509\",\"guide_servers.md\":\"bf593d54\",\"guide_services.md\":\"bc514a7e\",\"guide_settings.md\":\"47429b8c\",\"guide_tasks.md\":\"00d2bf18\",\"index.md\":\"3437873f\",\"en_us_guide_agent.md\":\"27bff8f7\",\"en_us_guide_agentq.md\":\"eb2f5013\",\"guide_agent.md\":\"1cf2f21a\",\"en_us_guide_notifications.md\":\"88d86f03\",\"en_us_guide_q2.md\":\"d795499d\",\"en_us_guide_q3.md\":\"0d779386\",\"en_us_guide_q4.md\":\"847c7d75\",\"en_us_guide_q5.md\":\"7df8c8cd\",\"en_us_guide_q6.md\":\"fe3100ad\",\"en_us_guide_q7.md\":\"5d20e21a\",\"en_us_guide_servers.md\":\"a92b7c67\",\"en_us_guide_services.md\":\"c882e01a\",\"en_us_guide_settings.md\":\"7d38802c\",\"en_us_guide_tasks.md\":\"e1820240\",\"en_us_index.md\":\"56b31086\",\"guide_q1.md\":\"ba9dbf6b\",\"guide_api.md\":\"b4d4c043\",\"guide_agentq.md\":\"4b93c69b\",\"guide_dashboard.md\":\"b839f029\",\"guide_dashboardq.md\":\"5a078e44\",\"guide_loginq.md\":\"c4973bfb\",\"guide_notifications.md\":\"e73d0084\",\"guide_q2.md\":\"abd5be0b\",\"guide_q3.md\":\"ab30d47b\",\"guide_q5.md\":\"94b09336\",\"guide_q4.md\":\"74ddc32e\",\"guide_q6.md\":\"242c74d0\"}")
<span class="line"><span style="color:#A6ACCD;"> - ARGO_DOMAIN=&lt;填自定义的&gt;</span></span>
<span class="line"><span style="color:#A6ACCD;"> - GH_BACKUP_USER=&lt;如与 GH_USER 一致,可以不要该环境变量&gt;</span></span></code></pre></div><h2 id="vps-部署方式-2-宿主机" tabindex="-1">VPS 部署方式 2 --- 宿主机 <a class="header-anchor" href="#vps-部署方式-2-宿主机" aria-label="Permalink to &quot;VPS 部署方式 2 --- 宿主机&quot;">​</a></h2><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">bash &lt;(wget -qO- https://raw.githubusercontent.com/fscarmen2/Argo-Nezha-Service-Container/main/dashboard.sh)</span></span></code></pre></div><h2 id="客户端接入" tabindex="-1">客户端接入 <a class="header-anchor" href="#客户端接入" aria-label="Permalink to &quot;客户端接入&quot;">​</a></h2><p>通过gRPC传输,无需额外配置。使用面板给到的安装方式,举例</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh -o nezha.sh &amp;&amp; chmod +x nezha.sh &amp;&amp; sudo ./nezha.sh install_agent nezha.seales.nom.za 443 eAxO9IF519fKFODlW0 --tls</span></span></code></pre></div><h2 id="ssh-接入" tabindex="-1">SSH 接入 <a class="header-anchor" href="#ssh-接入" aria-label="Permalink to &quot;SSH 接入&quot;">​</a></h2><ul><li>以 macOS + WindTerm 为例,其他根据使用的 SSH 工具,结合官方官方说明文档: <a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/use_cases/ssh/#2-connect-as-a-user" target="_blank" rel="noreferrer">https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/use_cases/ssh/#2-connect-as-a-user</a></li><li>官方 cloudflared 下载: <a href="https://github.com/cloudflare/cloudflared/releases" target="_blank" rel="noreferrer">https://github.com/cloudflare/cloudflared/releases</a></li><li>以下输入命令举例: SSH 用户名: root, 密码:&lt;GH_CLIENTSECRET&gt;</li></ul><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">&lt;file path&gt;/cloudflared access ssh --hostname nezha.seales.nom.za/&lt;GH_CLIENTID&gt;</span></span></code></pre></div><img width="1180" alt="image" src="https://github.com/fscarmen2/Argo-Nezha-Service-Container/assets/92626977/507b037a-25c6-457f-b2b5-d54f4b70a2b6"><img width="828" alt="image" src="https://github.com/fscarmen2/Argo-Nezha-Service-Container/assets/92626977/80284f0b-e2d7-4adb-982a-969aca0cb5f6"><img width="955" alt="image" src="https://user-images.githubusercontent.com/92626977/233350802-754624e0-8456-4353-8577-1f5385fb8723.png"><h2 id="手动备份数据" tabindex="-1">手动备份数据 <a class="header-anchor" href="#手动备份数据" aria-label="Permalink to &quot;手动备份数据&quot;">​</a></h2><p>方法一: 把 Github 备份库里的 <code>README.md</code> 文件内容改为 <code>backup</code></p><img width="970" alt="image" src="https://github.com/fscarmen2/Argo-Nezha-Service-Container/assets/92626977/c5b6bc4b-e69c-48ce-97d4-3f9be88515f3"><p>方法二: ssh 进去后,容器版本运行 <code>/dashboard/backup.sh</code>; 非容器版本运行 <code>/opt/nezha/dashboard/backup.sh</code></p><h2 id="自动还原备份" tabindex="-1">自动还原备份 <a class="header-anchor" href="#自动还原备份" aria-label="Permalink to &quot;自动还原备份&quot;">​</a></h2><ul><li>把需要还原的文件名改到 github 备份库里的 <code>README.md</code>,定时服务会每分钟检测更新,并把上次同步的文件名记录在本地 <code>/dbfile</code> 处以与在线的文件内容作比对</li></ul><p>下图为以还原文件名为 <code>dashboard-2023-04-23-13:08:37.tar.gz</code> 作示例</p><p><img src="https://user-images.githubusercontent.com/92626977/233822466-c24e94f6-ba8a-47c9-b77d-aa62a56cc929.png" alt="image"></p><h2 id="手动还原备份" tabindex="-1">手动还原备份 <a class="header-anchor" href="#手动还原备份" aria-label="Permalink to &quot;手动还原备份&quot;">​</a></h2><ul><li>ssh 进入容器后运行,github 备份库里的 tar.gz 文件名,格式: dashboard-2023-04-22-21:42:10.tar.gz</li></ul><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">bash /dashboard/restore.sh &lt;文件名&gt;</span></span></code></pre></div><img width="1209" alt="image" src="https://user-images.githubusercontent.com/92626977/233792709-fb37b79c-c755-4db1-96ec-1039309ff932.png"><h2 id="完美搬家" tabindex="-1">完美搬Line truncated
<span class="line"><span style="color:#A6ACCD;">|-- app # 哪吒面板主程序</span></span>
<span class="line"><span style="color:#A6ACCD;">|-- argo.json # Argo 隧道 json 文件,记录着使用隧道的信息</span></span>
<span class="line"><span style="color:#A6ACCD;">|-- argo.yml # Argo 隧道 yml 文件,用于在一同隧道下,根据不同域名来分流 web, gRPC 和 ssh 协议的作用</span></span>
<span class="line"><span style="color:#A6ACCD;">|-- backup.sh # 备份数据脚本</span></span>
<span class="line"><span style="color:#A6ACCD;">|-- restore.sh # 还原备份脚本</span></span>
<span class="line"><span style="color:#A6ACCD;">|-- dbfile # 记录最新的还原或备份文件名</span></span>
<span class="line"><span style="color:#A6ACCD;">|-- resource # 面板主题、语言和旗帜等资料的文件夹</span></span>
<span class="line"><span style="color:#A6ACCD;">|-- data</span></span>
<span class="line"><span style="color:#A6ACCD;">| |-- config.yaml # 哪吒面板的配置,如 Github OAuth2 / gRPC 域名 / 端口 / 是否启用 TLS 等信息</span></span>
<span class="line"><span style="color:#A6ACCD;">| `-- sqlite.db # SQLite 数据库文件,记录着面板设置的所有 severs 和 cron 等信息</span></span>
<span class="line"><span style="color:#A6ACCD;">|-- entrypoint.sh # 主脚本,容器运行后执行</span></span>
<span class="line"><span style="color:#A6ACCD;">|-- nezha.csr # SSL/TLS 证书签名请求</span></span>
<span class="line"><span style="color:#A6ACCD;">|-- nezha.key # SSL/TLS 证书的私钥信息</span></span>
<span class="line"><span style="color:#A6ACCD;">|-- nezha.pem # SSL/TLS 证书文件</span></span>
<span class="line"><span style="color:#A6ACCD;">|-- cloudflared # Cloudflare Argo 隧道主程序</span></span>
<span class="line"><span style="color:#A6ACCD;">|-- grpcwebproxy # gRPC 反代主程序</span></span>
<span class="line"><span style="color:#A6ACCD;">`-- nezha-agent # 哪吒客户端,用于监控本地 localhost</span></span></code></pre></div><h2 id="鸣谢下列作者的文章和项目" tabindex="-1">鸣谢下列作者的文章和项目: <a class="header-anchor" href="#鸣谢下列作者的文章和项目" aria-label="Permalink to &quot;鸣谢下列作者的文章和项目:&quot;">​</a></h2><ul><li>热心的朝阳群众 Robin,讨论哪吒服务端与客户端的关系,从而诞生了此项目</li><li>哪吒官网: <a href="https://nezha.wiki/" target="_blank" rel="noreferrer">https://nezha.wiki/</a> , TG 群: <a href="https://t.me/nezhamonitoring" target="_blank" rel="noreferrer">https://t.me/nezhamonitoring</a></li><li>共穷国际老中医: <a href="http://solitud.es/" target="_blank" rel="noreferrer">http://solitud.es/</a></li><li>Akkia&#39;s Blog: <a href="https://blog.akkia.moe/" target="_blank" rel="noreferrer">https://blog.akkia.moe/</a></li><li>胡桃&#39;s Blog: <a href="https://blog.xn--pn1aul.org/" target="_blank" rel="noreferrer">https://blog.萝莉.org/</a></li><li>HiFeng&#39;s Blog: <a href="https://www.hicairo.com/" target="_blank" rel="noreferrer">https://www.hicairo.com/</a></li><li>用 Cloudflare Tunnel 进行内网穿透: <a href="https://blog.outv.im/2021/cloudflared-tunnel/" target="_blank" rel="noreferrer">https://blog.outv.im/2021/cloudflared-tunnel/</a></li><li>如何给 GitHub Actions 添加自己的 Runner 主机: <a href="https://cloud.tencent.com/developer/article/1756690" target="_blank" rel="noreferrer">https://cloud.tencent.com/developer/article/1756690</a></li><li>github self-hosted runner 添加与启动: <a href="https://blog.csdn.net/sinat_32188225/article/details/125978331" target="_blank" rel="noreferrer">https://blog.csdn.net/sinat_32188225/article/details/125978331</a></li><li>如何从Docker镜像中导出文件: <a href="https://www.pkslow.com/archives/extract-files-from-docker-image" target="_blank" rel="noreferrer">https://www.pkslow.com/archives/extract-files-from-docker-image</a></li><li>grpcwebproxy: <a href="https://github.com/improbable-eng/grpc-web/tree/master/go/grpcwebproxy" target="_blank" rel="noreferrer">https://github.com/improbable-eng/grpc-web/tree/master/go/grpcwebproxy</a></li><li>Applexad 的哪吒官方改版的面板二进制文件: <a href="https://github.com/applexad/nezha-binary-build" target="_blank" rel="noreferrer">https://github.com/applexad/nezha-binary-build</a></li></ul><h2 id="免责声明" tabindex="-1">免责声明: <a class="header-anchor" href="#免责声明" aria-label="Permalink to &quot;免责声明:&quot;">​</a></h2><ul><li>本程序仅供学习了解, 非盈利目的,请于下载后 24 小时内删除, 不得用作任何商业用途, 文字、数据及图片均有所属版权, 如转载须注明来源。</li><li>使用本程序必循遵守部署免责声明。使用本程序必循遵守部署服务器所在地、所在国家和用户所在国家的法律法规, 程序作者不对使用者任何不当行为负责。</li></ul></div></div></main><footer class="VPDocFooter" data-v-c4b0d3cf data-v-face870a><!--[--><!--]--><div class="edit-info" data-v-face870a><div class="edit-link" data-v-face870a><a class="VPLink link edit-link-button" href="https://github.com/nezhahq/nezhahq.github.io/edit/main/docs/case/case5.md" target="_blank" rel="noreferrer" data-v-face870a data-v-8f4dc553><!--[--><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" class="edit-link-icon" aria-label="edit icon" data-v-face870a><path d="M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"></path><path d="M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"></path></svg> 在GitHub中编辑<!--]--><!----></a></div><div class="last-updated" data-v-face870a><p class="VPLastUpdated" data-v-face870a data-v-7b3ebfe1>上次更新: <time datetime="2023-12-02T16:26:50.000Z" data-v-7b3ebfe1></time></p></div></div><div class="prev-next" data-v-face870a><div class="pager" data-v-face870a><a class="pager-link prev" href="/case/case4.html" data-v-face870a><span class="desc" data-v-face870a>Previous page</span><span class="title" data-v-face870a>4. Fake-agent,监控数据作弊器</span></a></div><div class="has-prev pager" data-v-face870a><!----></div></div></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-b2cf3e0b data-v-f7fc41f4><div class="container" data-v-f7fc41f4><p class="message" data-v-f7fc41f4>This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/byLine truncated
<script>__VP_HASH_MAP__ = JSON.parse("{\"case_case1.md\":\"6f827984\",\"case_case4.md\":\"3d19dff7\",\"case_case2.md\":\"0f994f85\",\"guide_agentq.md\":\"e4748933\",\"developer_theme.md\":\"8c7acb53\",\"guide_q4.md\":\"1e055927\",\"guide_servers.md\":\"5c3323d1\",\"guide_api.md\":\"10955d00\",\"en_us_case_case4.md\":\"b3a4b972\",\"en_us_case_case3.md\":\"a5875c00\",\"en_us_case_index.md\":\"464e1cf1\",\"en_us_developer_l10n.md\":\"88ba36b5\",\"en_us_case_case5.md\":\"3404425e\",\"en_us_developer_index.md\":\"5e431eca\",\"en_us_guide_q5.md\":\"ab9624d6\",\"en_us_guide_api.md\":\"7c016679\",\"en_us_guide_q2.md\":\"ef5213fa\",\"en_us_guide_servers.md\":\"19b9de10\",\"en_us_guide_services.md\":\"88b6205c\",\"en_us_guide_q4.md\":\"39c1f69c\",\"en_us_index.md\":\"99e7e7d6\",\"en_us_guide_notifications.md\":\"c66257b2\",\"en_us_guide_tasks.md\":\"dfe9cb41\",\"en_us_guide_q3.md\":\"9878dfb9\",\"guide_q1.md\":\"97e2cb27\",\"guide_agent.md\":\"85008d4e\",\"case_index.md\":\"e7243c50\",\"index.md\":\"7decbfa6\",\"developer_index.md\":\"0a6fbe67\",\"en_us_case_case2.md\":\"c9576b87\",\"developer_l10n.md\":\"06ab96bd\",\"en_us_case_case1.md\":\"628438cc\",\"en_us_guide_agentq.md\":\"f3d60b04\",\"en_us_guide_q6.md\":\"d8f23d35\",\"en_us_guide_dashboardq.md\":\"ac655fb7\",\"en_us_developer_theme.md\":\"ab8eaaf4\",\"en_us_guide_agent.md\":\"6683a40f\",\"guide_loginq.md\":\"dd090780\",\"en_us_guide_loginq.md\":\"2cd38989\",\"en_us_guide_q7.md\":\"1a0316cc\",\"en_us_guide_dashboard.md\":\"7413067e\",\"guide_q3.md\":\"ac1531fd\",\"guide_q5.md\":\"1499e8bb\",\"guide_q6.md\":\"5919ae50\",\"en_us_guide_settings.md\":\"1abc055b\",\"case_case3.md\":\"2815791d\",\"guide_services.md\":\"e571bf06\",\"guide_q7.md\":\"110e0752\",\"case_case5.md\":\"895ea2d3\",\"guide_settings.md\":\"eddaca0c\",\"guide_q2.md\":\"27a2f8de\",\"guide_tasks.md\":\"aae399a8\",\"guide_dashboard.md\":\"cf138dd1\",\"guide_dashboardq.md\":\"9e79f90f\",\"guide_notifications.md\":\"f36c695a\"}")
__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\":\"TG 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\":\"排障指南\",\"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\":\"TG 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\":\"排障指南\",\"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 Monitoring\",\"description\":\"Nezha Monitoring is a lightweight OLine truncated
</body>