Centos使用docker搭建Graylog日志平台

Graylog是一款开源的日志管理系统,具备强大的过滤和搜索能力。

特点和适用场景:

  • 适合中小型企业、日志量不大或希望快速部署日志管理平台的团队。
  • 强调日志的聚合、报警、和简单分析。
  • 可按需轻量配置,仅分析核心日志。

下面介绍下它的安装:

1. 准备环境

安装 Docker 和 Docker Compose

  • 安装 Docker:

sudo yum install -y yum-utils

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

sudo yum install -y docker-ce docker-ce-cli containerd.io

sudo systemctl start docker

sudo systemctl enable docker

安装 Docker Compose:

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

docker-compose --version

2. 创建数据目录

为持久化存储 MongoDB 和 Elasticsearch 数据,创建本地目录:

mkdir -p /opt/graylog/mongo/data

mkdir -p /opt/graylog/elasticsearch/data

mkdir -p /opt/graylog/graylog

设置权限(确保 Docker 有权限写入):

sudo chown -R 1000:1000 /opt/graylog/elasticsearch/data

sudo chown -R 1000:1000 /opt/graylog/mongo/data

sudo chown -R 1000:1000 /opt/graylog/graylog

  1. 创建 Docker Compose 配置文件

version: '3'

services:

mongo:

image: mongo:5.0

container_name: mongo

restart: always

volumes:

  • /opt/graylog/mongo/data:/data/db

elasticsearch:

image: docker.elastic.co/elasticsearch/elasticsearch:7.10.2

container_name: elasticsearch

environment:

  • discovery.type=single-node

  • bootstrap.memory_lock=true

ulimits:

memlock:

soft: -1

hard: -1

mem_limit: 2g

volumes:

  • /opt/graylog/elasticsearch/data:/usr/share/elasticsearch/data

restart: always

graylog:

image: graylog/graylog:5.0

container_name: graylog

environment:

  • GRAYLOG_PASSWORD_SECRET=<生成的密码密钥>

  • GRAYLOG_ROOT_PASSWORD_SHA2=<你的密码的 SHA-256 值>

  • GRAYLOG_HTTP_BIND_ADDRESS=0.0.0.0:9000

depends_on:

  • mongo

  • elasticsearch

volumes:

  • /opt/graylog/graylog:/usr/share/graylog/data

ports:

  • "9000:9000"

  • "12201:12201/udp"

restart: always

替换占位符

  • 生成密码密钥 (GRAYLOG_PASSWORD_SECRET):

pwgen -N 1 -s 96

如果没有pwgen,则先执行下面的命令安装:

sudo yum install -y epel-release
sudo yum install -y pwgen

再生成密码密钥:

pwgen -N 1 -s 96

生成管理员密码哈希 (GRAYLOG_ROOT_PASSWORD_SHA2),下面的yourpassword需替换为具体密码:

echo -n "yourpassword" | sha256sum

将生成的值填入 docker-compose.ymlGRAYLOG_PASSWORD_SECRETGRAYLOG_ROOT_PASSWORD_SHA2

4. 启动服务

启动 Docker Compose

运行以下命令启动容器:

docker-compose up -d

查看容器状态

确保所有容器都在运行:

docker ps

5. 访问 Graylog

  • 打开浏览器访问 http://<服务器IP>:9000
  • 使用以下登录:
    • 用户名:admin
    • 密码:在 GRAYLOG_ROOT_PASSWORD_SHA2 中生成的原始密码。

6. 防火墙配置

如果使用防火墙,确保开放必要的端口:

sudo firewall-cmd --add-port=9000/tcp --permanent

sudo firewall-cmd --add-port=12201/udp --permanent

sudo firewall-cmd --reload

7. 日志和数据持久化检查

检查 Graylog 日志:

docker logs graylog

数据持久化验证:

  • MongoDB 数据 存储在 /opt/graylog/mongo/data
  • Elasticsearch 数据 存储在 /opt/graylog/elasticsearch/data
  • Graylog 配置和数据 存储在 /opt/graylog/graylog

8. 停止和重启服务

  • 停止服务:

docker-compose down

重启服务:

docker-compose up -d

Graylog总内存需求

  • 测试环境 (低日志量、少并发):

    总消耗约 4 GB(1 GB Graylog + 512 MB MongoDB + 2 GB Elasticsearch)。

  • 小型生产环境 (中等日志量、适度并发):

    总消耗约 6 GB(1.5 GB Graylog + 1 GB MongoDB + 4 GB Elasticsearch)。

  • 大型生产环境 (高日志量、高并发):

    总消耗可能在 8 GB - 16 GB 或更高

内存优化建议

  1. Elasticsearch 调优

    • 配置堆内存大小: 编辑 /etc/elasticsearch/jvm.options 或 Docker Compose 的 ES_JAVA_OPTS 环境变量:

      -Xms2g -Xmx2g

      -Xmx2g

建议分配总系统内存的 50%,但不要超过 32 GB。

2.Graylog Server 调优

  • 配置 Graylog 的 JVM 堆内存大小: 编辑 /etc/graylog/server/server.conf 或 Docker Compose 的 GRAYLOG_SERVER_JAVA_OPTS

GRAYLOG_SERVER_JAVA_OPTS="-Xms512m -Xmx1g"

3.MongoDB 调优:

使用 wiredTiger 存储引擎(默认),优化内存利用率。

4.日志清理:

配置日志保留时间,减少 Elasticsearch 的索引压力。

相关推荐
两点王爷16 分钟前
IDEA中springboot项目中连接docker
spring boot·docker·intellij-idea
家庭云计算专家24 分钟前
还没用过智能文档编辑器吗?带有AI插件的ONLYOFFICE介绍
服务器·人工智能·docker·容器·编辑器
Fireworkitte2 小时前
CentOS 和 RHEL
linux·centos
Waitccy3 小时前
Tomcat 配置 HTTPS 访问全攻略(CentOS 环境)
https·centos·tomcat·安全整改
孤的心了不冷3 小时前
【Docker】CentOS 8.2 安装Docker教程
linux·运维·docker·容器·eureka·centos
头疼的程序员4 小时前
docker学习与使用(概念、镜像、容器、数据卷、dockerfile等)
学习·docker·容器
IT小郭.4 小时前
使用 Docker Desktop 安装 Neo4j 知识图谱
windows·python·sql·docker·知识图谱·database·neo4j
淡水猫.4 小时前
hbit资产收集工具Docker(笔记版)
运维·docker·容器
旧故新长13 小时前
访问 Docker 官方镜像源(包括代理)全部被“重置连接”或超时
运维·docker·容器
white.tie13 小时前
Docker部署单节点Elasticsearch
elasticsearch·docker·jenkins