简介
Dashboard 地址:https://github.com/nezhahq/nezha
Agent 地址:https://github.com/nezhahq/agent
一键脚本-agent
交互安装
1
2
|
bash -c "$(curl -sL https://raw.githubusercontent.com/muyiacc/serv00-nezha/main/nezha-agent.sh)" \
-- install
|
无交互安装
1
2
3
4
5
|
PANEL_ADDRESS="example:8008" \
SERVER_KEY="iK3Snw4Ev78MzM" \
ENABLE_TLS=false \
bash -c "$(curl -sL https://raw.githubusercontent.com/muyiacc/serv00-nezha/main/nezha-agent.sh)" \
-- install
|
指定 UUID
1
2
3
4
5
6
|
PANEL_ADDRESS="example:8008" \
SERVER_KEY="iK3Snw4Ev78MzM" \
ENABLE_TLS=false \
UUID="6c3fe883-055b-11f0-8047-3cecef19f58c" \
bash -c "$(curl -sL https://raw.githubusercontent.com/muyiacc/serv00-nezha/main/nezha-agent.sh)" \
-- install
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
|
#!/bin/sh
# 定义变量
NEZHA_AGENT_DIR="$HOME/.nezha/agent"
NEZHA_AGENT_EXECUTABLE="$NEZHA_AGENT_DIR/nezha-agent"
NEZHA_START_SCRIPT="$NEZHA_AGENT_DIR/start.sh"
NEZHA_LOG_FILE="$NEZHA_AGENT_DIR/nezha-agent.log"
# 默认值,可以被 curl 覆盖
PANEL_ADDRESS="面板域名或者ip:端口"
SERVER_KEY="服务器密钥"
# 函数:启动哪吒探针
start_nezha_agent() {
echo "启动哪吒探针..."
nohup "$NEZHA_AGENT_EXECUTABLE" "-s" "$PANEL_ADDRESS" "-p" "$SERVER_KEY" "--tls" > "$NEZHA_LOG_FILE" 2>&1 &
echo "哪吒探针已在后台启动,日志文件:$NEZHA_LOG_FILE"
}
# 函数:停止哪吒探针
stop_nezha_agent() {
echo "停止哪吒探针..."
# 查找哪吒探针的进程 ID 并杀死它
PID=$(ps aux | grep "$NEZHA_AGENT_EXECUTABLE" | grep -v grep | awk '{print $2}')
if [ -n "$PID" ]; then
kill -9 "$PID"
echo "哪吒探针进程 (PID: $PID) 已被杀死。"
else
echo "没有找到正在运行的哪吒探针进程。"
fi
}
# 函数:处理 curl 请求
handle_curl_request() {
if [ -n "$1" ]; then
case "$1" in
panel_address)
PANEL_ADDRESS="$2"
echo "面板地址已更新为: $PANEL_ADDRESS"
;;
server_key)
SERVER_KEY="$2"
echo "服务器密钥已更新"
;;
start)
start_nezha_agent
;;
stop)
stop_nezha_agent
;;
restart)
stop_nezha_agent
sleep 2 # 等待进程结束
start_nezha_agent
;;
*)
echo "无效的参数: $1"
echo "用法: curl 'http://<服务器IP>:<端口>?panel_address=你的面板地址&server_key=你的密钥&start'"
echo " curl 'http://<服务器IP>:<端口>?stop'"
echo " curl 'http://<服务器IP>:<端口>?restart'"
exit 1
;;
esac
else
echo "没有提供参数。"
echo "用法: curl 'http://<服务器IP>:<端口>?panel_address=你的面板地址&server_key=你的密钥&start'"
echo " curl 'http://<服务器IP>:<端口>?stop'"
echo " curl 'http://<服务器IP>:<端口>?restart'"
exit 1
fi
}
# 创建目录(如果不存在)
mkdir -p "$NEZHA_AGENT_DIR"
# 创建启动脚本
cat > "$NEZHA_START_SCRIPT" <<EOL
#!/bin/sh
nohup "$NEZHA_AGENT_EXECUTABLE" "-s" "$PANEL_ADDRESS" "-p" "$SERVER_KEY" "--tls" > "$NEZHA_LOG_FILE" 2>&1 &
EOL
# 赋予执行权限
chmod +x "$NEZHA_START_SCRIPT"
# 检查是否需要处理 curl 请求
if [ -n "$QUERY_STRING" ]; then
# 解析 QUERY_STRING
IFS='&' read -r -a PARAMS <<< "$QUERY_STRING"
for PARAM in "${PARAMS[@]}"; do
IFS='=' read -r KEY VALUE <<< "$PARAM"
case "$KEY" in
panel_address)
PANEL_ADDRESS="$VALUE"
;;
server_key)
SERVER_KEY="$VALUE"
;;
action)
ACTION="$VALUE"
;;
esac
done
# 根据 action 调用相应的函数
case "$ACTION" in
start)
start_nezha_agent
;;
stop)
stop_nezha_agent
;;
restart)
stop_nezha_agent
sleep 2
start_nezha_agent
;;
*)
echo "无效的 action: $ACTION"
exit 1
;;
esac
else
# 如果没有 curl 请求,则默认启动哪吒探针
start_nezha_agent
fi
exit 0
|
Agent
安装
下载解压
1
|
mkdir -p $HOME/.nezha/tmp $HOME/.nezha/agent
|
1
|
curl -sL https://github.com/nezhahq/agent/releases/download/v1.9.6/nezha-agent_freebsd_amd64.zip -o $HOME/.nezha/tmp/nezha-agent_freebsd_amd64.zip
|
1
|
unzip $HOME/.nezha/tmp/nezha-agent_freebsd_amd64.zip -d $HOME/.nezha/agent
|
赋予运行权限
1
|
chmod +x $HOME/.nezha/agent/nezha-agent
|
创建配置文件
1
|
vim $HOME/.nezha/agent/config.yml
|
填入以下内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
client_secret: 安全密钥
debug: false
disable_auto_update: false
disable_command_execute: false
disable_force_update: false
disable_nat: false
disable_send_query: false
gpu: false
insecure_tls: false
ip_report_period: 0
report_delay: 0
self_update_period: 0
server: 服务地址
skip_connection_count: false
skip_procs_count: false
temperature: false
tls: 服务是否使用tls连接
use_gitee_to_upgrade: false
use_ipv6_country_code: false
uuid: 随机uuid
|
- client_secret:安全密钥
- server:面板设置的连接地址
- tls:面板设置的连接是否启用 tls
- uuid:随机的 UUID
启动
1
|
$HOME/.nezha/agent/nezha-agent -c $HOME/.nezha/agent/config.yml
|
编写启动脚本
1
|
vim $HOME/.nezha/agent/start.sh
|
修改下面的内容后保存
1
2
|
#!/bin/sh
nohup $HOME/.nezha/agent/nezha-agent -c $HOME/.nezha/agent/config.yml > $HOME/.nezha/agent/nezha-agent.log 2>&1 &
|
1
|
chmod +x $HOME/.nezha/agent/start.sh
|
启动
1
|
$HOME/.nezha/agent/start.sh
|
卸载
1
2
3
4
5
6
7
|
## 停止服务
killall nezha-agent
## 删除 agent 文件夹
rm -rf $HOME/.nezha/agent/
## 删除整个哪吒文件夹
rm -rf $HOME/.nezha
|