Docker 部署 Graylog 日志管理系统

news/2025/2/26 12:38:13

Docker 部署 Graylog 日志管理系统

  • 前言
  • 一、准备工作
  • 二、Docker Compose 配置
  • 三、启动 Graylog 服务
  • 四、访问 Graylog Web 界面
  • 总结


前言

Graylog 是一个开源的日志管理平台,专为实时日志收集、分析和可视化设计。它支持强大的搜索功能,并且与 Elasticsearch 和 MongoDB 集成。通过 Docker 部署 Graylog 可以快速搭建一个完整的日志管理系统。

本文将展示如何使用 Docker 和 Docker Compose 来部署 Graylog、Elasticsearch 和 MongoDB。


一、准备工作

首先,确保你的系统上已经安装了 Docker。

Linux上进行Docker安装有两种方式:

  1. Docker自动化安装
  2. Docker手动安装

可以根据该文章的步骤进行安装:https://blog.csdn.net/weixin_44876263/article/details/136714078?spm=1001.2014.3001.5502

二、Docker Compose 配置

在 Docker Compose 中,我们定义了三个服务:

  • MongoDB:用于存储 Graylog 的元数据。
  • Elasticsearch:用于存储和搜索日志数据。
  • Graylog日志管理系统,提供 Web 界面和 API 进行日志分析和可视化。

创建 docker-compose.yml 文件

首先,在项目目录下创建一个 docker-compose.yml 文件,并将以下内容粘贴进去:

version: '3'
services:
  mongodb:
    container_name: mongodb
    image: mongo:4.4.0
    restart: always
    volumes:
      - /opt/graylog/mongo_data:/data/db
      - /etc/localtime:/etc/localtime:ro
      - /usr/share/zoneinfo/Asia/Shanghai:/etc/timezone:ro
    network_mode: "host"

  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch-oss:7.10.2
    container_name: elasticsearch
    restart: always
    volumes:
      - /opt/graylog/es_data:/usr/share/elasticsearch/data
      - /etc/localtime:/etc/localtime:ro
      - /usr/share/zoneinfo/Asia/Shanghai:/etc/timezone:ro
    environment:
      - TZ=Asia/Shanghai
      - http.host=0.0.0.0
      - transport.host=localhost
      - network.host=0.0.0.0
      - http.cors.allow-origin=*
      - http.cors.enabled=true
      - discovery.type=single-node
      - 'ES_JAVA_OPTS=-Xms1024m -Xmx1024m'
    network_mode: "host"

  graylog:
    image: graylog/graylog:4.3.6
    container_name: graylog
    restart: always
    volumes:
      - /opt/graylog/graylog_data:/usr/share/graylog/data
      - /etc/localtime:/etc/localtime:ro
      - /usr/share/zoneinfo/Asia/Shanghai:/etc/timezone:ro
    environment:
      # CHANGE ME (must be at least 16 characters)!
      - GRAYLOG_PASSWORD_SECRET=somepasswordpepper
      # Password: admin
      - GRAYLOG_ROOT_PASSWORD_SHA2=8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918
      - GRAYLOG_HTTP_EXTERNAL_URI=http://127.0.0.1:9000/
      - GRAYLOG_MONGODB_URI=mongodb://localhost:27017/graylog
      - GRAYLOG_ELASTICSEARCH_HOSTS=http://localhost:9200
      - TZ=Asia/Shanghai
    entrypoint: /usr/bin/tini -- wait-for-it localhost:9200 --  /docker-entrypoint.sh
    depends_on:
      - mongodb
      - elasticsearch
    network_mode: "host"

配置说明:

  • MongoDB 服务:

    • 使用官方 MongoDB 镜像 mongo:4.4.0
    • 数据存储在 /opt/graylog/mongo_data 目录。
    • 使用 host 网络模式,容器会直接使用宿主机的网络接口。
  • Elasticsearch 服务:

    • 使用 Elasticsearch 7.10.2 版本的 OSS 镜像 docker.elastic.co/elasticsearch/elasticsearch-oss:7.10.2
    • 数据存储在 /opt/graylog/es_data 目录。
    • 配置了 CORS 以支持跨域请求,并通过 http.host=0.0.0.0network.host=0.0.0.0 允许来自任意 IP 的访问。
    • 设置了单节点模式 discovery.type=single-node,适用于开发和测试环境。
  • Graylog 服务:

    • 使用 Graylog 官方镜像 graylog/graylog:4.3.6
    • 依赖于 MongoDB 和 Elasticsearch 服务,确保先启动 MongoDB 和 Elasticsearch 后再启动 Graylog。
    • 配置了 Graylog 的密码 GRAYLOG_PASSWORD_SECRET 和用户密码 GRAYLOG_ROOT_PASSWORD_SHA2(此处使用的是已加密的 SHA2 密码)。
    • 设置了 Graylog 的 Web 界面地址 GRAYLOG_HTTP_EXTERNAL_URI=http://127.0.0.1:9000/
    • 使用 entrypoint 等待 Elasticsearch 启动后再启动 Graylog。

