Docker部署Graylog日志管理系统
作者:老友@
前言
Graylog 是一个开源的日志管理平台,专为实时日志收集、分析和可视化设计。它支持强大的搜索功能,并且与 Elasticsearch 和 MongoDB 集成。通过 Docker 部署 Graylog 可以快速搭建一个完整的日志管理系统。
本文将展示如何使用 Docker 和 Docker Compose 来部署 Graylog、Elasticsearch 和 MongoDB。
一、准备工作
首先,确保你的系统上已经安装了 Docker。
Linux上进行Docker安装有两种方式:
- Docker自动化安装
- 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
网络模式,容器会直接使用宿主机的网络接口。
- 使用官方 MongoDB 镜像
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.0
和network.host=0.0.0.0
允许来自任意 IP 的访问。 - 设置了单节点模式
discovery.type=single-node
,适用于开发和测试环境。
- 使用 Elasticsearch 7.10.2 版本的 OSS 镜像
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 官方镜像
三、启动 Graylog 服务
在完成 docker-compose.yml 文件的配置后,使用以下命令启动服务:
docker-compose up -d
该命令会在后台启动 MongoDB、Elasticsearch 和 Graylog 服务。
四、访问 Graylog Web 界面
部署完成后,你可以通过浏览器访问 Graylog 的 Web 界面:
http://<your-server-ip>:9000
默认的登录信息:
- 用户名:
admin
- 密码:
admin
(如果没有更改密码)
总结
通过 Docker 和 Docker Compose 部署 Graylog,能够快速搭建一个日志管理平台,提供强大的日志搜索和分析功能。本文展示了如何使用 Docker 配置并运行 MongoDB、Elasticsearch 和 Graylog 服务,确保系统在容器中运行并持久化数据。
到此这篇关于Docker部署Graylog日志管理系统的文章就介绍到这了,更多相关Docker Graylog日志内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!