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 

 3. 创建 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_SECRET 和GRAYLOG_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 的索引压力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/475861.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RPC框架负载均衡

什么是负载均衡&#xff1f; 当一个服务节点无法支撑现有的访问量时&#xff0c;会部署多个节点&#xff0c;组成一个集群&#xff0c;然后通过负载均衡&#xff0c;将请求分发给这个集群下的每个服务节点&#xff0c;从而达到多个服务节点共同分担请求压力的目的。 负载均衡主…

JMeter监听器与压测监控之 InfluxDB

1. 简介 在本文中&#xff0c;我们将介绍如何在 Kali Linux 上通过 Docker 安装 InfluxDB&#xff0c;并使用 JMeter 对其进行性能监控。InfluxDB 是一个高性能的时序数据库&#xff0c;而 JMeter 是一个开源的性能测试工具&#xff0c;可以用于对各种服务进行负载测试和性能监…

Banana Pi BPI-CanMV-K230D-Zero 采用嘉楠科技 K230D RISC-V芯片设计

概述 Banana Pi BPI-CanMV-K230D-Zero 采用嘉楠科技 K230D RISC-V芯片设计,探索 RISC-V Vector1.0 的前沿技术&#xff0c;选择嘉楠科技的 Canmv K230D Zero 开发板。这款创新的开发板是由嘉楠科技与香蕉派开源社区联合设计研发&#xff0c;搭载了先进的勘智 K230D 芯片。 K230…

如何判断注入点传参类型--理论

注入点传参类型 在我们找到注入点后&#xff0c;首先要判断传参的类型&#xff0c;才能以正确的形式向数据库查询数据。 注入点传参一般分为数字型和字符型。 数字型&#xff1a;当传入的参数为整形时&#xff0c;存在SQL注入漏洞&#xff0c;就可以认为是数字型注入。 字符…

HarmonyOS(57) UI性能优化

性能优化是APP开发绕不过的话题&#xff0c;那么在HarmonyOS开发过程中怎么进行性能优化呢&#xff1f;今天就来总结下相关知识点。 UI性能优化 1、避免在组件的生命周期内执行高耗时操作2、合理使用ResourceManager3、优先使用Builder方法代替自定义组件4、参考资料 1、避免在…

AI Prompt Engineering

AI Prompt Engineering 简介 Prompt Engineering, 提示工程&#xff0c;是人工智能领域的一项技术&#xff0c;它旨在通过设计高效的提示词&#xff08;prompts&#xff09;来优化生成式 AI&#xff08;如 GPT、DALLE 等&#xff09;的输出。提示词是用户与生成式 AI 交互的核…

NVR接入录像回放平台EasyCVR视频融合平台加油站监控应用场景与实际功能

在现代社会中&#xff0c;加油站作为重要的能源供应点&#xff0c;面临着安全监管与风险管理的双重挑战。为应对这些问题&#xff0c;安防监控平台EasyCVR推出了一套全面的加油站监控方案。该方案结合了智能分析网关V4的先进识别技术和EasyCVR视频监控平台的强大监控功能&#…

大语言模型中ReLU函数的计算过程及其函数介绍

文章目录 概要ReLU定义 概要 **ReLU 作用&#xff1a;**主要用于为神经网络引入非线性能力&#xff0c;作用是将输入中的整数保留原值&#xff0c;负数置为 0。 从而在层与层之间引入非线性&#xff0c;使神经网络能够拟合复杂的非线性关系。 **ReLU使用场景&#xff1a;**Lla…

【图像检测】深度学习与传统算法的区别(识别逻辑、学习能力、泛化能力)

识别逻辑 深度学习 使用了端到端的学习策略&#xff0c;直接学习从图像到检测结果的映射关系&#xff0c;自动提取特征&#xff0c;并且根据特征与特征之间的关系&#xff0c;计算出检测结果。 传统算法 则是人工提取特征&#xff0c;比如边缘特征&#xff0c;直线特征&#x…

C++-第25课-哈希表性能的分析

