deploy: a561ca413d
This commit is contained in:
1 parent
34598694c7
commit
de82899984
296 files changed
+2466
-2578
No files matched your search
+149
-163
@@ -1,173 +1,159 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<html lang="zh-CN" dir="ltr">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
<title>一键安装 Agent | 哪吒监控</title>
|
||||
<title>哪吒监控 | 哪吒监控</title>
|
||||
<meta name="description" content="哪吒监控是一个轻量化的运维工具">
|
||||
<link rel="stylesheet" href="/assets/style.0b9f658b.css">
|
||||
<link rel="modulepreload" href="/assets/chunks/AlgoliaSearchBox.5f34673f.js">
|
||||
<link rel="modulepreload" href="/assets/app.38e99b9a.js">
|
||||
<link rel="modulepreload" href="/assets/guide_agent.md.4e71a28f.lean.js">
|
||||
|
||||
<meta name="twitter:title" content="一键安装 Agent | 哪吒监控">
|
||||
<meta property="og:title" content="一键安装 Agent | 哪吒监控">
|
||||
<link rel="preload stylesheet" href="/assets/style.ac216bba.css" as="style">
|
||||
<script type="module" src="/assets/app.52883806.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.1625126e.js">
|
||||
<link rel="modulepreload" href="/assets/chunks/theme.776be62d.js">
|
||||
<link rel="modulepreload" href="/assets/guide_agent.md.aa1597de.lean.js">
|
||||
<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="theme"><header class="nav-bar" data-v-675d8756><div class="sidebar-button" data-v-675d8756><svg class="icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z" class></path></svg></div><a class="nav-bar-title" href="/" aria-label="哪吒监控, back to home" data-v-675d8756 data-v-cc01ef16><!----> 哪吒监控</a><div class="flex-grow" data-v-675d8756></div><div class="nav" data-v-675d8756><nav class="nav-links" data-v-675d8756 data-v-eab3edfe><!--[--><div class="item" data-v-eab3edfe><div class="nav-link" data-v-eab3edfe data-v-b8818f8c><a class="item active" href="/" data-v-b8818f8c>使用指南 <!----></a></div></div><div class="item" data-v-eab3edfe><div class="nav-link" data-v-eab3edfe data-v-b8818f8c><a class="item" href="/case/index" data-v-b8818f8c>社区项目 <!----></a></div></div><div class="item" data-v-eab3edfe><div class="nav-link" data-v-eab3edfe data-v-b8818f8c><a class="item" href="/developer/index" data-v-b8818f8c>开发手册 <!----></a></div></div><!--]--><div class="item" data-v-eab3edfe><div class="nav-dropdown-link" data-v-eab3edfe data-v-56bf3a3f><button class="button" data-v-56bf3a3f><span class="button-text" data-v-56bf3a3f>Languages</span><span class="right button-arrow" data-v-56bf3a3f></span></button><ul class="dialog" data-v-56bf3a3f><!--[--><li class="dialog-item" data-v-56bf3a3f><div class="nav-dropdown-link-item" data-v-56bf3a3f data-v-bbc27490><a class="item active" href="/guide/agent.html" data-v-bbc27490><span class="arrow" data-v-bbc27490></span><span class="text" data-v-bbc27490>简体中文</span><span class="icon" data-v-bbc27490><!----></span></a></div></li><li class="dialog-item" data-v-56bf3a3f><div class="nav-dropdown-link-item" data-v-56bf3a3f data-v-bbc27490><a class="item" href="/en_US/guide/agent.html" data-v-bbc27490><span class="arrow" data-v-bbc27490></span><span class="text" data-v-bbc27490>English</span><span class="icon" data-v-bbc27490><!----></span></a></div></li><!--]--></ul></div></div><div class="item" data-v-eab3edfe><div class="nav-link" data-v-eab3edfe data-v-b8818f8c><a class="item isExternal" href="https://github.com/nezhahq/nezhahq.github.io" target="_blank" rel="noopener noreferrer" data-v-b8818f8c>GitHub <svg class="icon outbound" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15" data-v-b8818f8c><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div></div></nav></div><!--[--><!--[--><div class="algolia-search-box" id="docsearch"></div><!--]--><!--]--></header><aside class="sidebar" data-v-83e92a68><nav class="nav-links nav" data-v-83e92a68 data-v-eab3edfe><!--[--><div class="item" data-v-eab3edfe><div class="nav-link" data-v-eab3edfe data-v-b8818f8c><a class="item active" href="/" data-v-b8818f8c>使用指南 <!----></a></div></div><div class="item" data-v-eab3edfe><div class="nav-link" data-v-eab3edfe data-v-b8818f8c><a class="item" href="/case/index" data-v-b8818f8c>社区项目 <!----></a></div></div><div class="item" data-v-eab3edfe><div class="nav-link" data-v-eab3edfe data-v-b8818f8c><a class="item" href="/developer/index" data-v-b8818f8c>开发手册 <!----></a></div></div><!--]--><div class="item" data-v-eab3edfe><div class="nav-dropdown-link" data-v-eab3edfe data-v-56bf3a3f><button class="button" data-v-56bf3a3f><span class="button-text" data-v-56bf3a3f>Languages</span><span class="right button-arrow" data-v-56bf3a3f></span></button><ul class="dialog" data-v-56bf3a3f><!--[--><li class="dialog-item" data-v-56bf3a3f><div class="nav-dropdown-link-item" data-v-56bf3a3f data-v-bbc27490><a class="item active" href="/guide/agent.html" data-v-bbc27490><span class="arrow" data-v-bbc27490></span><span class="text" data-v-bbc27490>简体中文</span><span class="icon" data-v-bbc27490><!----></span></a></div></li><li class="dialog-item" data-v-56bf3a3f><div class="nav-dropdown-link-item" data-v-56bf3a3f data-v-bbc27490><a class="item" href="/en_US/guide/agent.html" data-v-bbc27490><span class="arrow" data-v-bbc27490></span><span class="text" data-v-bbc27490>English</span><span class="icon" data-v-bbc27490><!----></span></a></div></li><!--]--></ul></div></div><div class="item" data-v-eab3edfe><div class="nav-link" data-v-eab3edfe data-v-b8818f8c><a class="item isExternal" href="https://githubLine truncated
|
||||
</code></pre></div><p>如果你的被控服务器位于中国大陆,可以使用镜像:</p><div class="language-bash"><pre><code><span class="token function">curl</span> -L https://cdn.jsdelivr.net/gh/naiba/nezha@master/script/install.sh -o nezha.sh <span class="token operator">&&</span> <span class="token function">chmod</span> +x nezha.sh <span class="token operator">&&</span> <span class="token function">sudo</span> <span class="token assign-left variable">CN</span><span class="token operator">=</span>true ./nezha.sh
|
||||
</code></pre></div><ul><li>选择“安装监控 Agent”</li><li>输入通信域名,如:”<a href="http://data.example.com" target="_blank" rel="noopener noreferrer">data.example.com</a>“</li><li>输入面板通信端口(RPC端口),默认为 5555</li><li>输入 Agent 密钥,Agent 密钥在管理面板中添加服务器时生成,可以在管理面板中的“主机”页中找到</li><li>等待安装完成后返回 Dashboard 主页查看服务器是否上线<br><br></li></ul><h3 id="在-其他-linux-如-alpine-使用-openrc-的发行版-安装-agent" tabindex="-1">在 其他 Linux 如 Alpine 使用 Openrc 的发行版 安装 Agent <a class="header-anchor" href="#在-其他-linux-如-alpine-使用-openrc-的发行版-安装-agent" aria-hidden="true">#</a></h3><p>本节内容由 <a href="https://github.com/unknwon0054" target="_blank" rel="noopener noreferrer">unknown0054</a> 贡献</p><ul><li>修改 SERVER、SECRET、TLS 然后在 shell 中执行</li></ul><div class="language-shell"><pre><code><span class="token function">cat</span> <span class="token operator">></span>/etc/init.d/nezha-agent<span class="token operator"><<</span> <span class="token string">EOF
|
||||
#!/sbin/openrc-run
|
||||
SERVER="" #Dashboard 地址 ip:port
|
||||
SECRET="" #SECRET
|
||||
TLS="" # 是否启用 tls 是 "--tls" 否留空
|
||||
NZ_BASE_PATH="/opt/nezha"
|
||||
NZ_AGENT_PATH="<span class="token variable">${NZ_BASE_PATH}</span>/agent"
|
||||
pidfile="/run/<span class="token variable">${RC_SVCNAME}</span>.pid"
|
||||
command="/opt/nezha/agent/nezha-agent"
|
||||
command_args="-s <span class="token variable">${SERVER}</span> -p <span class="token variable">${SECRET}</span> <span class="token variable">${TLS}</span>"
|
||||
command_background=true
|
||||
depend() {
|
||||
need net
|
||||
}
|
||||
checkconfig() {
|
||||
GITHUB_URL="github.com"
|
||||
if [ ! -f "<span class="token variable">${NZ_AGENT_PATH}</span>/nezha-agent" ]; then
|
||||
if [[ <span class="token variable"><span class="token variable">$(</span><span class="token function">uname</span> -m <span class="token operator">|</span> <span class="token function">grep</span> <span class="token string">'x86_64'</span><span class="token variable">)</span></span> != "" ]]; then
|
||||
os_arch="amd64"
|
||||
elif [[ <span class="token variable"><span class="token variable">$(</span><span class="token function">uname</span> -m <span class="token operator">|</span> <span class="token function">grep</span> <span class="token string">'i386\|i686'</span><span class="token variable">)</span></span> != "" ]]; then
|
||||
os_arch="386"
|
||||
elif [[ <span class="token variable"><span class="token variable">$(</span><span class="token function">uname</span> -m <span class="token operator">|</span> <span class="token function">grep</span> <span class="token string">'aarch64\|armv8b\|armv8l'</span><span class="token variable">)</span></span> != "" ]]; then
|
||||
os_arch="arm64"
|
||||
elif [[ <span class="token variable"><span class="token variable">$(</span><span class="token function">uname</span> -m <span class="token operator">|</span> <span class="token function">grep</span> <span class="token string">'arm'</span><span class="token variable">)</span></span> != "" ]]; then
|
||||
os_arch="arm"
|
||||
elif [[ <span class="token variable"><span class="token variable">$(</span><span class="token function">uname</span> -m <span class="token operator">|</span> <span class="token function">grep</span> <span class="token string">'s390x'</span><span class="token variable">)</span></span> != "" ]]; then
|
||||
os_arch="s390x"
|
||||
elif [[ <span class="token variable"><span class="token variable">$(</span><span class="token function">uname</span> -m <span class="token operator">|</span> <span class="token function">grep</span> <span class="token string">'riscv64'</span><span class="token variable">)</span></span> != "" ]]; then
|
||||
os_arch="riscv64"
|
||||
fi
|
||||
local version=<span class="token variable"><span class="token variable">$(</span><span class="token function">curl</span> -m <span class="token number">10</span> -sL <span class="token string">"https://api.github.com/repos/naiba/nezha/releases/latest"</span> <span class="token operator">|</span> <span class="token function">grep</span> <span class="token string">"tag_name"</span> <span class="token operator">|</span> <span class="token function">head</span> -n <span class="token number">1</span> <span class="token operator">|</span> <span class="token function">awk</span> -F <span class="token string">":"</span> <span class="token string">'{print $2}'</span> <span class="token operator">|</span> <span class="token function">sed</span> <span class="token string">'s/\"//g;s/,//g;s/ //g'</span><span class="token variable">)</span></span>
|
||||
if [ ! -n "<span class="token variable">$version</span>" ]; then
|
||||
version=<span class="token variable"><span class="token variable">$(</span><span class="token function">curl</span> -m <span class="token number">10</span> -sL <span class="token string">"https://fastly.jsdelivr.net/gh/naiba/nezha/"</span> <span class="token operator">|</span> <span class="token function">grep</span> <span class="token string">"option\.value"</span> <span class="token operator">|</span> <span class="token function">awk</span> -F <span class="token string">"'"</span> <span class="token string">'{print $2}'</span> <span class="token operator">|</span> <span class="token function">sed</span> <span class="token string">'s/naiba\/nezha@/v/g'</span><span class="token variable">)</span></span>
|
||||
fi
|
||||
if [ ! -n "<span class="token variable">$version</span>" ]; then
|
||||
version=<span class="token variable"><span class="token variable">$(</span><span class="token function">curl</span> -m <span class="token number">10</span> -sL <span class="token string">"https://gcore.jsdelivr.net/gh/naiba/nezha/"</span> <span class="token operator">|</span> <span class="token function">grep</span> <span class="token string">"option\.value"</span> <span class="token operator">|</span> <span class="token function">awk</span> -F <span class="token string">"'"</span> <span class="token string">'{print $2}'</span> <span class="token operator">|</span> <span class="token function">sed</span> <span class="token string">'s/naiba\/nezha@/v/g'</span><span class="token variable">)</span></span>
|
||||
fi
|
||||
if [ ! -n "<span class="token variable">$version</span>" ]; then
|
||||
echo -e "获取版本号失败,请检查本机能否链接 https://api.github.com/repos/naiba/nezha/releases/latest"
|
||||
return 0
|
||||
else
|
||||
echo -e "当前最新版本为: <span class="token variable">${version}</span>"
|
||||
fi
|
||||
wget -t 2 -T 10 -O nezha-agent_linux_<span class="token variable">${os_arch}</span>.zip https://<span class="token variable">${GITHUB_URL}</span>/naiba/nezha/releases/download/<span class="token variable">${version}</span>/nezha-agent_linux_<span class="token variable">${os_arch}</span>.zip >/dev/null 2>&1
|
||||
if [[ <span class="token variable">$?</span> != 0 ]]; then
|
||||
echo -e "Release 下载失败,请检查本机能否连接 <span class="token variable">${GITHUB_URL}</span><span class="token variable">${plain}</span>"
|
||||
return 0
|
||||
fi
|
||||
mkdir -p <span class="token variable">$NZ_AGENT_PATH</span>
|
||||
chmod 755 -R <span class="token variable">$NZ_AGENT_PATH</span>
|
||||
unzip -qo nezha-agent_linux_<span class="token variable">${os_arch}</span>.zip && mv nezha-agent <span class="token variable">$NZ_AGENT_PATH</span> && rm -rf nezha-agent_linux_<span class="token variable">${os_arch}</span>.zip README.md
|
||||
fi
|
||||
if [ ! -x "<span class="token variable">${NZ_AGENT_PATH}</span>/nezha-agent" ]; then
|
||||
chmod +x <span class="token variable">${NZ_AGENT_PATH}</span>/nezha-agent
|
||||
fi
|
||||
}
|
||||
start_pre() {
|
||||
if [ "<span class="token variable">${RC_CMD}</span>" != "restart" ]; then
|
||||
checkconfig || return <span class="token variable">$?</span>
|
||||
fi
|
||||
}
|
||||
EOF</span>
|
||||
</code></pre></div><ul><li><p>增加运行权限</p><div class="language-shell"><pre><code><span class="token function">chmod</span> +x /etc/init.d/nezha-agent
|
||||
</code></pre></div></li><li><p>运行 Nezha-Agent</p><div class="language-shell"><pre><code>rc-service nezha-agent start
|
||||
</code></pre></div></li><li><p>添加开机自启动</p><div class="language-shell"><pre><code>rc-update <span class="token function">add</span> nezha-agent
|
||||
</code></pre></div></li></ul><h3 id="在-windows-中安装-agent" tabindex="-1">在 Windows 中安装 Agent <a class="header-anchor" href="#在-windows-中安装-agent" aria-hidden="true">#</a></h3><ul><li>请参考社区文章:<br><a href="https://nyko.me/2020/12/13/nezha-windows-client.html" target="_blank" rel="noopener noreferrer">哪吒探针 - Windows 客户端安装</a><br><br></li></ul><h3 id="在-群晖dsm-中安装-agent" tabindex="-1">在 群晖DSM 中安装 Agent <a class="header-anchor" href="#在-群晖dsm-中安装-agent" aria-hidden="true">#</a></h3><ul><li><p>请参考社区文章:<br><a href="https://blog.mitsea.com/3929551d08bd4bb0a8baa453e2d92b0c/" target="_blank" rel="noopener noreferrer">群晖 DSM 7.x 安装 哪吒监控 Agent</a><br><a href="https://wl.gta5pdx.cn/archives/546/" target="_blank" rel="noopener noreferrer">哪吒探针——群晖客户端(被控端)安装教程</a></p></li><li><p>Systemd 实现 <em>仅适用于 DSM7</em>:</p><div class="language-sh"><pre><code># 客户端路径
|
||||
EXEC="/PATH/TO/nezha-agent"
|
||||
# 日志路径地址
|
||||
LOG="${EXEC}.log"
|
||||
# 额外执行参数, 可留空
|
||||
ARGS="--disable-command-execute"
|
||||
# 哪吒服务端GRPC地址
|
||||
SERVER="HOST_OR_IP:GRPC_PORT"
|
||||
# 上一步获取的主机密钥
|
||||
SECRET="APP_SECRET"
|
||||
# 服务运行用户名, *强烈建议使用非root用户执行*
|
||||
RUN_USER="nezha"
|
||||
|
||||
# 写入到systemd服务文件
|
||||
cat << EOF > /usr/lib/systemd/system/nezha.service
|
||||
[Unit]
|
||||
Description=Nezha Agent Service
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/bin/nohup ${EXEC} ${ARGS} -s ${SERVER} -p ${SECRET} &>> ${LOG} &
|
||||
ExecStop=ps -fe |grep nezha-agent|awk '{print \$2}'|xargs kill
|
||||
User=${RUN_USER}
|
||||
Restart=on-abort
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
# 重载服务
|
||||
systemctl daemon-reload
|
||||
# 启动服务
|
||||
systemctl start nezha
|
||||
# 服务自启动
|
||||
systemctl enable nezha
|
||||
</code></pre></div><p>‼️修改对应信息后‼️</p><p>使用 <code>root</code> 账号执行上述命令即可安装完成</p></li></ul><br><h3 id="在-macos-中安装-agent" tabindex="-1">在 MacOS 中安装 Agent <a class="header-anchor" href="#在-macos-中安装-agent" aria-hidden="true">#</a></h3><p><em><strong>本节内容改编自 <a href="https://blog.mitsea.com/e796f93db38d49e4b18df234c6ee75f5" target="_blank" rel="noopener noreferrer">Mitsea Blog</a>,改编已获得原作者授权</strong></em><br><br></p><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>安装过程中如提示“macOS 无法验证此 app“,请前往系统设置手动允许程序运行</p></div><ul><li>首先在管理面板中添加一台服务器</li><li>前往 <a href="https://github.com/naiba/nezha/releases" target="_blank" rel="noopener noreferrer">Release</a> 页下载 Agent 二进制文件,根据 CPU 架构选择下载 darwin amd64 还是 arm64 的 Agent<br> 如 Intel CPU 下载 amd64,Apple Silicon 下载 arm64 版本。下载完成后解压 Agent 二进制文件,如解压到下载文件夹</li><li>新建一个名为 <code>nezha_agent.plist</code> 的文件并保存,修改文件内容如下:</li></ul><div class="language-xml"><pre><code><span class="token prolog"><?xml version="1.0" encoding="UTF-8"?></span>
|
||||
<span class="token doctype"><span class="token punctuation"><!</span><span class="token doctype-tag">DOCTYPE</span> <span class="token name">plist</span> <span class="token name">PUBLIC</span> <span class="token string">"-//Apple//DTD PLIST 1.0//EN"</span> <span class="token string">"http://www.apple.com/DTDs/PropertyList-1.0.dtd"</span><span class="token punctuation">></span></span>
|
||||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>plist</span> <span class="token attr-name">version</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>1.0<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
|
||||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>dict</span><span class="token punctuation">></span></span>
|
||||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>key</span><span class="token punctuation">></span></span>KeepAlive<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>key</span><span class="token punctuation">></span></span>
|
||||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>true</span><span class="token punctuation">/></span></span>
|
||||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>key</span><span class="token punctuation">></span></span>Label<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>key</span><span class="token punctuation">></span></span>
|
||||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>string</span><span class="token punctuation">></span></span>nezha_agent<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>string</span><span class="token punctuation">></span></span>
|
||||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>key</span><span class="token punctuation">></span></span>Program<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>key</span><span class="token punctuation">></span></span>
|
||||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>string</span><span class="token punctuation">></span></span>在这里修改 Agent 二进制文件的的路径,如:/Users/123/Downloads/nezha-agent<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>string</span><span class="token punctuation">></span></span>
|
||||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>key</span><span class="token punctuation">></span></span>ProgramArguments<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>key</span><span class="token punctuation">></span></span>
|
||||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>array</span><span class="token punctuation">></span></span>
|
||||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>string</span><span class="token punctuation">></span></span>在这里修改 Agent 二进制文件的的路径,同上<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>string</span><span class="token punctuation">></span></span>
|
||||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>string</span><span class="token punctuation">></span></span>--password<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>string</span><span class="token punctuation">></span></span>
|
||||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>string</span><span class="token punctuation">></span></span>通信密钥,如:529664783eeb23cc25<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>string</span><span class="token punctuation">></span></span>
|
||||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>string</span><span class="token punctuation">></span></span>--server<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>string</span><span class="token punctuation">></span></span>
|
||||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>string</span><span class="token punctuation">></span></span>通信网址和RPC端口,如:data.example.com:5555<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>string</span><span class="token punctuation">></span></span>
|
||||
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>array</span><span class="token punctuation">></span></span>
|
||||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>key</span><span class="token punctuation">></span></span>RunAtLoad<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>key</span><span class="token punctuation">></span></span>
|
||||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>true</span><span class="token punctuation">/></span></span>
|
||||
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>dict</span><span class="token punctuation">></span></span>
|
||||
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>plist</span><span class="token punctuation">></span></span>
|
||||
</code></pre></div><ul><li>在 Terminal 中使用下面的命令加载 plist 文件到 launchd 里,<strong>注意替换文件路径</strong></li></ul><div class="language-shell"><pre><code>launchctl load /Users/123/Desktop/nezha_agent.plist
|
||||
</code></pre></div><ul><li>启动进程</li></ul><div class="language-shell"><pre><code>launchctl start nezha_agent
|
||||
</code></pre></div><ul><li>检查进程是否运行</li></ul><div class="language-shell"><pre><code>launchctl list <span class="token operator">|</span> <span class="token function">grep</span> nezha_agent
|
||||
</code></pre></div><ul><li>停止进程并移除</li></ul><div class="language-shell"><pre><code>launchctl stop nezha_agent
|
||||
</code></pre></div><div class="language-shell"><pre><code>launchctl remove nezha_agent
|
||||
</code></pre></div><br><h3 id="在-openwrt-中安装-agent" tabindex="-1">在 OpenWRT 中安装 Agent <a class="header-anchor" href="#在-openwrt-中安装-agent" aria-hidden="true">#</a></h3><p><strong>如何 一步到位,解决安装过程疑难杂症</strong></p><ul><li>请参考项目:<br><a href="https://github.com/dysf888/NZ-OpenWrt" target="_blank" rel="noopener noreferrer">NZ-OpenWrt</a><br><br></li></ul><p><strong>如何使 旧版 OpenWRT/LEDE 自启动</strong></p><ul><li>请参考项目:<br><a href="https://github.com/Erope/openwrt_nezha" target="_blank" rel="noopener noreferrer">哪吒监控 For OpenWRT</a><br><br></li></ul><p><strong>如何使 新版 OpenWRT 自启动?来自 @艾斯德斯</strong></p><ul><li>首先在 release 下载对应的二进制解压 zip 包后放置到 <code>/root</code></li><li>运行 <code>chmod +x /root/nezha-agent</code> 赋予执行权限,然后创建 <code>/etc/init.d/nezha-service</code>:</li></ul><div class="language-shell"><pre><code><span class="token shebang important">#!/bin/sh /etc/rc.common</span>
|
||||
|
||||
<span class="token assign-left variable">START</span><span class="token operator">=</span><span class="token number">99</span>
|
||||
<span class="token assign-left variable">USE_PROCD</span><span class="token operator">=</span><span class="token number">1</span>
|
||||
|
||||
<span class="token function-name function">start_service</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||||
procd_open_instance
|
||||
procd_set_param <span class="token builtin class-name">command</span> /root/nezha-agent -s 面板通信地址:端口 -p 秘钥 -d
|
||||
procd_set_param respawn
|
||||
procd_close_instance
|
||||
<span class="token punctuation">}</span>
|
||||
|
||||
<span class="token function-name function">stop_service</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||||
<span class="token function">killall</span> nezha-agent
|
||||
<span class="token punctuation">}</span>
|
||||
|
||||
<span class="token function-name function">restart</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||||
stop
|
||||
<span class="token function">sleep</span> <span class="token number">2</span>
|
||||
start
|
||||
<span class="token punctuation">}</span>
|
||||
</code></pre></div><ul><li>运行 <code>chmod +x /etc/init.d/nezha-service</code> 赋予执行权限</li><li>启动服务: <code>/etc/init.d/nezha-service enable && /etc/init.d/nezha-service start</code><br><br><br><br></li></ul><h2 id="faq" tabindex="-1">FAQ <a class="header-anchor" href="#faq" aria-hidden="true">#</a></h2><h3 id="agent-有-docker-镜像吗?" tabindex="-1">Agent 有 Docker 镜像吗? <a class="header-anchor" href="#agent-有-docker-镜像吗?" aria-hidden="true">#</a></h3><p><strong>Agent 目前没有推出 Docker 镜像。</strong><br> Agent 的设计思路和 Dashboard 相反,Dashboard 要尽可能不影响宿主机工作,但 Agent 则需要在宿主机中执行监控服务和运行命令。<br> 将 Agent 放入容器中确实可以继续执行监控任务,但 WebShell 等功能无法正常运行,因此不提供 Docker 镜像。</p></div></div><footer class="page-footer" data-v-7eddb2c4 data-v-07c132fc><div class="edit" data-v-07c132fc><div class="edit-link" data-v-07c132fc data-v-1ed99556><a class="link" href="https://github.com/nezhahq/nezhahq.github.io/edit/main/docs/guide/agent.md" target="_blank" rel="noopener noreferrer" data-v-1ed99556>在GitHub中编辑 <svg class="icon outbound icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15" data-v-1ed99556><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div></div><div class="updated" data-v-07c132fc><p class="last-updated" data-v-07c132fc data-v-abce3432><span class="prefix" data-v-abce3432>上次更新:</span><span class="datetime" data-v-abce3432></span></p></div></footer><div class="next-and-prev-link" data-v-7eddb2c4 data-v-38ede35f><div class="container" data-v-38ede35f><div class="prev" data-v-38ede35f><a class="link" href="/guide/dashboard" data-v-38ede35f><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" class="icon icon-prev" data-v-38ede35f><path d="M19,11H7.4l5.3-5.3c0.4-0.4,0.4-1,0-1.4s-1-0.4-1.4,0l-7,7c-0.1,0.1-0.2,0.2-0.2,0.3c-0.1,0.2-0.1,0.5,0,0.8c0.1,0.1,0.1,0.2,0.2,0.3l7,7c0.2,0.2,0.5,0.3,0.7,0.3s0.5-0.1,0.7-0.3c0.4-0.4,0.4-1,0-1.4L7.4,13H19c0.6,0,1-0.4,1-1S19.6,11,19,11z"></path></svg><span class="text" data-v-38ede35f>安装 Dashboard</span></a></div><div class="next" data-v-38ede35f><a class="link" href="/guide/servers" data-v-38ede35f><span class="text" data-v-38ede35f>主机</span><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" class="icon icon-next" data-v-38ede35f><path d="M19.9,12.4c0.1-0.2,0.1-0.5,0-0.8c-0.1-0.1-0.1-0.2-0.2-0.3l-7-7c-0.4-0.4-1-0.4-1.4,0s-0.4,1,0,1.4l5.3,5.3H5c-0.6,0-1,0.4-1,1s0.4,1,1,1h11.6l-5.3,5.3c-0.4,0.4-0.4,1,0,1.4c0.2,0.2,0.5,0.3,0.7,0.3s0.5-0.1,0.7-0.3l7-7C19.8,12.6,19.9,12.5,19.9,12.4z"></path></svg></a></div></div></div><!--[--><!--]--></div></main></div><!----><!--]--></div>
|
||||
<script>__VP_HASH_MAP__ = JSON.parse("{\"case_case1.md\":\"956a40f8\",\"case_case2.md\":\"4d834a0c\",\"case_case3.md\":\"85d1e1c0\",\"case_case4.md\":\"a5fb1d3d\",\"case_case5.md\":\"1d848f08\",\"case_index.md\":\"f4b9e618\",\"developer_index.md\":\"1d920d5e\",\"developer_l10n.md\":\"d42f1824\",\"developer_theme.md\":\"32336d93\",\"en_us_case_case1.md\":\"b1099816\",\"en_us_case_case2.md\":\"33204eeb\",\"en_us_case_case3.md\":\"1efbaa2b\",\"en_us_case_case4.md\":\"4f2828a8\",\"en_us_case_index.md\":\"6aa40f9f\",\"en_us_developer_index.md\":\"5a95ac08\",\"en_us_developer_l10n.md\":\"845f37b9\",\"en_us_developer_theme.md\":\"4d44f242\",\"en_us_guide_agent.md\":\"40cde11a\",\"en_us_guide_agentq.md\":\"8375be03\",\"en_us_guide_api.md\":\"2c0446dc\",\"en_us_guide_dashboard.md\":\"be69dfc3\",\"en_us_guide_dashboardq.md\":\"efd84150\",\"en_us_guide_loginq.md\":\"9b35f520\",\"en_us_guide_notifications.md\":\"d8574f81\",\"en_us_guide_q2.md\":\"3e6e1cdd\",\"en_us_guide_q3.md\":\"0f9a8389\",\"en_us_guide_q4.md\":\"3be05c03\",\"en_us_guide_q5.md\":\"37848528\",\"en_us_guide_q6.md\":\"a9435239\",\"en_us_guide_q7.md\":\"6accd74b\",\"en_us_guide_servers.md\":\"735e9397\",\"en_us_guide_services.md\":\"be09692c\",\"en_us_guide_settings.md\":\"4066d609\",\"en_us_guide_tasks.md\":\"f66d7e8d\",\"en_us_index.md\":\"43b5665f\",\"guide_agent.md\":\"4e71a28f\",\"guide_agentq.md\":\"0c0df351\",\"guide_api.md\":\"068d6940\",\"guide_dashboard.md\":\"6e93d7e8\",\"guide_dashboardq.md\":\"f24ebc9d\",\"guide_loginq.md\":\"bcca00e1\",\"guide_notifications.md\":\"cd6f64ca\",\"guide_q1.md\":\"54c60c52\",\"guide_q2.md\":\"b9912dcd\",\"guide_q3.md\":\"62b46b60\",\"guide_q4.md\":\"6aaac407\",\"guide_q5.md\":\"d30a059b\",\"guide_q6.md\":\"074f1740\",\"guide_q7.md\":\"92ad8104\",\"guide_servers.md\":\"20577d5f\",\"guide_services.md\":\"81eefc44\",\"guide_settings.md\":\"b4021a97\",\"guide_tasks.md\":\"d014d940\",\"index.md\":\"6967ecd8\"}")</script>
|
||||
<script type="module" async src="/assets/app.38e99b9a.js"></script>
|
||||
<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:'Meta';" 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="/" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->使用指南<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" 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/guide/agent.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="M3Line truncated
|
||||
<span class="line"><span style="color:#C3E88D;">#!/sbin/openrc-run</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;">SERVER="" #Dashboard 地址 ip:port</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;">SECRET="" #SECRET</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;">TLS="" # 是否启用 tls 是 "--tls" 否留空</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;">NZ_BASE_PATH="/opt/nezha"</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;">NZ_AGENT_PATH="</span><span style="color:#89DDFF;">${</span><span style="color:#A6ACCD;">NZ_BASE_PATH</span><span style="color:#89DDFF;">}</span><span style="color:#C3E88D;">/agent"</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;">pidfile="/run/</span><span style="color:#89DDFF;">${</span><span style="color:#A6ACCD;">RC_SVCNAME</span><span style="color:#89DDFF;">}</span><span style="color:#C3E88D;">.pid"</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;">command="/opt/nezha/agent/nezha-agent"</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;">command_args="-s </span><span style="color:#89DDFF;">${</span><span style="color:#A6ACCD;">SERVER</span><span style="color:#89DDFF;">}</span><span style="color:#C3E88D;"> -p </span><span style="color:#89DDFF;">${</span><span style="color:#A6ACCD;">SECRET</span><span style="color:#89DDFF;">}</span><span style="color:#C3E88D;"> </span><span style="color:#89DDFF;">${</span><span style="color:#A6ACCD;">TLS</span><span style="color:#89DDFF;">}</span><span style="color:#C3E88D;">"</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;">command_background=true</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;">depend() {</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;"> need net</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;">}</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;">checkconfig() {</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;"> GITHUB_URL="github.com"</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;"> if [ ! -f "</span><span style="color:#89DDFF;">${</span><span style="color:#A6ACCD;">NZ_AGENT_PATH</span><span style="color:#89DDFF;">}</span><span style="color:#C3E88D;">/nezha-agent" ]; then</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;"> if [[ </span><span style="color:#89DDFF;">$(</span><span style="color:#FFCB6B;">uname</span><span style="color:#C3E88D;"> -m </span><span style="color:#89DDFF;">|</span><span style="color:#C3E88D;"> </span><span style="color:#FFCB6B;">grep</span><span style="color:#C3E88D;"> </span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">x86_64</span><span style="color:#89DDFF;">')</span><span style="color:#C3E88D;"> != "" ]]; then</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;"> os_arch="amd64"</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;"> elif [[ </span><span style="color:#89DDFF;">$(</span><span style="color:#FFCB6B;">uname</span><span style="color:#C3E88D;"> -m </span><span style="color:#89DDFF;">|</span><span style="color:#C3E88D;"> </span><span style="color:#FFCB6B;">grep</span><span style="color:#C3E88D;"> </span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">i386\|i686</span><span style="color:#89DDFF;">')</span><span style="color:#C3E88D;"> != "" ]]; then</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;"> os_arch="386"</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;"> elif [[ </span><span style="color:#89DDFF;">$(</span><span style="color:#FFCB6B;">uname</span><span style="color:#C3E88D;"> -m </span><span style="color:#89DDFF;">|</span><span style="color:#C3E88D;"> </span><span style="color:#FFCB6B;">grep</span><span style="color:#C3E88D;"> </span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">aarch64\|armv8b\|armv8l</span><span style="color:#89DDFF;">')</span><span style="color:#C3E88D;"> != "" ]]; then</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;"> os_arch="arm64"</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;"> elif [[ </span><span style="color:#89DDFF;">$(</span><span style="color:#FFCB6B;">uname</span><span style="color:#C3E88D;"> -m </span><span style="color:#89DDFF;">|</span><span style="color:#C3E88D;"> </span><span style="color:#FFCB6B;">grep</span><span style="color:#C3E88D;"> </span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">arm</span><span style="color:#89DDFF;">')</span><span style="color:#C3E88D;"> != "" ]]; then</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;"> os_arch="arm"</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;"> elif [[ </span><span style="color:#89DDFF;">$(</span><span style="color:#FFCB6B;">uname</span><span style="color:#C3E88D;"> -m </span><span style="color:#89DDFF;">|</span><span style="color:#C3E88D;"> </span><span style="color:#FFCB6B;">grep</span><span style="color:#C3E88D;"> </span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">s390x</span><span style="color:#89DDFF;">')</span><span style="color:#C3E88D;"> != "" ]]; then</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;"> os_arch="s390x"</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;"> elif [[ </span><span style="color:#89DDFF;">$(</span><span style="color:#FFCB6B;">uname</span><span style="color:#C3E88D;"> -m </span><span style="color:#89DDFF;">|</span><span style="color:#C3E88D;"> </span><span style="color:#FFCB6B;">grep</span><span style="color:#C3E88D;"> </span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">riscv64</span><span style="color:#89DDFF;">')</span><span style="color:#C3E88D;"> != "" ]]; then</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;"> os_arch="riscv64"</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;"> fi</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;"> local version=</span><span style="color:#89DDFF;">$(</span><span style="color:#FFCB6B;">curl</span><span style="color:#C3E88D;"> -m </span><span style="color:#F78C6C;">10</span><span style="color:#C3E88D;"> -sL </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">https://api.github.com/repos/naiba/nezha/releases/latest</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;"> </span><span style="color:#89DDFF;">|</span><span style="color:#C3E88D;"> </span><span style="color:#FFCB6B;">grep</span><span style="color:#C3E88D;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">tag_name</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;"> </span><span style="color:#89DDFF;">|</span><span style="color:#C3E88D;"> </span><span style="color:#FFCB6B;">head</span><span style="color:#C3E88D;"> -n </span><span style="color:#F78C6C;">1</span><span style="color:#C3E88D;"> </span><span style="color:#89DDFF;">|</span><span style="color:#C3E88D;"> </span><span style="color:#FFCB6B;">awk</span><span style="color:#C3E88D;"> -F </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">:</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;"> </span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">{print $2}</span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;"> </span><span style="color:#89DDFF;">|</span><span style="color:#C3E88D;"> </span><span style="color:#FFCB6B;">sed</span><span style="color:#C3E88D;"> </span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">s/\"//g;s/,//g;s/ //g</span><span style="color:#89DDFF;">')</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;"> if [ ! -n "</span><span style="color:#A6ACCD;">$version</span><span style="color:#C3E88D;">" ]; then</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;"> version=</span><span style="color:#89DDFF;">$(</span><span style="color:#FFCB6B;">curl</span><span style="color:#C3E88D;"> -m </span><span style="color:#F78C6C;">10</span><span style="color:#C3E88D;"> -sL </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">https://fastly.jsdelivr.net/gh/naiba/nezha/</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;"> </span><span style="color:#89DDFF;">|</span><span style="color:#C3E88D;"> </span><span style="color:#FFCB6B;">grep</span><span style="color:#C3E88D;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">option\.value</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;"> </span><span style="color:#89DDFF;">|</span><span style="color:#C3E88D;"> </span><span style="color:#FFCB6B;">awk</span><span style="color:#C3E88D;"> -F </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">'</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;"> </span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">{print $2}</span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;"> </span><span style="color:#89DDFF;">|</span><span style="color:#C3E88D;"> </span><span style="color:#FFCB6B;">sed</span><span style="color:#C3E88D;"> </span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">s/naiba\/nezha@/v/g</span><span style="color:#89DDFF;">')</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;"> fi</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;"> if [ ! -n "</span><span style="color:#A6ACCD;">$version</span><span style="color:#C3E88D;">" ]; then</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;"> version=</span><span style="color:#89DDFF;">$(</span><span style="color:#FFCB6B;">curl</span><span style="color:#C3E88D;"> -m </span><span style="color:#F78C6C;">10</span><span style="color:#C3E88D;"> -sL </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">https://gcore.jsdelivr.net/gh/naiba/nezha/</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;"> </span><span style="color:#89DDFF;">|</span><span style="color:#C3E88D;"> </span><span style="color:#FFCB6B;">grep</span><span style="color:#C3E88D;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">option\.value</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;"> </span><span style="color:#89DDFF;">|</span><span style="color:#C3E88D;"> </span><span style="color:#FFCB6B;">awk</span><span style="color:#C3E88D;"> -F </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">'</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;"> </span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">{print $2}</span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;"> </span><span style="color:#89DDFF;">|</span><span style="color:#C3E88D;"> </span><span style="color:#FFCB6B;">sed</span><span style="color:#C3E88D;"> </span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">s/naiba\/nezha@/v/g</span><span style="color:#89DDFF;">')</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;"> fi</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;"> if [ ! -n "</span><span style="color:#A6ACCD;">$version</span><span style="color:#C3E88D;">" ]; then</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;"> echo -e "获取版本号失败,请检查本机能否链接 https://api.github.com/repos/naiba/nezha/releases/latest"</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;"> return 0</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;"> else</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;"> echo -e "当前最新版本为: </span><span style="color:#89DDFF;">${</span><span style="color:#A6ACCD;">version</span><span style="color:#89DDFF;">}</span><span style="color:#C3E88D;">"</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;"> fi</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;"> wget -t 2 -T 10 -O nezha-agent_linux_</span><span style="color:#89DDFF;">${</span><span style="color:#A6ACCD;">os_arch</span><span style="color:#89DDFF;">}</span><span style="color:#C3E88D;">.zip https://</span><span style="color:#89DDFF;">${</span><span style="color:#A6ACCD;">GITHUB_URL</span><span style="color:#89DDFF;">}</span><span style="color:#C3E88D;">/naiba/nezha/releases/download/</span><span style="color:#89DDFF;">${</span><span style="color:#A6ACCD;">version</span><span style="color:#89DDFF;">}</span><span style="color:#C3E88D;">/nezha-agent_linux_</span><span style="color:#89DDFF;">${</span><span style="color:#A6ACCD;">os_arch</span><span style="color:#89DDFF;">}</span><span style="color:#C3E88D;">.zip >/dev/null 2>&1</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;"> if [[ </span><span style="color:#A6ACCD;">$?</span><span style="color:#C3E88D;"> != 0 ]]; then</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;"> echo -e "Release 下载失败,请检查本机能否连接 </span><span style="color:#89DDFF;">${</span><span style="color:#A6ACCD;">GITHUB_URL</span><span style="color:#89DDFF;">}${</span><span style="color:#A6ACCD;">plain</span><span style="color:#89DDFF;">}</span><span style="color:#C3E88D;">"</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;"> return 0</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;"> fi</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;"> mkdir -p </span><span style="color:#A6ACCD;">$NZ_AGENT_PATH</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;"> chmod 755 -R </span><span style="color:#A6ACCD;">$NZ_AGENT_PATH</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;"> unzip -qo nezha-agent_linux_</span><span style="color:#89DDFF;">${</span><span style="color:#A6ACCD;">os_arch</span><span style="color:#89DDFF;">}</span><span style="color:#C3E88D;">.zip && mv nezha-agent </span><span style="color:#A6ACCD;">$NZ_AGENT_PATH</span><span style="color:#C3E88D;"> && rm -rf nezha-agent_linux_</span><span style="color:#89DDFF;">${</span><span style="color:#A6ACCD;">os_arch</span><span style="color:#89DDFF;">}</span><span style="color:#C3E88D;">.zip README.md</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;"> fi</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;"> if [ ! -x "</span><span style="color:#89DDFF;">${</span><span style="color:#A6ACCD;">NZ_AGENT_PATH</span><span style="color:#89DDFF;">}</span><span style="color:#C3E88D;">/nezha-agent" ]; then</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;"> chmod +x </span><span style="color:#89DDFF;">${</span><span style="color:#A6ACCD;">NZ_AGENT_PATH</span><span style="color:#89DDFF;">}</span><span style="color:#C3E88D;">/nezha-agent</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;"> fi</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;">}</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;">start_pre() {</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;"> if [ "</span><span style="color:#89DDFF;">${</span><span style="color:#A6ACCD;">RC_CMD</span><span style="color:#89DDFF;">}</span><span style="color:#C3E88D;">" != "restart" ]; then</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;"> checkconfig || return </span><span style="color:#A6ACCD;">$?</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;"> fi</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;">}</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;">EOF</span></span></code></pre></div><ul><li><p>增加运行权限</p><div class="language-shell"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">chmod</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">+x</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">/etc/init.d/nezha-agent</span></span></code></pre></div></li><li><p>运行 Nezha-Agent</p><div class="language-shell"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">rc-service</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">nezha-agent</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">start</span></span></code></pre></div></li><li><p>添加开机自启动</p><div class="language-shell"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">rc-update</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">add</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">nezha-agent</span></span></code></pre></div></li></ul><h3 id="在-windows-中安装-agent" tabindex="-1">在 Windows 中安装 Agent <a class="header-anchor" href="#在-windows-中安装-agent" aria-label="Permalink to "在 Windows 中安装 Agent""></a></h3><ul><li>请参考社区文章:<br><a href="https://nyko.me/2020/12/13/nezha-windows-client.html" target="_blank" rel="noreferrer">哪吒探针 - Windows 客户端安装</a><br><br></li></ul><h3 id="在-群晖dsm-中安装-agent" tabindex="-1">在 群晖DSM 中安装 Agent <a class="header-anchor" href="#在-群晖dsm-中安装-agent" aria-label="Permalink to "在 群晖DSM 中安装 Agent""></a></h3><ul><li><p>请参考社区文章:<br><a href="https://blog.mitsea.com/3929551d08bd4bb0a8baa453e2d92b0c/" target="_blank" rel="noreferrer">群晖 DSM 7.x 安装 哪吒监控 Agent</a><br><a href="https://wl.gta5pdx.cn/archives/546/" target="_blank" rel="noreferrer">哪吒探针——群晖客户端(被控端)安装教程</a></p></li><li><p>Systemd 实现 <em>仅适用于 DSM7</em>:</p><div class="language-sh"><button title="Copy Code" class="copy"></button><span class="lang">sh</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#676E95;font-style:italic;"># 客户端路径</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">EXEC</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">/PATH/TO/nezha-agent</span><span style="color:#89DDFF;">"</span></span>
|
||||
<span class="line"><span style="color:#676E95;font-style:italic;"># 日志路径地址</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">LOG</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">"${</span><span style="color:#A6ACCD;">EXEC</span><span style="color:#89DDFF;">}</span><span style="color:#C3E88D;">.log</span><span style="color:#89DDFF;">"</span></span>
|
||||
<span class="line"><span style="color:#676E95;font-style:italic;"># 额外执行参数, 可留空</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">ARGS</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">--disable-command-execute</span><span style="color:#89DDFF;">"</span></span>
|
||||
<span class="line"><span style="color:#676E95;font-style:italic;"># 哪吒服务端GRPC地址</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">SERVER</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">HOST_OR_IP:GRPC_PORT</span><span style="color:#89DDFF;">"</span></span>
|
||||
<span class="line"><span style="color:#676E95;font-style:italic;"># 上一步获取的主机密钥</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">SECRET</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">APP_SECRET</span><span style="color:#89DDFF;">"</span></span>
|
||||
<span class="line"><span style="color:#676E95;font-style:italic;"># 服务运行用户名, *强烈建议使用非root用户执行*</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">RUN_USER</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">nezha</span><span style="color:#89DDFF;">"</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#676E95;font-style:italic;"># 写入到systemd服务文件</span></span>
|
||||
<span class="line"><span style="color:#FFCB6B;">cat</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;"><<</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">EOF</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">></span><span style="color:#A6ACCD;"> /usr/lib/systemd/system/nezha.service</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;">[Unit]</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;">Description=Nezha Agent Service</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;">After=network.target</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#C3E88D;">[Service]</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;">Type=simple</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;">ExecStart=/bin/nohup </span><span style="color:#89DDFF;">${</span><span style="color:#A6ACCD;">EXEC</span><span style="color:#89DDFF;">}</span><span style="color:#C3E88D;"> </span><span style="color:#89DDFF;">${</span><span style="color:#A6ACCD;">ARGS</span><span style="color:#89DDFF;">}</span><span style="color:#C3E88D;"> -s </span><span style="color:#89DDFF;">${</span><span style="color:#A6ACCD;">SERVER</span><span style="color:#89DDFF;">}</span><span style="color:#C3E88D;"> -p </span><span style="color:#89DDFF;">${</span><span style="color:#A6ACCD;">SECRET</span><span style="color:#89DDFF;">}</span><span style="color:#C3E88D;"> &>> </span><span style="color:#89DDFF;">${</span><span style="color:#A6ACCD;">LOG</span><span style="color:#89DDFF;">}</span><span style="color:#C3E88D;"> &</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;">ExecStop=ps -fe |grep nezha-agent|awk '{print </span><span style="color:#A6ACCD;">\$</span><span style="color:#C3E88D;">2}'|xargs kill</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;">User=</span><span style="color:#89DDFF;">${</span><span style="color:#A6ACCD;">RUN_USER</span><span style="color:#89DDFF;">}</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;">Restart=on-abort</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#C3E88D;">[Install]</span></span>
|
||||
<span class="line"><span style="color:#C3E88D;">WantedBy=multi-user.target</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;">EOF</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#676E95;font-style:italic;"># 重载服务</span></span>
|
||||
<span class="line"><span style="color:#FFCB6B;">systemctl</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">daemon-reload</span></span>
|
||||
<span class="line"><span style="color:#676E95;font-style:italic;"># 启动服务</span></span>
|
||||
<span class="line"><span style="color:#FFCB6B;">systemctl</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">start</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">nezha</span></span>
|
||||
<span class="line"><span style="color:#676E95;font-style:italic;"># 服务自启动</span></span>
|
||||
<span class="line"><span style="color:#FFCB6B;">systemctl</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">enable</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">nezha</span></span></code></pre></div><p>‼️修改对应信息后‼️</p><p>使用 <code>root</code> 账号执行上述命令即可安装完成</p></li></ul><br><h3 id="在-macos-中安装-agent" tabindex="-1">在 MacOS 中安装 Agent <a class="header-anchor" href="#在-macos-中安装-agent" aria-label="Permalink to "在 MacOS 中安装 Agent""></a></h3><p><em><strong>本节内容改编自 <a href="https://blog.mitsea.com/e796f93db38d49e4b18df234c6ee75f5" target="_blank" rel="noreferrer">Mitsea Blog</a>,改编已获得原作者授权</strong></em><br><br></p><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>安装过程中如提示“macOS 无法验证此 app“,请前往系统设置手动允许程序运行</p></div><ul><li>首先在管理面板中添加一台服务器</li><li>前往 <a href="https://github.com/naiba/nezha/releases" target="_blank" rel="noreferrer">Release</a> 页下载 Agent 二进制文件,根据 CPU 架构选择下载 darwin amd64 还是 arm64 的 Agent<br> 如 Intel CPU 下载 amd64,Apple Silicon 下载 arm64 版本。下载完成后解压 Agent 二进制文件,如解压到下载文件夹</li><li>新建一个名为 <code>nezha_agent.plist</code> 的文件并保存,修改文件内容如下:</li></ul><div class="language-xml"><button title="Copy Code" class="copy"></button><span class="lang">xml</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;"><?</span><span style="color:#F07178;">xml</span><span style="color:#C792EA;"> version</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">1.0</span><span style="color:#89DDFF;">"</span><span style="color:#C792EA;"> encoding</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">UTF-8</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">?></span></span>
|
||||
<span class="line"><span style="color:#89DDFF;"><!</span><span style="color:#F78C6C;">DOCTYPE</span><span style="color:#89DDFF;"> </span><span style="color:#A6ACCD;">plist</span><span style="color:#89DDFF;"> PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"></span></span>
|
||||
<span class="line"><span style="color:#89DDFF;"><</span><span style="color:#F07178;">plist</span><span style="color:#89DDFF;"> </span><span style="color:#C792EA;">version</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">1.0</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">></span></span>
|
||||
<span class="line"><span style="color:#89DDFF;"><</span><span style="color:#F07178;">dict</span><span style="color:#89DDFF;">></span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;"><</span><span style="color:#F07178;">key</span><span style="color:#89DDFF;">></span><span style="color:#A6ACCD;">KeepAlive</span><span style="color:#89DDFF;"></</span><span style="color:#F07178;">key</span><span style="color:#89DDFF;">></span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;"><</span><span style="color:#F07178;">true</span><span style="color:#89DDFF;">/></span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;"><</span><span style="color:#F07178;">key</span><span style="color:#89DDFF;">></span><span style="color:#A6ACCD;">Label</span><span style="color:#89DDFF;"></</span><span style="color:#F07178;">key</span><span style="color:#89DDFF;">></span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;"><</span><span style="color:#F07178;">string</span><span style="color:#89DDFF;">></span><span style="color:#A6ACCD;">nezha_agent</span><span style="color:#89DDFF;"></</span><span style="color:#F07178;">string</span><span style="color:#89DDFF;">></span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;"><</span><span style="color:#F07178;">key</span><span style="color:#89DDFF;">></span><span style="color:#A6ACCD;">Program</span><span style="color:#89DDFF;"></</span><span style="color:#F07178;">key</span><span style="color:#89DDFF;">></span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;"><</span><span style="color:#F07178;">string</span><span style="color:#89DDFF;">></span><span style="color:#A6ACCD;">在这里修改 Agent 二进制文件的的路径,如:/Users/123/Downloads/nezha-agent</span><span style="color:#89DDFF;"></</span><span style="color:#F07178;">string</span><span style="color:#89DDFF;">></span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;"><</span><span style="color:#F07178;">key</span><span style="color:#89DDFF;">></span><span style="color:#A6ACCD;">ProgramArguments</span><span style="color:#89DDFF;"></</span><span style="color:#F07178;">key</span><span style="color:#89DDFF;">></span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;"><</span><span style="color:#F07178;">array</span><span style="color:#89DDFF;">></span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;"><</span><span style="color:#F07178;">string</span><span style="color:#89DDFF;">></span><span style="color:#A6ACCD;">在这里修改 Agent 二进制文件的的路径,同上</span><span style="color:#89DDFF;"></</span><span style="color:#F07178;">string</span><span style="color:#89DDFF;">></span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;"><</span><span style="color:#F07178;">string</span><span style="color:#89DDFF;">></span><span style="color:#A6ACCD;">--password</span><span style="color:#89DDFF;"></</span><span style="color:#F07178;">string</span><span style="color:#89DDFF;">></span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;"><</span><span style="color:#F07178;">string</span><span style="color:#89DDFF;">></span><span style="color:#A6ACCD;">通信密钥,如:529664783eeb23cc25</span><span style="color:#89DDFF;"></</span><span style="color:#F07178;">string</span><span style="color:#89DDFF;">></span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;"><</span><span style="color:#F07178;">string</span><span style="color:#89DDFF;">></span><span style="color:#A6ACCD;">--server</span><span style="color:#89DDFF;"></</span><span style="color:#F07178;">string</span><span style="color:#89DDFF;">></span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;"><</span><span style="color:#F07178;">string</span><span style="color:#89DDFF;">></span><span style="color:#A6ACCD;">通信网址和RPC端口,如:data.example.com:5555</span><span style="color:#89DDFF;"></</span><span style="color:#F07178;">string</span><span style="color:#89DDFF;">></span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;"></</span><span style="color:#F07178;">array</span><span style="color:#89DDFF;">></span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;"><</span><span style="color:#F07178;">key</span><span style="color:#89DDFF;">></span><span style="color:#A6ACCD;">RunAtLoad</span><span style="color:#89DDFF;"></</span><span style="color:#F07178;">key</span><span style="color:#89DDFF;">></span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;"><</span><span style="color:#F07178;">true</span><span style="color:#89DDFF;">/></span></span>
|
||||
<span class="line"><span style="color:#89DDFF;"></</span><span style="color:#F07178;">dict</span><span style="color:#89DDFF;">></span></span>
|
||||
<span class="line"><span style="color:#89DDFF;"></</span><span style="color:#F07178;">plist</span><span style="color:#89DDFF;">></span></span></code></pre></div><ul><li>在 Terminal 中使用下面的命令加载 plist 文件到 launchd 里,<strong>注意替换文件路径</strong></li></ul><div class="language-shell"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">launchctl</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">load</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">/Users/123/Desktop/nezha_agent.plist</span></span></code></pre></div><ul><li>启动进程</li></ul><div class="language-shell"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">launchctl</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">start</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">nezha_agent</span></span></code></pre></div><ul><li>检查进程是否运行</li></ul><div class="language-shell"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">launchctl</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">list</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">|</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">grep</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">nezha_agent</span></span></code></pre></div><ul><li>停止进程并移除</li></ul><div class="language-shell"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">launchctl</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">stop</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">nezha_agent</span></span></code></pre></div><div class="language-shell"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">launchctl</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">remove</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">nezha_agent</span></span></code></pre></div><br><h3 id="在-openwrt-中安装-agent" tabindex="-1">在 OpenWRT 中安装 Agent <a class="header-anchor" href="#在-openwrt-中安装-agent" aria-label="Permalink to "在 OpenWRT 中安装 Agent""></a></h3><p><strong>如何 一步到位,解决安装过程疑难杂症</strong></p><ul><li>请参考项目:<br><a href="https://github.com/dysf888/NZ-OpenWrt" target="_blank" rel="noreferrer">NZ-OpenWrt</a><br><br></li></ul><p><strong>如何使 旧版 OpenWRT/LEDE 自启动</strong></p><ul><li>请参考项目:<br><a href="https://github.com/Erope/openwrt_nezha" target="_blank" rel="noreferrer">哪吒监控 For OpenWRT</a><br><br></li></ul><p><strong>如何使 新版 OpenWRT 自启动?来自 @艾斯德斯</strong></p><ul><li>首先在 release 下载对应的二进制解压 zip 包后放置到 <code>/root</code></li><li>运行 <code>chmod +x /root/nezha-agent</code> 赋予执行权限,然后创建 <code>/etc/init.d/nezha-service</code>:</li></ul><div class="language-shell"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#676E95;font-style:italic;">#!/bin/sh /etc/rc.common</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">START</span><span style="color:#89DDFF;">=</span><span style="color:#F78C6C;">99</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">USE_PROCD</span><span style="color:#89DDFF;">=</span><span style="color:#F78C6C;">1</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#82AAFF;">start_service</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:#FFCB6B;">procd_open_instance</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">procd_set_param</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">command</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">/root/nezha-agent</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-s</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">面板通信地址:端口</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-p</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">秘钥</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-d</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">procd_set_param</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">respawn</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">procd_close_instance</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;">}</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#82AAFF;">stop_service</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:#FFCB6B;">killall</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">nezha-agent</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;">}</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#82AAFF;">restart</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:#FFCB6B;">stop</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">sleep</span><span style="color:#A6ACCD;"> </span><span style="color:#F78C6C;">2</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">start</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;">}</span></span></code></pre></div><ul><li>运行 <code>chmod +x /etc/init.d/nezha-service</code> 赋予执行权限</li><li>启动服务: <code>/etc/init.d/nezha-service enable && /etc/init.d/nezha-service start</code><br><br><br><br></li></ul><h2 id="faq" tabindex="-1">FAQ <a class="header-anchor" href="#faq" aria-label="Permalink to "FAQ""></a></h2><h3 id="agent-有-docker-镜像吗" tabindex="-1">Agent 有 Docker 镜像吗? <a class="header-anchor" href="#agent-有-docker-镜像吗" aria-label="Permalink to "Agent 有 Docker 镜像吗?""></a></h3><p><strong>Agent 目前没有推出 Docker 镜像。</strong><br> Agent 的设计思路和 Dashboard 相反,Dashboard 要尽可能不影响宿主机工作,但 Agent 则需要在宿主机中执行监控服务和运行命令。<br> 将 Agent 放入容器中确实可以继续执行监控任务,但 WebShell 等功能无法正常运行,因此不提供 Docker 镜像。</p></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/guide/agent.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-06-19T15:56:07.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="/guide/dashboard.html" data-v-face870a><span class="desc" data-v-face870a>Previous page</span><span class="title" data-v-face870a>安装 Dashboard</span></a></div><div class="has-prev pager" data-v-face870a><a class="pager-link next" href="/guide/servers.html" data-v-face870a><span class="desc" data-v-face870a>Next page</span><span class="title" data-v-face870a>主机</span></a></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="copyright" data-v-f7fc41f4>Copyright © 2022-present Nezhahq</p></div></footer><!--[--><!--]--></div></div>
|
||||
<script>__VP_HASH_MAP__ = JSON.parse("{\"case_case1.md\":\"ecc14085\",\"en_us_guide_api.md\":\"23c9cbfd\",\"en_us_guide_dashboard.md\":\"d78e0670\",\"en_us_developer_theme.md\":\"71386f12\",\"en_us_guide_notifications.md\":\"f27b667a\",\"en_us_guide_loginq.md\":\"9b2c983a\",\"en_us_guide_q2.md\":\"7d419ac0\",\"en_us_guide_q3.md\":\"413034ab\",\"en_us_guide_q4.md\":\"29c73660\",\"en_us_guide_q5.md\":\"6147bc60\",\"en_us_guide_q6.md\":\"5546f36f\",\"en_us_guide_q7.md\":\"e3e49f45\",\"en_us_guide_servers.md\":\"15cdd004\",\"en_us_guide_services.md\":\"496a9331\",\"en_us_guide_settings.md\":\"a3fde31e\",\"case_case2.md\":\"6c7d5ccf\",\"case_case3.md\":\"5e4a3d1d\",\"case_case4.md\":\"9da898b3\",\"case_case5.md\":\"8d0f657b\",\"en_us_guide_agentq.md\":\"79461295\",\"en_us_guide_agent.md\":\"ec3cceee\",\"en_us_guide_tasks.md\":\"2f23de0e\",\"en_us_index.md\":\"a2928aa3\",\"guide_agent.md\":\"aa1597de\",\"guide_agentq.md\":\"58353381\",\"guide_dashboard.md\":\"2c7ebc9c\",\"guide_dashboardq.md\":\"45324b02\",\"guide_loginq.md\":\"b86b5d13\",\"guide_notifications.md\":\"c2a46afe\",\"case_index.md\":\"490516a2\",\"developer_index.md\":\"50de2d0d\",\"developer_l10n.md\":\"97d82e33\",\"developer_theme.md\":\"3f733e73\",\"en_us_case_case1.md\":\"4184634e\",\"en_us_case_case2.md\":\"a2d0c610\",\"guide_q1.md\":\"da6990ac\",\"en_us_case_case3.md\":\"6c813a79\",\"en_us_case_index.md\":\"c59e34c7\",\"en_us_developer_index.md\":\"722364da\",\"en_us_developer_l10n.md\":\"830faa6a\",\"en_us_guide_dashboardq.md\":\"f8c0f2c4\",\"guide_q2.md\":\"dc262f4e\",\"guide_q3.md\":\"5b71ea6c\",\"guide_q4.md\":\"d3d700bd\",\"guide_q5.md\":\"8c32a6a8\",\"guide_q6.md\":\"468b73f3\",\"guide_q7.md\":\"46c4299c\",\"guide_servers.md\":\"38e933fe\",\"guide_services.md\":\"8e52c9c8\",\"guide_settings.md\":\"0b01b850\",\"guide_api.md\":\"b7dd76b3\",\"guide_tasks.md\":\"9090b413\",\"index.md\":\"c741ff17\",\"en_us_case_case4.md\":\"b17c51fa\"}")
|
||||
__VP_SITE_DATA__ = JSON.parse("{\"lang\":\"zh-CN\",\"dir\":\"ltr\",\"title\":\"VitePress\",\"description\":\"A VitePress site\",\"base\":\"/\",\"head\":[],\"appearance\":true,\"themeConfig\":{\"algolia\":{\"appId\":\"HP6QF6KMZD\",\"apiKey\":\"fb8bae9ed373d1057e0c07fcf32b3f1a\",\"indexName\":\"nezhahq\"},\"footer\":{\"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. Nezha server over Argo tunnel 白嫖利器\",\"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 O&M tool\",\"link\":\"/en_US/\",\"themeConfig\":{\"lastUpdatedText\":\"Last Updated\",\"editLink\":{\"text\":\"Edit this page on GitHub\",\"pattern\":\"https://github.com/nezhahq/nezhahq.github.io/edit/main/docs/:path\"},\"nav\":[{\"text\":\"User Guide\",\"link\":\"/en_US/\",\"activeMatch\":\"^/en_US/guide/\"},{\"text\":\Line truncated
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Reference in new issue
Block a user