OneUptime容器化部署实战:Docker Compose一键启动全功能监控系统

OneUptime容器化部署实战:Docker Compose一键启动全功能监控系统

【免费下载链接】oneuptime OneUptime is the complete open-source observability platform. 【免费下载链接】oneuptime 项目地址: https://gitcode.com/GitHub_Trending/on/oneuptime

你是否还在为搭建完整的监控系统而烦恼?面对复杂的配置步骤、繁多的依赖项和难以调试的服务联动,往往耗费数天仍无法正常运行。本文将通过Docker Compose实现OneUptime全功能监控系统的一键部署,涵盖环境准备、配置优化、服务启动和日常运维全流程,让你在15分钟内拥有企业级可观测性平台。

系统架构与部署优势

OneUptime作为开源全栈可观测性平台,整合了 uptime监控(Uptime Monitoring)、状态页面(Status Page)、事件管理(Incident Management)、应用性能监控(APM)等核心功能。通过Docker Compose部署可实现:

  • 环境一致性:容器化部署确保开发、测试与生产环境一致
  • 简化运维:单命令完成服务启停、升级与备份
  • 资源隔离:各组件独立容器运行,避免依赖冲突
  • 弹性扩展:支持多探针部署与分布式监控节点扩展

核心服务架构如下: mermaid

部署准备与环境检查

硬件要求

根据监控规模选择配置:

场景CPU核心内存存储适用规模
个人实验2核4GB40GB SSD<10个监控目标
团队使用4核8GB100GB SSD<50个监控目标
企业部署8核16GB400GB SSD<200个监控目标

软件依赖

  • Docker Engine (≥20.0.0)
  • Docker Compose (≥2.12.2)
  • Git
  • curl

自动检查环境依赖:

# 检查Docker版本
docker --version | grep -q "Docker version 20" || echo "Docker版本过低"

# 检查Docker Compose
docker compose version | grep -q "v2.12" || echo "Docker Compose版本过低"

部署步骤详解

1. 获取项目代码

# 克隆官方仓库
git clone https://link.gitcode.com/i/209638028fd3404ab0bc7f66ad9aff70.git
cd oneuptime

# 切换至稳定发布分支
git checkout release

项目目录结构关键文件说明:

2. 环境配置优化

复制并修改环境配置文件:

cp config.example.env config.env

关键配置项说明(需重点修改):

参数说明安全建议
HOST访问域名/IP生产环境建议使用域名
ONEUPTIME_SECRET主应用密钥使用openssl rand -hex 32生成
DATABASE_PASSWORD数据库密码使用openssl rand -hex 16生成
REDIS_PASSWORDRedis密码使用openssl rand -hex 16生成
HTTP_PROTOCOL协议类型生产环境建议配置HTTPS

配置示例:

# 基础网络配置
HOST=monitor.example.com
HTTP_PROTOCOL=https
ONEUPTIME_HTTP_PORT=443

# 安全密钥(务必修改)
ONEUPTIME_SECRET=5f4dcc3b5aa765d61d8327deb882cf99...
DATABASE_PASSWORD=8b1a9953c4611296a827abf8c47804d7...
REDIS_PASSWORD=3fd7a5c316b4b3c4b3d4e5f6a7b8c9d0...

3. 一键启动服务

通过npm脚本启动(推荐):

# 安装依赖并启动服务
npm install
npm start

或直接使用Docker Compose命令:

# 加载环境变量并启动
export $(grep -v '^#' config.env | xargs) && docker compose up -d

服务启动后,可通过docker compose ps检查状态,正常输出如下:

NAME                          IMAGE                          COMMAND                  SERVICE             CREATED             STATUS              PORTS
oneuptime_accounts_1          oneuptime/accounts:release     "docker-entrypoint.s…"   accounts            5min ago            Up 5min             3003/tcp
oneuptime_clickhouse_1        oneuptime/clickhouse:release   "/entrypoint.sh"         clickhouse          5min ago            Up 5min             8123/tcp, 9000/tcp
oneuptime_ingress_1           oneuptime/nginx:release        "/docker-entrypoint.…"   ingress             5min ago            Up 5min             0.0.0.0:80->80/tcp
oneuptime_postgres_1          postgres:14                    "docker-entrypoint.s…"   postgres            5min ago            Up 5min             5432/tcp
oneuptime_redis_1             redis:alpine                   "docker-entrypoint.s…"   redis               5min ago            Up 5min             6379/tcp

访问与初始化配置

服务启动后,通过http://<HOST>访问系统,首次登录需完成:

  1. 创建管理员账户
  2. 验证邮箱(如配置SMTP)
  3. 创建首个监控项目

监控项目创建界面

官方使用文档:Docs/Content/installation/docker-compose.md

日常运维与最佳实践

服务监控与日志管理

查看服务日志:

# 查看特定服务日志
docker compose logs -f dashboard

# 查看最近100行并跟踪
docker compose logs --tail=100 -f worker

配置Docker日志轮转(防止磁盘占满):

# /etc/docker/daemon.json
{
  "log-driver": "local",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}

数据备份策略

使用内置备份脚本:

# 创建数据库备份
./backup.sh

# 备份文件默认存储路径
ls -l ./Backups/

建议配置定时备份任务:

# 添加到crontab(每日凌晨2点执行)
0 2 * * * cd /path/to/oneuptime && ./backup.sh >> /var/log/oneuptime-backup.log 2>&1

系统升级流程

# 拉取最新代码
git pull origin release

# 更新依赖并重启服务
npm run update

常见问题解决

端口冲突处理

若80/443端口被占用,修改配置文件:

# config.env中修改端口
ONEUPTIME_HTTP_PORT=8080
STATUS_PAGE_HTTPS_PORT=8443

性能优化建议

针对大规模监控场景(>50个监控目标):

  1. 增加ClickHouse内存配置:
# docker-compose.override.yml
services:
  clickhouse:
    environment:
      - CLICKHOUSE_MEMORY_LIMIT=8G
  1. 调整探针并发数:
# config.env
GLOBAL_PROBE_1_MONITORING_WORKERS=10
GLOBAL_PROBE_1_MONITOR_FETCH_LIMIT=50

安全加固措施

  1. 启用网络隔离:
# docker-compose.yml
networks:
  oneuptime:
    driver: bridge
    internal: true  # 仅允许内部通信
  1. 配置外部访问控制:
# Nginx/conf.d/security.conf
allow 192.168.1.0/24;  # 仅允许办公网络访问管理界面
deny all;

总结与进阶方向

通过Docker Compose部署OneUptime可快速构建企业级监控平台,关键优势在于简化部署流程与确保环境一致性。后续可探索:

  • 高可用部署:基于Kubernetes的多节点集群方案
  • 监控扩展:集成Prometheus生态与第三方数据源
  • 告警优化:配置Slack/邮件/短信多渠道通知
  • 数据可视化:自定义Grafana仪表盘与业务指标关联

完整部署脚本与配置示例已开源,可通过项目仓库获取最新版本。建议收藏本文档,定期关注官方更新日志以获取新功能动态。

【免费下载链接】oneuptime OneUptime is the complete open-source observability platform. 【免费下载链接】oneuptime 项目地址: https://gitcode.com/GitHub_Trending/on/oneuptime

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值