# graylog **Repository Path**: limingshang/graylog ## Basic Information - **Project Name**: graylog - **Description**: graylog - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-24 - **Last Updated**: 2025-12-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Graylog + OpenSearch + MongoDB Docker Compose 部署说明 ## 一、整体架构说明 本项目基于 **Docker Compose** 搭建一套完整的日志集中管理系统,核心组件如下: - **Graylog**:日志收集、处理与可视化平台 - **OpenSearch**:日志索引与存储(Graylog 4.x+ 官方推荐) - **MongoDB**:Graylog 元数据存储(用户、配置、流等) 架构关系: ``` [ 日志来源 ] | v Graylog | v OpenSearch MongoDB <--- Graylog 配置 / 元数据 ``` 所有容器均运行在同一个 Docker Bridge 网络中,便于内部通信。 --- ## 二、目录结构说明 建议的项目目录结构如下: ``` . ├── docker-compose.yml ├── README.md ├── mongodb/ │ └── data/ # MongoDB 数据目录 ├── opensearch/ │ └── data/ # OpenSearch 索引数据 └── graylog/ └── journal/ # Graylog Journal(磁盘缓冲) ``` --- ## 三、Docker 网络说明 ```yaml networks: graylog: driver: bridge ``` - 使用 **bridge** 网络 - 所有服务通过服务名互相访问(如 mongodb、opensearch) - 不暴露内部网络,仅通过端口映射对外访问 --- ## 四、MongoDB 服务说明 ```yaml mongodb: image: mongo:8.2 # image: registry.cn-beijing.aliyuncs.com/limsgraylog/mongodb:v1 container_name: mongodb restart: unless-stopped volumes: - ./mongodb/data:/data/db networks: - graylog ``` ### 参数详解 - **image**:自定义 MongoDB 镜像(阿里云仓库) - **container_name**:容器名称 - **restart: unless-stopped**:异常退出自动重启 - **volumes**: - `/data/db`:MongoDB 数据存储目录 - **ports**:未暴露端口,仅内部访问(更安全) ### MongoDB 用途 - 存储 Graylog 的: - 用户信息 - 输入配置 - 流(Streams) - 仪表盘配置 --- ## 五、OpenSearch 服务说明(核心) ```yaml opensearch: image: opensearchproject/opensearch:2.12.0 # image: registry.cn-beijing.aliyuncs.com/limsgraylog/opensearch:v1 container_name: opensearch restart: unless-stopped ``` ### 1. 集群与节点配置 ```yaml - cluster.name=opensearch-graylog - node.name=opensearch-node-1 - discovery.type=single-node ``` - **cluster.name**:集群名称(Graylog 使用) - **node.name**:节点名称 - **single-node**:单节点模式(关闭选举) ### 2. JVM 内存配置 ```yaml - OPENSEARCH_JAVA_OPTS=-Xms1g -Xmx1g ``` - 堆内存初始值/最大值:1GB - 建议为物理内存的 50%,不超过 32GB ### 3. 内存锁定 ```yaml - bootstrap.memory_lock=true ``` 防止 JVM 内存被 swap,提升性能 ### 4. 安全插件配置(重点) ```yaml - OPENSEARCH_INITIAL_ADMIN_PASSWORD=****** - plugins.security.ssl.http.enabled=false - plugins.security.allow_default_init_securityindex=true - plugins.security.disabled=true ``` 说明: - 显式 **禁用 security 插件** - 适合 **Graylog 单机 / 内网部署** - 简化认证流程 ### 5. ulimit 配置 ```yaml nofile: 65536 memlock: unlimited ``` OpenSearch 官方强烈要求 ### 6. 数据目录 ```yaml ./opensearch/data:/usr/share/opensearch/data ``` ### 7. 端口说明 ```yaml 9200:9200 ``` - **9200**:OpenSearch HTTP API - 生产环境建议仅内网访问 --- ## 六、Graylog 服务说明(核心) ```yaml graylog: image: graylog/graylog:7.0.1 # image: registry.cn-beijing.aliyuncs.com/limsgraylog/graylog:v1 ``` ### 1. 基础参数 ```yaml GRAYLOG_NODE_ID_FILE: /usr/share/graylog/data/node-id ``` 节点唯一 ID 文件(必须持久化) ```yaml GRAYLOG_PASSWORD_SECRET ``` - 用于加密 Session / Token - 必须 ≥ 64 位随机字符串 - 示例生成: ```bash openssl rand -base64 64 ``` ```yaml GRAYLOG_ROOT_PASSWORD_SHA2 ``` - 管理员密码(SHA256) - 示例: ```bash echo -n 'admin' | sha256sum ``` ### 2. Web 访问地址 ```yaml GRAYLOG_HTTP_EXTERNAL_URI: http://127.0.0.1:9701/ ``` - Graylog Web UI 外部访问地址 - 这里的IP是真实的服务器IP - 必须与端口映射一致 ### 3. MongoDB 连接 ```yaml GRAYLOG_MONGODB_URI: mongodb://mongodb:27017/graylog ``` - 使用服务名 mongodb - 数据库名:graylog ### 4. OpenSearch 连接 ```yaml GRAYLOG_ELASTICSEARCH_HOSTS: http://opensearch:9200 ``` - 内部直连 OpenSearch - 因已关闭安全插件,无需用户名密码 --- ## 七、Graylog 端口说明(重点) ```yaml 9701:9000 ``` - **9701**:Web UI - 默认账号:admin --- ### 日志输入端口 | 端口 | 协议 | 用途 | |----|----|----| | 1514 | UDP | Syslog | | 12201 | UDP/TCP | GELF | | 12202 | TCP | 自定义 | | 12205 | TCP | 扩展 | | 12206 | TCP | 扩展 | | 12207 | TCP | 扩展 | ⚠️ 使用前需在 Graylog Web 中创建对应 **Input** --- ## 八、启动步骤 ```bash docker-compose up -d ``` 检查状态: ```bash docker ps ``` 访问: ``` http://127.0.0.1:9701 ``` 账号:admin 密码:你设置的 root 密码 --- ## 九、生产环境建议 1. OpenSearch 数据单独磁盘 2. Graylog Journal ≥ 10GB 3. 禁止 9200 端口公网访问 4. 定期清理索引(Retention) 5. 配置 Index Rotation + Retention --- ## 十、常见问题 ### Graylog 启动慢? - 等待 OpenSearch 完全启动 - 查看日志: ```bash docker logs -f graylog ``` ### OpenSearch 启动失败? - 检查 vm.max_map_count ```bash sysctl -w vm.max_map_count=262144 ``` --- ## 十一、总结 该部署方案适合: - 单机 / 测试 / 中小规模生产 - 内网日志集中管理 - 不需要复杂安全认证的场景 如需: - 多节点 - TLS - 高可用 需额外调整架构。 # Graylog Docker Compose 部署与初始化配置教程(图文版) 本文档用于指导在 Docker Compose 环境下完成 Graylog 的启动及首次初始化配置。 请严格按照步骤执行。 --- ## 一、启动项目 在项目根目录执行以下命令启动所有服务: ```bash docker compose up -d ``` ![](./course/index.png) ![](./course/login.png) ![](./course/step1.png) ![](./course/step2.png) ![](./course/step3.png) ![](./course/step4.png) ![](./course/step5.png) ![](./course/step6.png) ![](./course/step7.png) ![](./course/step8.png) ![](./course/step9.png) ![](./course/step10.png) ![](./course/step11.png)