三、启动 Graylog 服务

在完成 docker-compose.yml 文件的配置后,使用以下命令启动服务:

docker-compose up -d

该命令会在后台启动 MongoDBElasticsearchGraylog 服务。

四、访问 Graylog Web 界面

部署完成后,你可以通过浏览器访问 Graylog 的 Web 界面:

http://<your-server-ip>:9000

在这里插入图片描述
默认的登录信息:

  • 用户名:admin
  • 密码:admin(如果没有更改密码)

总结

通过 Docker 和 Docker Compose 部署 Graylog,能够快速搭建一个日志管理平台,提供强大的日志搜索和分析功能。本文展示了如何使用 Docker 配置并运行 MongoDB、Elasticsearch 和 Graylog 服务,确保系统在容器中运行并持久化数据。


http://www.niftyadmin.cn/n/5868704.html

相关文章

智能升级、安全加倍,遨游防爆对讲机拉起通信安防线

在充斥着爆炸性气体和易燃物质的危险作业环境中&#xff0c;通信设备的选择关乎生命安全。一旦通信设备引发电火花&#xff0c;其后果将不堪设想。因此&#xff0c;专为防范易燃易爆环境而设计的防爆对讲机&#xff0c;凭借其独特的防爆技术和设计&#xff0c;成为了这些高风险…

【SQLI】CTF 无回显SQL盲注解题方法

CTF 无回显SQL盲注解题方法 1. 确认注入点与数据库类型2. 构造条件判断提取数据3. 自动化利用脚本4. 外带数据&#xff08;OOB Exfiltration&#xff09;5. 绕过过滤与WAF6. 关键数据提取路径7. 工具推荐总结 在CTF中解决无任何回显的SQL注入题目&#xff0c;通常需要依赖盲注技…

【C# 变量字符串还原转义字符】

在 C# 中&#xff0c;如果字符串中包含转义字符&#xff08;如 \n、\t、\x001E 等&#xff09;&#xff0c;并且你希望将这些转义字符还原为它们实际表示的字符或字符串&#xff0c;可以使用以下方法&#xff1a; 1. 使用 Regex.Unescape 方法 Regex.Unescape 方法可以将字符串…

如何正确选择百度蜘蛛池服务

Tbaidutopseo 在竞争激烈的互联网环境中&#xff0c;网站若想获得更多流量和曝光&#xff0c;提升在搜索引擎中的排名至关重要。百度蜘蛛池服务作为一种能够帮助网站吸引百度蜘蛛抓取&#xff0c;进而提高网站收录量和排名的工具&#xff0c;受到众多网站所有者的关注。然而&a…

千峰React:函数组件使用(3)

多组态进行正确记忆 首先看这个代码 import { useState } from reactfunction App() {const [count, setCount] useState(0)const [count2, setCount2] useState(0)const [count3, setCount3] useState(0)const handleClick () > {setCount(count 1)}return (<div&…

(0)阿里云大模型ACP-考试回忆

这两天通过了阿里云大模型ACP考试&#xff0c;由于之前在网上没有找到真题&#xff0c;导致第一次考试没有过&#xff0c;后面又重新学习了一遍文档才顺利通过考试&#xff0c;这两次考试内容感觉考试题目90%内容是覆盖的&#xff0c;后面准备分享一下每一章的考题&#xff0c;…

贪心算法:JAVA从理论到实践的探索

在计算机科学领域,贪心算法是一种简单而高效的算法设计策略,广泛应用于优化问题的求解。它通过在每一步选择中都采取当前状态下最优的选择,以期望最终得到全局最优解。本文将深入探讨贪心算法的原理、应用场景,并通过具体代码示例,帮助读者更好地理解和掌握这一算法。 一…

深度剖析Seata源码:解锁分布式事务处理的核心逻辑

文章目录 写在文章开头如何使用源码(配置转掉)基于AT模式详解Seata全链路流程Seata服务端启动本地服务如何基于GlobalTransaction注解开启事务客户端如何开启分布式事务RM和TC如何协调处理分支事务RM生成回滚日志事务全局提交与回滚小结参考写在文章开头 在当今分布式系统日益…