---
title: Docker部署哪吒监控
published: 2025-01-10
tags: [Docker, 教程]
category: 教程
draft: false
---

### 简介

哪吒监控是一款开源的轻量化的服务器监控和运维工具，提供实时性能监控与告警通知。


1：安装Docker参考我博客的教程

2：创建`docker-compose.yml`文件写入如下配置
```
services:
  dashboard:
    image: ghcr.io/nezhahq/nezha
    restart: always
    ports:
      - "127.0.0.1:8008:8008"
    volumes:
      - ./data:/dashboard/data
```
监听本地防止被扫端口

然后`docker compose up -d`启动

3：我选择使用`caddy`作为web服务，简单方便，安装命令如下

使用apt包一键安装caddy：
```
sudo apt install -yq debian-keyring debian-archive-keyring apt-transport-https curl && curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg && curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list && sudo apt update -q && sudo apt install -yq caddy
```
4：写入`Caddyfile`反代配置
```
example.com {
    reverse_proxy /proto.NezhaService/* h2c://127.0.0.1:8008
    
    reverse_proxy /* 127.0.0.1:8008
}
```
注意替换你的域名，caddy会自动配置证书，启动caddy后就部署完成了。

5：哪吒面板配置

后台路径`/dashboard`默认用户名密码`admin` `admin`，进入后台后首先修改用户名和密码，必须修改强密码，因为如果被爆破后你的小鸡将会被恶意者完全掌控。

然后到设置里配置面板后台Agent对接地址，示例：`example.com:443`，并选中`使用 TLS 连接`

如果你要套cf cdn，则域名设置里的网络需要开启`grpc`选项，并且SSL加密模式改成完全。

6：国内网络环境说明

哪吒官方镜像托管在github，国内网络拉取很慢，可以使用南京大学的镜像加速，`docker-compose.yml`示例
```
services:
  dashboard:
    image: ghcr.nju.edu.cn/nezhahq/nezha
    restart: always
    ports:
      - "127.0.0.1:8008:8008"
    volumes:
      - ./data:/dashboard/data
```
国内环境安装Docker也可以参考我博客的教程

国内小鸡安装Agent请替换哪吒官方的码云地址，将复制出来的Agent安装脚本替换如下地址即可，其他参数不变
```
https://gitee.com/naibahq/scripts/raw/main/agent/install.sh
```

**卸载v1版本的Agent方法**

v1版本的Agent多次安装不会覆盖，而是会出现多个重复监控的情况，所以我提供一下卸载干净的方法
```
# 停止并禁用
sudo systemctl stop nezha-agent.service
sudo systemctl disable nezha-agent.service

# 删除服务文件
rm -f /etc/systemd/system/nezha-a*.service
rm -f /lib/systemd/system/nezha-a*.service

# 删除相关文件夹
sudo rm -rf /opt/nezha

# 重新加载 systemd
sudo systemctl daemon-reload

# 验证服务是否有残留
systemctl list-units --type=service | grep nezha
```
