import{_ as n,c as a,o as t,a as s}from"./app.3817bf4e.js";const k='{"title":"Install Agent using one-click script","description":"","frontmatter":{},"headers":[{"level":2,"title":"Install Agent using one-click script","slug":"install-agent-using-one-click-script"},{"level":3,"title":"Preparation","slug":"preparation"},{"level":3,"title":"One-click installation on Linux (Ubuntu, Debian, CentOS)","slug":"one-click-installation-on-linux-ubuntu-debian-centos"},{"level":3,"title":"One-click installation on Windows","slug":"one-click-installation-on-windows"},{"level":2,"title":"Other ways to install Agent","slug":"other-ways-to-install-agent"},{"level":3,"title":"Installing Agent on Linux (Ubuntu, Debian, CentOS)","slug":"installing-agent-on-linux-ubuntu-debian-centos"},{"level":3,"title":"Installing Agent on other Linux (such as alpine use oprec not systemd)","slug":"installing-agent-on-other-linux-such-as-alpine-use-oprec-not-systemd"},{"level":3,"title":"Installing Agent on Windows","slug":"installing-agent-on-windows"},{"level":3,"title":"Installing Agent on Synology DSM","slug":"installing-agent-on-synology-dsm"},{"level":3,"title":"Installing Agent on MacOS","slug":"installing-agent-on-macos"},{"level":3,"title":"Installing Agent on OpenWRT","slug":"installing-agent-on-openwrt"},{"level":2,"title":"FAQ","slug":"faq"},{"level":3,"title":"Is there a Docker image for Agent?","slug":"is-there-a-docker-image-for-agent"}],"relativePath":"en_US/guide/agent.md","lastUpdated":1678899700000}',e={},o=s(`
The service in the monitored server is called Agent. This document will describe how to install the Agent on the monitored server and connect it with Dashboard
Nezha Monitoring now supports one-click installation of the Agent on Windows and Linux. Follow the steps in this document and you can easily deploy it on your server
First of all, you need to set up the communication domain name in the settings page of the admin panel, this domain name can not connect to the CDN, here is the sample communication domain name "data.example.com" mentioned earlier for demonstration
Enter the administration panel, go to the "Settings" page, in the item "CDN Bypassed Domain/IP ", fill in the communication domain name, and then click "Save"
curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install_en.sh -o nezha.sh && chmod +x nezha.sh && sudo ./nezha.sh
Select \u201CInstall_agent\u201D
Input the communication domain name, e.g. "data.example.com"
Input RPC port, default is 5555
Input the Agent Secret, which is generated when adding a server in the administration panel and can be found in the " Servers " page of the administration panel
Wait for the installation to complete and return to the Dashboard home page to see if the server is online
Contributed by unknown0054
cat >/etc/init.d/nezha-agent<< EOF
#!/sbin/openrc-run
SERVER="" #Dashboard address ip:port
SECRET="" #SECRET
TLS="" # Enable tls? yes:"--tls" no:""
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}"
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 "Failed to get the version number, please check if the network can connect to https://api.github.com/repos/naiba/nezha/releases/latest"
return 0
else
echo -e "The current latest version is: \${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 download failed, please check if the network can connect to \${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
}
EOF
Add execute permission
chmod +x /etc/init.d/nezha-agent
Run Nezha-Agent
rc-service nezha-agent-hy start
Set self-start after boot
rc-update add nezha-agent
Please refer to the community article:
\u7FA4\u6656 DSM 7.x \u5B89\u88C5 \u54EA\u5412\u76D1\u63A7 Agent (Chinese)
\u54EA\u5412\u63A2\u9488\u2014\u2014\u7FA4\u6656\u5BA2\u6237\u7AEF\uFF08\u88AB\u63A7\u7AEF\uFF09\u5B89\u88C5\u6559\u7A0B (Chinese)
Using Systemd Only available on DSM7:
# Path of the agent binary file.
EXEC="/PATH/TO/nezha-agent"
# Path of the agent's log.
LOG="\${EXEC}.log"
# Extend arguments, can be blank.
ARGS="--disable-command-execute"
# The address of nezha server's GRPC.
SERVER="HOST_OR_IP:GRPC_PORT"
# The token of host.
SECRET="APP_SECRET"
# Specify \`run_as\` user. * Strongly suggest NOT use \`root\`! *
RUN_USER="nezha"
# Create the service file.
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
# Reload services
systemctl daemon-reload
# Start the agent service
systemctl start nezha
# Enable auto-start
systemctl enable nezha
\u203C\uFE0FDO IT WHEN YOU HAVE MODIFIED THE ENVS\u203C\uFE0F
Using root
to execute command above, that's all.
This section is adapted from Mitsea Blog, with permission from the original author
WARNING
If you are prompted with "macOS cannot verify this app" during installation, please go to system settings to allow the app to run.
nezha_agent.plist
and save it, edit the contents of the file:<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>nezha_agent</string>
<key>Program</key>
<string>Change the path of the Agent binary here, e.g. /Users/123/Downloads/nezha-agent</string>
<key>ProgramArguments</key>
<array>
<string>Change the path of the Agent binary here, e.g. /Users/123/Downloads/nezha-agent</string>
<string>--password</string>
<string>Communication Secret, eg: 529664783eeb23cc25</string>
<string>--server</string>
<string>Communication URL and RPC port, eg:data.example.com:5555</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
launchctl load /Users/123/Desktop/nezha_agent.plist
launchctl start nezha_agent
launchctl list | grep nezha_agent
launchctl stop nezha_agent
launchctl remove nezha_agent
How to solve various problems during the installation process in one step
How to make the old version of OpenWRT/LEDE self-boot?
How to make the new version of OpenWRT self-boot? By @\u827E\u65AF\u5FB7\u65AF
/root
chmod +x /root/nezha-agent
to give it execute access, create file /etc/init.d/nezha-service
\uFF1A#!/bin/sh /etc/rc.common
START=99
USE_PROCD=1
start_service() {
procd_open_instance
procd_set_param command /root/nezha-agent -s data.example.com:5555 -p secreat -d
procd_set_param respawn
procd_close_instance
}
stop_service() {
killall nezha-agent
}
restart() {
stop
sleep 2
start
}
chmod +x /etc/init.d/nezha-service
/etc/init.d/nezha-service enable && /etc/init.d/nezha-service start
There is currently no Docker image for Agent.
The Agent is designed to be the opposite of the Dashboard, in that the Dashboard is designed to work without affecting the server as much as possible, while the Agent needs to execute monitoring services and run commands in the server.
Putting the Agent in a container does continue to execute monitoring services, but features such as WebShell do not work, so we do not provide Docker image of the Agent.