目录 一、哈希表概述 1. 什么是哈希表​编辑 2. 哈希表的优点 3. 哈希表的缺点 二、哈希函数 常见哈希函数 三. 哈希冲突的原因和解决方法 一.哈希冲突的原因 二、哈希冲突的解决方法 1. 链表法&#xff08;Separate Chaining&#xff09; 2. 开放寻址法&#xff08;…

HDMI数据传输三种使用场景

视频和音频的传输 在HDMI传输音频中有3种方式进行传输&#xff0c;第一种将音频和视频信号被嵌入到同一数据流中&#xff0c;通过一个TMDS&#xff08;Transition Minimized Differential Signaling&#xff09;通道传输。第二种ARC。第三张种eARC。这三种音频的传输在HDMI线中…

LCR 184.设计自助结算系统

1.题目要求: 2.题目代码: class Checkout { public:deque<int> array;Checkout() {array.clear();}//求最大值int get_max() {if(array.size() 0){return -1;}else{vector<int> temp(array.begin(),array.end());vector<int> :: iterator it max_element…

Vue3-小兔鲜项目出现问题及其解决方法(未写完)

基础操作 &#xff08;1&#xff09;使用create-vue搭建Vue3项目 要保证node -v 版本在16以上 &#xff08;2&#xff09;添加pinia到vue项目 npm init vuelatest npm i pinia //导入creatPiniaimport {createPinia} from pinia//执行方法得到实例const pinia createPinia()…

VUE:基于MVVN的前端js框架

文章目录 vue框架v-show vue框架 注意是 先写函数名&#xff0c;再写function。 handle:function (){}下面是错误的 function:handle(){}3 v-show 本质上等于号后面还是判断条件&#xff0c;所以不能写赋值语句&#xff0c;下面是正确的 下面是错误的 v-show " ge…

金融数据中心容灾“大咖说” | Veritas的“高举高打”之道

中国人民银行发布的《金融数据中心容灾建设指引》&#xff08;JR/T 0264—2024&#xff09;已于2024年7月29日正式实施。这一金融行业标准对金融数据中心容灾建设中的“组织保障、需求分析、体系规划、建设要求、运维管理”进行了规范和指导。面对不断增加的各类网络、业务、应…

VUE字符串转日期加天数

文章为本新手菜鸡的问题记录&#xff0c;如有错误和不足还行大佬指正 文章目录 问题描述解决方法 问题描述 得到一串字符串的日期&#xff0c;因为不是规范的日期格式&#xff0c;无法使用moment().add()方法&#xff0c;那么如何实现增加天数的操作&#xff1f; 解决方法 1…

高校企业数据挖掘平台推荐

TipDM数据挖掘建模平台是由广东泰迪智能科技股份有限公司自主研发打造的可视化、一站式、高性能的数据挖掘与人工智能建模服务平台&#xff0c;致力于为使用者打通从数据接入、数据预处理、模型开发训练、模型评估比较、模型应用部署到模型任务调度的全链路。平台内置丰富的机器…

《TCP/IP网络编程》学习笔记 | Chapter 14:多播与广播

《TCP/IP网络编程》学习笔记 | Chapter 14&#xff1a;多播与广播 《TCP/IP网络编程》学习笔记 | Chapter 14&#xff1a;多播与广播多播多播的数据传输方式和特点路由&#xff08;Routing&#xff09;和 TTL&#xff08;Time to Live&#xff0c;生存时间&#xff09;&#xf…

利用 TensorFlow Profiler:在 AMD GPU 上优化 TensorFlow 模型

TensorFlow Profiler in practice: Optimizing TensorFlow models on AMD GPUs — ROCm Blogs 简介 TensorFlow Profiler 是一组旨在衡量 TensorFlow 模型执行期间资源利用率和性能的工具。它提供了关于模型如何与硬件资源交互的深入见解&#xff0c;包括执行时间和内存使用情…

游戏引擎学习第15天

视频参考:https://www.bilibili.com/video/BV1mbUBY7E24 关于游戏中文件输入输出&#xff08;IO&#xff09;操作的讨论。主要分为两类&#xff1a; 只读资产的加载 这部分主要涉及游戏中用于展示和运行的只读资源&#xff0c;例如音乐、音效、美术资源&#xff08;如 3D 模型和…