又是一款系统探针程序.用了一段时间了.感觉很不错!

教程更新时间: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://dl.wxlost.com/tools/nezha/nezha.sh -O ~/nezha.sh
bash tz.sh

你也可以将脚本里agent的下载地址改成自己编译的