Komari 轻量级服务器监控系统部署指南
·
Komari 轻量级服务器监控系统部署指南
部署 Komari 监控系统,从 Docker 到 Nginx 反向代理

前言
Komari 一款轻量级、自托管的服务器监控工具的完整部署过程。从 Docker Compose 部署到 Nginx 反向代理配置。
项目简介
什么是 Komari?
Komari 是一款专为简单高效设计的服务器监控解决方案,具有以下特点:
- 🚀 轻量高效 - 资源消耗低,适用于各种规模的服务器
- 🔒 自托管设计 - 完全控制数据隐私,易于部署
- 🎨 现代化 Web 界面 - 直观的监控仪表板
- 🐳 容器化友好 - 支持 Docker 一键部署
- 🌐 多语言支持 - 包含完整的中文文档
技术栈
- 后端: Go 1.18+
- 前端: Node.js 20+
- 部署: Docker & Docker Compose
- 反向代理: Nginx
- 默认端口: 25774
环境准备
系统要求
- Ubuntu 20.04+ / Debian 11+ / CentOS 8+
- Docker & Docker Compose
- Nginx
- 域名和 SSL 证书(可选,用于 HTTPS 访问)
安装依赖
# 更新系统包
sudo apt update && sudo apt upgrade -y
# 安装 Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# 安装 Docker Compose
sudo apt install docker-compose-plugin -y
# 安装 Nginx
# nginx 安装
https://nginx.org/en/linux_packages.html#Ubuntu
# 或者
sudo apt install nginx -y
# 启动服务
sudo systemctl enable docker nginx
sudo systemctl start docker nginx
Docker Compose 部署
1. 创建项目目录
# 创建 Komari 部署目录
mkdir -p /opt/komari
cd /opt/komari
# 创建数据存储目录
mkdir data
2. 编写 Docker Compose 配置
创建 docker-compose.yml 文件:
# 注意:新版本 Docker Compose 不再需要 version 字段
services:
komari:
image: ghcr.io/komari-monitor/komari:latest
container_name: komari
ports:
- "127.0.0.1:25774:25774" # 只绑定本地,通过 Nginx 代理
volumes:
- ./data:/app/data
restart: unless-stopped
networks:
- komari-network
networks:
komari-network:
driver: bridge
3. 启动服务
# 启动 Komari 服务
docker-compose up -d
# 查看服务状态
docker-compose ps
# 查看启动日志 登录用户名 密码
docker-compose logs komari
预期输出:
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
komari ghcr.io/komari-monitor/komari:latest "/app/komari server" komari 32 seconds ago Up 32 seconds 127.0.0.1:25774->25774/tcp
Nginx 反向代理配置
1. 检查 Nginx 配置结构
# 查看 Nginx 版本和配置目录
nginx -v
ls -la /etc/nginx/
# 查看配置目录结构
ls -la /etc/nginx/conf.d/
2. 创建 Komari 站点配置
创建 /etc/nginx/conf.d/komari.conf:
# HTTP 重定向到 HTTPS
server {
listen 80;
server_name komari.yourdomain.com;
return 301 https://$server_name$request_uri;
}
# HTTPS 服务器配置
server {
listen 443 ssl;
http2 on; # 新版 Nginx 语法
server_name komari.yourdomain.com;
# SSL 证书配置
ssl_certificate /path/to/your/fullchain.crt;
ssl_certificate_key /path/to/your/private.key;
# SSL 安全配置
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
# 安全头部
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
# 反向代理到 Komari
location / {
proxy_pass http://127.0.0.1:25774;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
# WebSocket 支持
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# 超时配置
proxy_connect_timeout 60s;
proxy_send_timeout 60s;
proxy_read_timeout 60s;
# 缓冲配置
proxy_buffering on;
proxy_buffer_size 64k;
proxy_buffers 8 64k;
}
# 访问日志
access_log /var/log/nginx/komari_access.log;
error_log /var/log/nginx/komari_error.log;
}
3. 验证并应用配置
# 测试 Nginx 配置语法
nginx -t
# 重载 Nginx 配置
sudo systemctl reload nginx
# 检查服务状态
sudo systemctl status nginx
实际部署案例
部署中,使用了以下实际配置:
服务器环境
- 操作系统: Ubuntu 22.04 LTS
- Docker: Docker Compose v2
- Nginx: 1.28.0
- 域名: ***.xyz
- SSL证书路径:
/root/panel/cert/***.xyz/
实际配置文件
# 部署目录
/opt/komari/
├── docker-compose.yml
├── data/
端口监听验证
# 验证端口监听状态
$ netstat -tlnp | grep :25774
tcp 0 0 127.0.0.1:25774 0.0.0.0:* LISTEN 103122/docker-proxy
$ netstat -tlnp | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 18893/nginx
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 18893/nginx
常见问题与解决方案
1. Docker Compose 版本警告
问题:
WARN[0000] the attribute `version` is obsolete, it will be ignored
解决: 删除 docker-compose.yml 中的 version: '3.8' 行
2. Nginx HTTP/2 配置警告
问题:
nginx: [warn] the "listen ... http2" directive is deprecated
解决: 使用新语法
# 旧语法
listen 443 ssl http2;
# 新语法
listen 443 ssl;
http2 on;
3. SSL 证书权限问题
问题: Nginx 无法读取证书文件
解决:
# 设置正确的文件权限
chmod 755 /path/to/cert/directory/
chmod 644 /path/to/fullchain.crt
chmod 600 /path/to/private.key
4. 防火墙配置
# 确保防火墙允许相关端口
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw status
管理和维护
日常操作命令
# 查看服务状态
docker-compose ps
# 查看实时日志
docker-compose logs -f komari
# 重启服务
docker-compose restart
# 更新到最新版本
docker-compose pull
docker-compose up -d
# 备份数据
tar -czf komari-backup-$(date +%Y%m%d).tar.gz data/
监控和日志
# 查看 Nginx 访问日志
tail -f /var/log/nginx/komari_access.log
# 查看 Nginx 错误日志
tail -f /var/log/nginx/komari_error.log
# 查看系统资源使用
docker stats komari
性能优化建议
1. 系统级优化
# 调整文件描述符限制
echo "* soft nofile 65536" >> /etc/security/limits.conf
echo "* hard nofile 65536" >> /etc/security/limits.conf
# 优化内核参数
echo "net.core.somaxconn = 65535" >> /etc/sysctl.conf
echo "net.ipv4.tcp_max_syn_backlog = 65535" >> /etc/sysctl.conf
sysctl -p
2. Nginx 优化
# 在 nginx.conf 中添加
worker_processes auto;
worker_connections 1024;
# 启用 gzip 压缩
gzip on;
gzip_vary on;
gzip_min_length 1024;
gzip_types text/plain text/css text/xml text/javascript application/javascript application/json;
3. Docker 资源限制
services:
komari:
# ... 其他配置
deploy:
resources:
limits:
memory: 512M
cpus: '0.5'
reservations:
memory: 128M
cpus: '0.1'
安全加固
1. 网络安全
# 限制访问来源(可选)
location / {
# 允许特定 IP 段
allow 192.168.1.0/24;
allow 10.0.0.0/8;
deny all;
proxy_pass http://127.0.0.1:25774;
# ... 其他配置
}
2. 定期更新
# 创建更新脚本
cat > /opt/komari/update.sh << 'EOF'
#!/bin/bash
cd /opt/komari
docker-compose pull
docker-compose up -d
docker image prune -f
EOF
chmod +x /opt/komari/update.sh
# 添加到 crontab(每周日凌晨 2 点更新)
echo "0 2 * * 0 /opt/komari/update.sh" | crontab -
结语
成功搭建了一个生产就绪的 Komari 监控系统。这套方案具有以下优势:
- ✅ 容器化部署 - 环境隔离,易于管理
- ✅ HTTPS 安全访问 - SSL/TLS 加密传输
- ✅ 反向代理 - 隐藏内部端口,提高安全性
- ✅ 自动重启 - 服务异常自动恢复
- ✅ 日志监控 - 完整的访问和错误日志
Komari 作为一款轻量级监控解决方案,特别适合中小型团队和个人开发者使用。
参考资源
更多推荐

所有评论(0)