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