首页 Docker导航 Amprobe

Amprobe

轻量级主机及 Docker容器监控工具,容器管理、主机管理、镜像的导入、导出、删除,虚悬镜像清理等功能。
容器管理 主机管理
2025-06-14 22:40
中文
168 人使用

Amprobe是一款轻量级主机及Docker容器监控工具,它可以轻松的帮助我们完成以下几方面的工作:

容器管理

查看 Docker 版本信息

Docker 镜像源设置

容器的创建、启动、停止、重启、删除,查看容器日志

查看容器运行状态,包括各容器的 CPU、内存使用情况

镜像的导入、导出、删除,虚悬镜像清理

网络的创建、删除、查看网络状态

主机管理

查看主机名称、启动时间、发行版本、内核版本、系统类型

查看主机 CPU 使用率、内存使用率、磁盘使用率、网络流量

系统时间、系统时区设置、重启、关机

用户管理

用户查看、新建、编辑、删除(admin 管理用户禁止编辑)

用户角色列表、角色接口权限查看

API 接口列表

审计日志

查看用户登录、登出、操作记录

查看系统日志(如告警记录等)

技术栈

Amprobe 采用前后端分离的技术架构。

前端技术栈:

Vue3

TypeScript

Element+

Vue-router

Pinia

后端技术栈:

Golang

Fiber

Sqlite

系统部署

一、docker-compose.yaml代码

新建文件夹路径/volume1/amprobe,在/volume1/amprobe文件夹中新建或上传

docker-compose.yml

config.toml

init.yaml

nginx.conf

等共4个文件,并将相应的代码复制进去。

init.yaml代码(可选配置),主要是初始化账号密码

users:
  - username: cgakki  # 管理员,拥有启停容器的权限,非管理员则没有
    password: 666666
    status: 1
    is_admin: 1
  - username: amprobe
    password: 666666
    status: 1
    is_admin: 0

compose.yml代码,主要是启动项目需要

version: '3'
services:
  amprobe:
    image: amuluze/amprobe:v1.3.3
    container_name: amprobe
    network_mode: "host"
    restart: always
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /proc:/host/proc:ro
      - /sys:/host/sys:ro
      - /dev:/host/dev:ro
      - ./config.toml:/app/configs/config.toml
      - ./init.yaml:/app/configs/init.yaml
      - ./nginx.conf:/etc/nginx/nginx.conf

config.toml代码(可选配置),主要是初始化配置文档

[Fiber]
# http监听地址
Host = "0.0.0.0"
# http监听端口
Port = 8000
# http优雅关闭等待超时时长(单位秒)
ShutdownTimeout = 30
SeverHeader = "probe"
AppName = "probe"
Prefork = false

# 数据库文件存放位置的配置
# 需要监控的磁盘设备配置
# 定时任务执行间隔配置
[Gorm]
# 是否开启调试模式
Debug = true
# 数据库类型(目前支持的数据库类型:postgres)
DBType = "sqlite"
# 设置连接可以重用的最长时间(单位:秒)
MaxLifetime = 7200
# 设置数据库的最大打开连接数
MaxOpenConns = 150
# 设置空闲连接池中的最大连接数
MaxIdleConns = 50
# 数据库表名前缀
TablePrefix = "s_"
# 是否启用自动映射数据库表结构
EnableAutoMigrate = true

[DB]
# 连接地址
Host = ""
# 连接端口
Port = ""
# 用户名
User = ""
# 密码
Password = ""
# 数据库
DBName = "/app/probe"
# SSL模式
SSLMode = ""

[Disk]
# 主机监控数据的采集频率
Devices = ["vda1", "vda2", "vda3"]

[Ethernet]
# 需要监控的网口,可以通过 ifconfig 命令查看
Names = ["eth0"]

[Task]
# 定时任务采样间隔,单位 s
Interval = 60

[Logger]
File = "/app/probe.log"
Level = "debug"
RotationTime = "1"  # 每天切分一个日志文件
MaxAge = "7"        # 最多保留 7 天的日志

[Auth]
# 是否启用
Enable = true
# 签名方式(支持:HS512/HS384/HS512)
SigningMethod = "HS512"
# 签名key
SigningKey = "amprobe"
# 过期时间(单位秒)
Expired = 7200
# key 前缀
Prefix = "auth_"

[InitData]
Enable = true
InitConfigFile = "/app/configs/init.yaml"

nginx.conf代码(可选配置),主要是配置nginx端口,默认是80端口

worker_processes  1;
daemon off;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;  # 可修改为实际需要使用的端口
        # server_name  amprobe.amuluze.com; # 服务器地址或绑定域名

        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
            try_files $uri $uri/ /index.html;
        }

        location /api/ {
            rewrite ^/api/(.*)$ /$1 break;
            proxy_pass http://127.0.0.1:8000/; #跨域转发路由地址
            proxy_redirect off;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

        location /ws/ {
            # rewrite ^/wsUrl/(.*)$ /$1 break; #拦截标识去除
            proxy_pass http://127.0.0.1:8000/ws/;

            proxy_http_version 1.1;

            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
        }

        # 错误页配置
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
    }
}

Amprobe 安装部署指南

安装步骤

1. 准备工作

环境要求
Docker 版本 >= 20.10.9
系统内存 >= 2GB
磁盘空间 >= 20GB

2. 安装过程

将安装包 installer.bin 上传至服务器并执行:

cd ~
mkdir /installer
mv installer.bin /installer
cd /installer
chmod +x installer.bin
./installer.bin

