Docker 部署 Komari 探针教程及离线问题解决方法

Github地址:https://github.com/komari-monitor/komari

创建 docker-compose.yml

version: "3.8" # 可以删除
services:
  komari:
    image: ghcr.io/komari-monitor/komari:latest
    container_name: komari
    ports:
      - "25774:25774"
    volumes:
      - ./data:/app/data
    #environment:
      # 可选:自定义管理员账号密码
      # - ADMIN_USERNAME=admin
      # - ADMIN_PASSWORD=yourpasswd
    restart: unless-stopped

在新版Docker中编写 docker-compose.yml文件不用填写版本号version: "3.8"

去掉environment:前的#可以在docker-compose.yml 中自定义管理员账号密码,也可以定义一个.env文件存放管理员账号密码,由于考虑docker-compose.yml文件的简洁美观性,我这里使用默认账号密码

运行 docker-compose

docker-compose up -d

查看默认账号和密码:

docker logs komari

在浏览器中访问 http://ip:25774,此时已经搭建完成

登录面板后第一时间修改默认用户名和密码!

配置 Nginx

server {
    listen 443 ssl http2;
    server_name komari.123456.xyz;

    ssl_certificate /etc/nginx/certs/123456.xyz.fullchain.pem;
    ssl_certificate_key /etc/nginx/certs/123456.xyz.privkey.pem;

    location / {
        proxy_pass http://123.45.678.9:25774;  # Komari 容器内部端口
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;       # WebSocket 升级头
        proxy_set_header Connection "upgrade";       # WebSocket 升级头
        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_pass http://123.45.678.9:25774;,正常来说,本机反代应该是proxy_pass http://127.0.0.1:25774;或者proxy_pass http://本机ip:25774;

添加Agent被控服务器

图片[1]-Docker 部署 Komari 探针教程及离线问题解决方法 - 我是怪兽-我是怪兽

添加节点,起一个名称用于前台显示

图片[2]-Docker 部署 Komari 探针教程及离线问题解决方法 - 我是怪兽-我是怪兽

点击右边的下载箭头,根据被控端服务器的系统,选择命令

安装选项无特殊要求保持默认就行

去Agent被控端服务器运行复制的命令

Komari-agent installation completed!
[CONFIG] Service: komari-agent
[CONFIG] Arguments: -e https://komari.123456.xyz -t ZqPtBxY*****ypBfoqJBWL

当提示以上信息说明安装成功,此时就可以在前台看到服务器状态了

前端Agent服务器显示离线问题解决方法

在网上找了很多资料,也没解决这个问题,最后经过排查发现是因为证书和nginx配置的问题。

错误示例(看起来“没问题”的配置)

很多人(包括我自己)以前用的是这种 Nginx 配置:

ssl_certificate /etc/nginx/certs/123456.xyz.crt;
ssl_certificate_key /etc/nginx/certs/123456.xyz.key;

这种配置浏览器访问网站完全正常,但以下程序全部失败:wget、curl、各类 Agent(如 Komari)、API / webhook / SDK

正确的解决方案:使用 fullchain.pem

ssl_certificate /etc/nginx/certs/123456.xyz.fullchain.pem;
ssl_certificate_key /etc/nginx/certs/123456.xyz.privkey.pem;

把证书中的.crt文件替换成.fullchain.pem文件,同时把nginx中的证书路径正确修改即可修复问题

临时修复方案

在上面 一键部署指令 中,安装选项勾选白色方框中的忽略不安全证书,再复制命令。

© 版权声明
THE END
喜欢就支持一下吧!
点赞0发电
评论 抢沙发
头像
尊重知识,真诚评论!
提交
头像

昵称

取消
昵称表情代码快捷回复

    暂无评论内容