alpine如何安装nezha-agent
接上文,alpine小鸡上的v2ray, nginx处理完了,现在开始整nezha探针。nezha-agent已经在64M的小鸡上成功平稳运行,不过32M的就算了,别折腾了。nezha-agent还挺耗资源的。
PS:64M的alpine小鸡可玩性还是挺大的,最后还给小鸡加了个ufw防火墙,一直运行完好。alpine对小内存的小鸡来说,真是YYDS!
准备工作:
脚本里使用了curl命令,所以需要在小鸡里先安装curl
apk add curl
在nezha dashboard里新建一只小鸡,然后得到secret key
编辑配置文件,文件内容除了标红的位置外,其他的跟官网一致。如果出现不确定的问题,可以基于官方的内容重新编辑一下。尤其要注意一下各行,以免在你的脚本里出现异常的换行。
小技巧:如何判断使用哪个配置文件,在Nezha面板上,创建完小鸡,可以“点击复制”Linux的一键安装脚本,点击复制后,粘贴到一个文本编辑器里,观察
curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh -o nezha.sh && chmod +x nezha.sh && sudo ./nezha.sh install_agent Domain-Name 443 Secret-Key --tls
如果是如上图的,查看标红位置,这个--tls是关键字,说明Nezha面板已经启动tls了,使用第一个配置文件。否则使用第二个配置文件,TLS的位置留空。
其实如果是root用户运行的话,在其他普通的Linux(Debian系,RSLE系等)上,完全可以自己DIY一下,去除sudo命令,添加一些其他的参数来减少小鸡的负载,最后变成如下所示,放在ssh里直接运行:
curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh -o nezha.sh && chmod +x nezha.sh && ./nezha.sh install_agent Domain-Name 443 Secret-Key --tls --report-delay 4 --skip-conn --skip-procs
国内镜像:
curl -L https://jihulab.com/nezha/nezha/-/raw/master/script/install.sh -o nezha.sh && chmod +x nezha.sh && CN=true ./nezha.sh install_agent Domain-Name 443 Secret-Key --tls --report-delay 4 --skip-conn --skip-procs
TLS已经启动
vi /etc/init.d/nezha-agent
#!/sbin/openrc-run
SERVER="Domain-Name:443" #Dashboard 地址 ip:port
SECRET="SECRET-KEY" #SECRET
TLS="--tls" # 是否启用 tls 是 "--tls" 否留空
NZ_BASE_PATH="/opt/nezha"
NZ_AGENT_PATH="${NZ_BASE_PATH}/agent"
pidfile="/run/${RC_SVCNAME}.pid"
command="/opt/nezha/agent/nezha-agent"
command_args="-s ${SERVER} -p ${SECRET} ${TLS} --report-delay 4 --skip-conn --skip-procs"
command_background=true
depend() {
need net
}
checkconfig() {
GITHUB_URL="github.com"
if [ ! -f "${NZ_AGENT_PATH}/nezha-agent" ]; then
if [[ $(uname -m | grep 'x86_64') != "" ]]; then
os_arch="amd64"
elif [[ $(uname -m | grep 'i386\|i686') != "" ]]; then
os_arch="386"
elif [[ $(uname -m | grep 'aarch64\|armv8b\|armv8l') != "" ]]; then
os_arch="arm64"
elif [[ $(uname -m | grep 'arm') != "" ]]; then
os_arch="arm"
elif [[ $(uname -m | grep 's390x') != "" ]]; then
os_arch="s390x"
elif [[ $(uname -m | grep 'riscv64') != "" ]]; then
os_arch="riscv64"
fi
local version=$(curl -m 10 -sL "https://api.github.com/repos/naiba/nezha/releases/latest" | grep "tag_name" | head -n 1 | awk -F ":" '{print $2}' | sed 's/\"//g;s/,//g;s/ //g')
if [ ! -n "$version" ]; then
version=$(curl -m 10 -sL "https://fastly.jsdelivr.net/gh/naiba/nezha/" | grep "option\.value" | awk -F "'" '{print $2}' | sed 's/naiba\/nezha@/v/g')
fi
if [ ! -n "$version" ]; then
version=$(curl -m 10 -sL "https://gcore.jsdelivr.net/gh/naiba/nezha/" | grep "option\.value" | awk -F "'" '{print $2}' | sed 's/naiba\/nezha@/v/g')
fi
if [ ! -n "$version" ]; then
echo -e "获取版本号失败,请检查本机能否链接 https://api.github.com/repos/naiba/nezha/releases/latest"
return 0
else
echo -e "当前最新版本为: ${version}"
fi
wget -t 2 -T 10 -O nezha-agent_linux_${os_arch}.zip https://${GITHUB_URL}/naiba/nezha/releases/download/${version}/nezha-agent_linux_${os_arch}.zip >/dev/null 2>&1
if [[ $? != 0 ]]; then
echo -e "Release 下载失败,请检查本机能否连接 ${GITHUB_URL}${plain}"
return 0
fi
mkdir -p $NZ_AGENT_PATH
chmod 755 -R $NZ_AGENT_PATH
unzip -qo nezha-agent_linux_${os_arch}.zip && mv nezha-agent $NZ_AGENT_PATH && rm -rf nezha-agent_linux_${os_arch}.zip README.md
fi
if [ ! -x "${NZ_AGENT_PATH}/nezha-agent" ]; then
chmod +x ${NZ_AGENT_PATH}/nezha-agent
fi
}
start_pre() {
if [ "${RC_CMD}" != "restart" ]; then
checkconfig || return $?
fi
}
chmod +x /etc/init.d/nezha-agent && rc-update add nezha-agent && rc-service nezha-agent start
rc-service nezha-agent status
看看nezha-agent是否运行,再去dashboard上查看下小鸡是否在线
再上一个未开始tls的配置
#!/sbin/openrc-run
SERVER="IP-Address:Port" #Dashboard 地址 ip:port
SECRET="SECRET-KEY" #SECRET
TLS="" # 是否启用 tls 是 "--tls" 否留空
NZ_BASE_PATH="/opt/nezha"
NZ_AGENT_PATH="${NZ_BASE_PATH}/agent"
pidfile="/run/${RC_SVCNAME}.pid"
command="/opt/nezha/agent/nezha-agent"
command_args="-s ${SERVER} -p ${SECRET} ${TLS} --report-delay 4 --skip-conn --skip-procs"
command_background=true
depend() {
need net
}
checkconfig() {
GITHUB_URL="github.com"
if [ ! -f "${NZ_AGENT_PATH}/nezha-agent" ]; then
if [[ $(uname -m | grep 'x86_64') != "" ]]; then
os_arch="amd64"
elif [[ $(uname -m | grep 'i386\|i686') != "" ]]; then
os_arch="386"
elif [[ $(uname -m | grep 'aarch64\|armv8b\|armv8l') != "" ]]; then
os_arch="arm64"
elif [[ $(uname -m | grep 'arm') != "" ]]; then
os_arch="arm"
elif [[ $(uname -m | grep 's390x') != "" ]]; then
os_arch="s390x"
elif [[ $(uname -m | grep 'riscv64') != "" ]]; then
os_arch="riscv64"
fi
local version=$(curl -m 10 -sL "https://api.github.com/repos/naiba/nezha/releases/latest" | grep "tag_name" | head -n 1 | awk -F ":" '{print $2}' | sed 's/\"//g;s/,//g;s/ //g')
if [ ! -n "$version" ]; then
version=$(curl -m 10 -sL "https://fastly.jsdelivr.net/gh/naiba/nezha/" | grep "option\.value" | awk -F "'" '{print $2}' | sed 's/naiba\/nezha@/v/g')
fi
if [ ! -n "$version" ]; then
version=$(curl -m 10 -sL "https://gcore.jsdelivr.net/gh/naiba/nezha/" | grep "option\.value" | awk -F "'" '{print $2}' | sed 's/naiba\/nezha@/v/g')
fi
if [ ! -n "$version" ]; then
echo -e "获取版本号失败,请检查本机能否链接 https://api.github.com/repos/naiba/nezha/releases/latest"
return 0
else
echo -e "当前最新版本为: ${version}"
fi
wget -t 2 -T 10 -O nezha-agent_linux_${os_arch}.zip https://${GITHUB_URL}/naiba/nezha/releases/download/${version}/nezha-agent_linux_${os_arch}.zip >/dev/null 2>&1
if [[ $? != 0 ]]; then
echo -e "Release 下载失败,请检查本机能否连接 ${GITHUB_URL}${plain}"
return 0
fi
mkdir -p $NZ_AGENT_PATH
chmod 755 -R $NZ_AGENT_PATH
unzip -qo nezha-agent_linux_${os_arch}.zip && mv nezha-agent $NZ_AGENT_PATH && rm -rf nezha-agent_linux_${os_arch}.zip README.md
fi
if [ ! -x "${NZ_AGENT_PATH}/nezha-agent" ]; then
chmod +x ${NZ_AGENT_PATH}/nezha-agent
fi
}
start_pre() {
if [ "${RC_CMD}" != "restart" ]; then
checkconfig || return $?
fi
}
chmod +x /etc/init.d/nezha-agent && rc-update add nezha-agent && rc-service nezha-agent start
rc-service nezha-agent status
看看nezha-agent是否运行,再去dashboard上查看下小鸡是否在线
PS:命令行里面加了--report-delay 4 --skip-conn --skip-procs,以来减少nezha的消耗,官网提供了参数的详细解析。
--report-delay
控制系统信息上报的间隔,默认为 1 秒,可以设置为 3 来进一步降低 agent 端系统资源占用(配置区间 1-4)--skip-conn
不监控连接数,推荐 机场/连接密集型 服务器或CPU占用较高的服务器设置--skip-procs
不监控进程数,也可以降低 Agent 占用--disable-auto-update
禁止 自动更新 Agent(安全特性)--disable-force-update
禁止 强制更新 Agent(安全特性)--disable-command-execute
禁止在 Agent 上执行定时任务、打开在线终端(安全特性)--tls
启用 SSL/TLS 加密(使用 nginx 反向代理 Agent 的 grpc 连接,并且 nginx 开启 SSL/TLS 时,需要启用该项配置)
发现nezha-agent不能自动更新版本,原因未知,估计以后会修复吧。
临时解决方案:
删除掉现有的nezha-agent(# rm -rf /opt/nezha/agent/nezha-agent),执行rc-service nezha-agent restart;或者直接重启小鸡,默认会自动下载最新版本的nezha-agent。
此文最后更新于2022-12-01
-
Telegram Me via Bot-
Comments
Post a Comment