完成安装后,会在当前目录下看到多了一些文件,可以不用关心它们,它们已经没有用了。

配置过程

初始化配置

amvector install                      # 安装 amvector 系统服务
amvector setup -p /data/amprobe       # 生成相关配置文件

配置文件说明

配置文件主要包括两部分,amprobe 配置文件和 amvector 配置文件。

amvector 配置文件

位置: /etc/amvector/config.yml

log:
  output: /data/amprobe/logs/amvector/vector.log
  level: info
  rotation: 1
  max_age: 7
task:
  interval: 30
  max_age: 1
  disk:
    devices:
    - vda1
  ethernet:
    names:
    - eth0
db:
  dbtype: sqlite
  host: ""
  port: ""
  user: ""
  password: ""
  dbname: /data/amprobe/resources/amvector/storage/vector
  sslmode: ""
variables:
  image_tag: latest
  host_prefix: /data/amprobe
  container_prefix: /

磁盘设备配置 使用 lsblk 命令查看可用磁盘:

lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
loop0    7:0    0 44.3M  1 loop /snap/snapd/23258
loop1    7:1    0 44.4M  1 loop /snap/snapd/23545
loop2    7:2    0   64M  1 loop /snap/core20/2379
loop3    7:3    0 63.7M  1 loop /snap/core20/2434
loop5    7:5    0   87M  1 loop /snap/lxd/29351
loop6    7:6    0 89.4M  1 loop /snap/lxd/31333
vda    252:0    0   70G  0 disk
└─vda1 252:1    0   70G  0 part /  # 这个就是我们要监控的磁盘设备

网络接口配置 使用 ip a 命令查看网络接口:

ip a
# ... 网络接口信息 ...
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP>  # 监控目标

amprobe 配置文件

位置: /etc/amprobe/

docker-compose.yml 是用于管理 amprobe 容器的 docker-compose 配置文件,/data/amprobe/resources/amprobe/configs 目录是挂载到 amprobe 容器中的服务配置文件,其他目录为相关服务的日志文件/数据库文件等。

服务启动

启动服务

# 启动监控代理服务
amvector start

# 启动容器服务
cd /data/amprobe && docker-compose up -d

验证部署

docker ps          # 查看 amprobe 容器服务状态
amvector status   # 查看 amvector 系统服务状态

卸载 amprobe

cd /data/amprobe && docker-compose down  # 停止并删除容器服务
docker rmi amuluze/amprobe:v1.3.10        # 删除 amprobe 镜像

卸载 amvector

amvector stop && amvector remove  # 停止并卸载系统服务 amvector
rm /usr/sbin/amvector             # 删除二进制文件

清理配置文件

rm -rf /data/amprobe     # 清理 amprobe 配置文件
rm -rf /etc/amvector     # 清理 amvector 配置文件

amprobe 配置文件详解

amprobe 的配置文件通过 amvector setup 命令自动生成,存放位置:

配置目录:/data/amprobe/resource/amprobe/configs

主要配置文件:config.toml 和 model.conf

核心配置文件说明

config.toml 配置详解

HTTP 服务器配置(Fiber)

[Fiber]
Host = "0.0.0.0"               # HTTP服务监听地址
Port = 8000                    # HTTP服务监听端口
ShutdownTimeout = 30           # 优雅关闭超时时长(秒)
SeverHeader = "probe"          # 服务器响应头
AppName = "probe"              # 应用名称
Prefork = false                # 是否启用多进程模式

数据库配置(Gorm)

[Gorm]
Debug = true                   # 是否开启调试模式
DBType = "sqlite"              # 数据库类型(目前支持的数据库类型:postgres, sqlite)
MaxLifetime = 7200             # 设置连接可以重用的最长时间(单位:秒)
MaxOpenConns = 150             # 设置数据库的最大打开连接数
MaxIdleConns = 50              # 设置空闲连接池中的最大连接数
TablePrefix = "s_"             # 数据库表名前缀
EnableAutoMigrate = true       # 是否启用自动映射数据库表结构

[DB]
Host = ""                      # 连接地址
Port = ""                      # 连接端口
User = ""                      # 用户名
Password = ""                  # 密码
DBName = "/app/probe"          # 数据库
SSLMode = ""                   # SSL模式

日志配置(Log)

[Log]
Output = "/app/logs/probe.log" # 日志存放路径
Level = "debug"                # 日志等级
Rotation = 1                   # 每天切分一个日志文件
MaxAge = 7                     # 最多保留 7 天的日志

认证配置(Auth)

[Auth]
Enable = true                  # 是否启用
SigningMethod = "HS512"        # 签名方式(支持:HS512/HS384/HS512)
SigningKey = "amprobe"         # 签名key
Expired = 7200                 # 过期时间(单位秒)
RefreshExpired = 86400         # 刷新过期时间(单位秒)
Prefix = "auth_"               # key 前缀

[Casbin]
Enable = true                  # 是否启用casbin
Debug = false                  # debug模式
AutoLoad = true                # 是否启用定期自动加载策略
AutoLoadInternal = 60          # 定期自动加载策略时间间隔(单位秒)

任务配置(Task)

采样任务配置

[Task]
Interval = 15

model.conf 权限模型配置

Casbin 权限模型配置文件,定义了 RBAC 权限控制规则:

[request_definition]
r = sub, obj, act

[policy_definition]
p = sub, obj, act

[role_definition]
g = _, _

[policy_effect]
e = some(where (p.eft == allow))

[matchers]
m = g(r.sub, p.sub) && r.obj == p.obj && r.act == p.act