由於我以前秉承著雞蛋不放一個籃子裡面,並且商家做一些活動賣一些年付機器也比較划算,就不停的買小雞,最多手裡有二十幾台機器 性能機杜甫小雞都有。以前基本不给小雞上針,手裡捏著一二十台也懶得去聚合到一起管理,我覺得也沒多大用處,頂多這個伺服器上跑了某個程序掛了域名,弄個監控告警就完事了。
現在目前還有十幾台小雞,最近掛上了哪吒探針 看著莫名的爽。
去年年初在 CLOUDCONE 買的幾台垃圾小雞,到今年年初自動扣信用卡了,由於是年費不得不用了,好在現在也都利用起來了。
在線時間都比較新,用前我都喜歡重裝一下系統。
搭建教程:#
哪吒探針官方文檔:https://nezha.wiki/
GitHub:https://github.com/naiba/nezha
準備好一台 vps 小雞作為面板端,再準備幾台 vps 小雞作為監控端。
解析兩條域名到面板端,一條可以套 CDN 作為面板端訪問,一條不能套作為通信端的通信(使用伺服器 IP 也是可以的),CDN 需要支持 WebSocket 協議。
準備 nginx 反向代理用於域名訪問,寶塔面板來反向代理也是可以的。
搭建面板端#
獲取 Github 的 Client ID 和密鑰
因為哪吒監控接入 Github、Gitlab、Gitee 作為後台管理員賬號,所以我們需要創建一個第三方登錄應用。
這裡使用 GitHub 作為演示(先打開 GitHub 頁面登錄):
再打開:https://github.com/settings/developers 依次選擇 “OAuth Apps” - “New OAuth App”
Application name
- 隨意填寫Homepage URL
- 填寫面板的訪問域名
如:"http://cdn.example.com" (你的域名)Authorization callback URL
- 填寫回調地址
如:"http://cdn.example.com/oauth2/callback" (不要忘記/oauth2/callback
)
點擊 “Register application”
保存頁面中的 Client ID,然後點擊 “Generate a new client secret“,創建一個新的 Client Secret,新建的密鑰僅會顯示一次,請妥善保存。請看下圖:
在伺服器中安裝面板端#
在面板伺服器中,運行安裝腳本:
curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh -o nezha.sh && chmod +x nezha.sh && sudo ./nezha.sh
如果你的面板伺服器位於中國大陸,可以使用鏡像:
curl -L https://gitee.com/naibahq/nezha/raw/master/script/install.sh -o nezha.sh && chmod +x nezha.sh && sudo CN=true ./nezha.sh
-
等待 Docker 安裝完畢後,分別輸入以下值:
-
OAuth 提供商 - Github,Gitlab,Gitee 中選擇一個
-
Client ID - 之前保存的 Client ID
-
Client Secret - 之前保存的密鑰
-
用戶名 - OAuth 提供商中的用戶名
-
站點標題 - 自定義站點標題
-
訪問端口 - 公開訪問端口,可自定義,默認 8008
-
Agent 的通信端口 - Agent 與 Dashboard 的通信端口,默認 5555
-
輸入完成後,等待拉取鏡像
-
安裝結束後,如果一切正常,此時你可以訪問域名 + 端口號,如 “http://cdn.example.com:8008” 來查看面板
-
將來如果需要再次運行腳本,可以運行:
./nezha.sh
來打開管理腳本。
配置反向代理
在寶塔面板中新建一個站點,域名填寫公開訪問域名,如 “http://cdn.example.com“ ,然後點擊 “設置” 進入站點設置選項,選擇 “反向代理” - “新建反向代理”
自定義一個代理名稱,在下方 “目標 URL” 中填入 http://127.0.0.1 然後點擊 “保存”
打開剛剛新建的反向代理右邊的 “配置文件”,將配置文件替換為以下內容:
#PROXY-START/
location / {
proxy_pass http://127.0.0.1:8008;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
}
location ~ ^/(ws|terminal/.+)$ {
proxy_pass http://127.0.0.1:8008;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $http_host;
}
#PROXY-END/
點擊 “保存” 現在,你應該可以直接使用域名,如:“http://cdn.example.com“ 來訪問面板了。
搭建監控端#
目前哪吒監控已支持在 Windows 和 Linux 上一鍵安裝 Agent,你可以很輕鬆的在伺服器上部署它。
準備工作#
你需要提前在管理面板中設置好通信域名,此域名不可以接入 CDN,這裡以示例通信域名 “data.example.com” 來做演示
進入後台管理面板,轉到 “設置” 頁,在 “未接入 CDN 的面板伺服器域名 / IP” 項中填入通信域名,然後點擊 "保存"
在 Linux 中一鍵安裝 (Ubuntu、Debian、CentOS)#
首先在管理面板中添加一台伺服器
點擊新添加的伺服器旁,綠色的 Linux 圖標按鈕,複製一鍵安裝命令
在被控端伺服器中運行複製的一鍵安裝命令,等待安裝完成後返回到 Dashboard 主頁查看伺服器是否上線。
在 Windows 中一鍵安裝#
首先在管理面板中添加一台伺服器
點擊新添加的伺服器旁,綠色的 Windows 圖標按鈕,複製一鍵安裝命令
進入 Windows 伺服器,運行 PowerShell,在 PowerShell 中運行複製的安裝命令
如遇到確認「執行策略變更」請選擇 Y
等待安裝完成後返回 Dashboard 主頁查看伺服器是否上線
其他方式安裝 Agent(監控端)#
在 Linux 中安裝
首先在管理面板中添加一台伺服器
在被控伺服器中,運行腳本(位於中國大陸的伺服器請使用鏡像):
curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh -o nezha.sh && chmod +x nezha.sh && sudo ./nezha.sh
如果你的被控伺服器位於中國大陸,可以使用鏡像:
curl -L https://gitee.com/naibahq/nezha/raw/master/script/install.sh -o nezha.sh && chmod +x nezha.sh && sudo CN=true ./nezha.sh
- 選擇 “安裝監控 Agent”
- 輸入通信域名,如:”data.example.com“
- 輸入面板通信端口( gRPC 端口),默認為 5555
- 輸入 Agent 密鑰,Agent 密鑰在管理面板中添加伺服器時生成,可以在管理面板中的 “伺服器” 頁中找到
- 等待安裝完成後返回 Dashboard 主頁查看伺服器是否上線
在 Windows 中手動安裝#
請參考社區文章:哪吒探針 - Windows 客戶端安裝
國內無法安裝監控端#
如果你使用官方的鏡像腳本去安裝可能會出現和我一樣的情況:
以下內容來自 nezha.sh
NZ_BASE_PATH="/opt/nezha"
NZ_AGENT_PATH="${NZ_BASE_PATH}/agent"
NZ_AGENT_SERVICE="/etc/systemd/system/nezha-agent.service"
- "/opt/nezha" 為面板核心的存放目錄,包括 Dashboard 和 Agent
- "/opt/nezha/agent" 結合上文,此目錄就為代理端核心文件的存放位置
- "/etc/systemd/system/nezha-agent.service"
- 對 Liunx 系統比較熟悉的小夥伴就會知道這個文件決定的哪吒代理端的開機啟動
操作步驟#
請自行從:https://api.github.com/repos/nezhahq/agent/releases/latest 上下載 nezha-agent 到本地,選擇你的系統版本的壓縮包 解壓出來會有一個二進制的文件。
在伺服器上創建"/opt/nezha/agent"
目錄,將 nezha-agent 放入 然後執行:
chmod +x nezha-agent
在 "/etc/systemd/system/"
目錄新建一個nezha-agent.service
文件,把下面的代碼替換然後保存進去:
[Unit]
Description=Nezha Agent
After=syslog.target
#After=network.target
#After=nezha-dashboard.service
[Service]
# Modify these two values and uncomment them if you have
# repos with lots of files and get an HTTP error 500 because
# of that
###
#LimitMEMLOCK=infinity
#LimitNOFILE=65535
Type=simple
User=root
Group=root
WorkingDirectory=/opt/nezha/agent/
ExecStart=/opt/nezha/agent/nezha-agent -s 1.1.1.1:5555 -p 密鑰
Restart=always
#Environment=DEBUG=true
# Some distributions may not support these hardening directives. If you cannot start the service due
# to an unknown option, comment out the ones not supported by your version of systemd.
#ProtectSystem=full
#PrivateDevices=yes
#PrivateTmp=yes
#NoNewPrivileges=true
[Install]
WantedBy=multi-user.target
把1.1.1.1:5555
和密鑰替換成你自己的,最後執行下面的命令:
systemctl daemon-reload
systemctl enable nezha-agent
systemctl restart nezha-agent
最後刷新哪吒探針的後台就能看見小雞上線啦。