又是一款系统探针程序.用了一段时间了.感觉很不错!
教程更新时间:2021年4月26日
演示地址:哪吒面板 (naibahq.com)
naiba/nezha: 「哪吒面板」便携探针 (github.com)

服务期状态监控,被动接收(非 node-exporter 那种主动拉取的方式。)
系统设计
C/S 采用 gRPC 通信,客户端通过添加主机生成的单独 Token 上报监控信息。因为不会做成多用户的,上报信息会储存到内存中,暂不提供历史数据统计。
- 首次连接:上报基本信息(系统、CPU基本信息),后面管理员可从客户端主动拉取更新。
- 监控上报:每隔 3s 向服务器上报系统信息
目前可以使用作者提供的docker模式一键搭建,也可以go编译后直接运行主程序.这里我选用了编译的
原作者开发的docker脚本
curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh -o nezha.sh && chmod +x nezha.sh
sudo ./nezha.sh
安装编译所需依赖:
Centos7
yum -y install wget git gcc make
安装go编译环境:
wget https://golang.org/dl/go1.16.2.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.16.2.linux-amd64.tar.gz
echo "export PATH=$PATH:/usr/local/go/bin" >>/etc/profile
source /etc/profile
获取github源码
cd ~
git clone https://github.com/p14yground/nezha.git
探针分为dashboard面板和agent客户端,只需要简单编译即可获得。
编译
编译dashboard:
cd nezha
go mod tidy -v
go build cmd/dashboard/main.go
然后主目录会生成一个main的可执行文件,在/root下创建两个目录用于存放编译好的dashboard和agent,并把编译好的dashboard移动到对应目录。
mkdir -p /root/{dashboard,agent}
mv main /root/dashboard/
编译agent,一句话就好了,生成的二进制文件也移动到agent目录方便以后直接用:
2021年4月26日 目前自行编译需要设置版本号的,不然后端会自动退出
简单的方法是把 你的目录/cmd/agent/main.go
里面的
dao.Version = string
改成 (版本号可自定义)
dao.Version = "0.5.0"
然后再编译,就不会报错了
go build cmd/agent/main.go
mv main /root/agent/agent
编写dashboard配置文件:
# 首先复制源码里的页面源码到dashboard目录下,复制后可以修改dashboard里的页面内容与logo
cp -ra resource /root/dashboard/
写入配置文件,请将对应的内容修改为你的信息在粘贴到ssh,可能需要删除掉注释
# 创建配置文件目录
mkdir /root/dashboard/data/
# 写入
cat > /root/dashboard/data/config.yaml<<-EOF
debug: true
httpport: 8080
oauth2:
type: "github" #Oauth2 登录接入类型,gitee/github
admin: "你的帐号登录名" #管理员列表,半角逗号隔开
clientid: "nz_github_oauth_client_id" # 在 https://github.com/settings/developers 创建,无需审核 Callback 填 http(s)://域名或IP/oauth2/callback
clientsecret: "nz_github_oauth_client_secret"
site:
brand: "探针"
cookiename: "cookiename" #浏览器 Cookie 字段名,可不改
theme: "default"
EOF
其中github id、clientid和clientsecret需要在GitHub获取,具体方法如下:
在设置中找到oauth apps创建一个新的应用:

填写站点名称和URL信息:

github的id 为你的英文名
复制client id和client secret:

配置完毕后,启动监控面板。
cd /root/dashboard/
./main
启动后访问自己配置的域名和httpport端口,登录github账号然后添加需要监控的服务器,这里我们就以监控本机为例:

记录下面板生成的ID和密钥:
然后我们运行agent,-i参数接面板上生成的id,-p参数接密钥即可:
# 注意,监控端口为5555
cd /root/agent/
./agent -i 1 -s localhost:5555 -p 12a1c9abbc -d
这个探针没有复杂的配置,要监控其他小鸡直接把编译好的agent文件复制过去运行就行了。
一键配置后端脚本
cd ~ && wget https://blog.wxlost.com/tools/nezha/nezha.sh -O ~/nezha.sh
bash tz.sh
你也可以将脚本里agent的下载地址改成自己编译的
