amprobe——一款docker监控管理工具
本文最后更新于 2024-06-28,文章内容可能已经过时。
前言
大家好,这里是可爱的Cherry。
今天Cherry发现了一款国人大佬新开发的docker容器监控与控制面板项目——amprobe。
该项目是作者的独立开发之路起步项目,因为上线时间不久,暂时只支持宿主机的监控,docker容器的启停日志查看运维等,暂时不支持用于容器的新建、镜像拉取等操作。
不过相信在不久的将来,该项目将脱颖而出,成为继dockerui之后,国内达人又一款针对docker容器管理的好项目~
🔻项目首页
项目地址:https://github.com/amuluze/amprobe
项目特性
- 监控主机的 CPU、内存、磁盘 IO、网络 IO情况
- 监控部署于主机上 Docker 容器的运行状态、CPU、内存使用情况
- 实时查看 Docker 容器的日志,并支持日志下载
- 针对管理员用户提供简单的 Docker 容器、镜像运维操作
- 操作日志记录
系统部署
一、docker-compose.yaml代码
🔻新建文件夹路径/volume1/amprobe,在/volume1/amprobe文件夹中新建或上传docker-compose.yml,config.toml,init.yaml,nginx.conf等共4个文件,并将相应的代码复制进去。
🔻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
🔻init.yaml代码(可选配置),主要是初始化账号密码
users:
- username: cgakki # 管理员,拥有启停容器的权限,非管理员则没有
password: 666666
status: 1
is_admin: 1
- username: amprobe
password: 666666
status: 1
is_admin: 0
🔻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;
}
}
}
二、部署系统
方法一:SSH部署
# 来到文件夹目录
cd /volume1/docker/容器名/
# 启动容器
docker-compose up -d
方法二:群晖部署compose
打开container manager,选择项目,点击新建,选择penpot路径,点击下一步即可
方法三:威联通部署compose
打开container station,创建应用程序,复制代码验证后部署即可
系统使用
🔻项目首页,比较好的展示了目前的容器使用量,以及宿主机的各类系统参数,譬如发行版本、内核版本、系统架构、docker版本、api版本、git版本、go版本等。
🔻容器首页,可以看到所有容器的基础信息,支持容器的启动、停止、重启、删除、日志查看等。
🔻镜像首页,支持对单个镜像进行删除,也支持批量删除未使用镜像
🔻宿主机监控,这里磁盘、网络等都需要在config文件中配置,比如多款硬盘就配置多个(使用fdisk查询),网口同理(使用ifconfig查询)