nezha,哪吒探针v1版之serv00安装

简介

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
最后更新于 Mar 20, 2025 12:35 +0800
页面浏览量Loading
网站总访客数:Loading
网站总访问量:Loading
使用 Hugo 构建
主题 StackJimmy 设计
-->