【Ubuntu】简洁高效企业级日志平台后起之秀Graylog

news2025/1/15 23:42:10

简介

Graylog 是一个用于集中式日志管理的开源平台。在现代数据驱动的环境中,我们需要处理来自各种设备、应用程序和操作系统的大量数据。Graylog提供了一种方法来聚合、组织和理解所有这些数据。它的核心功能包括流式标记、实时搜索、仪表板可视化、告警触发、内容包快速配置、索引设置、日志发射器管理和处理管道。

  1. 流(Streams):流作为对传入消息进行标记的方法。它可以实时将消息路由到不同的类别,并使用规则指示Graylog将消息路由到适当的流中。

  2. 搜索(Search):Graylog提供了一个搜索页面,可以直接搜索日志。使用类似于Lucene的简化语法,用户可以从下拉菜单中配置相对或绝对的时间范围。搜索结果可以保存,也可以作为仪表板小部件进行可视化,从搜索界面直接添加到仪表板中。

  3. 仪表板(Dashboards):仪表板是对日志事件中包含的信息进行可视化或摘要的方式。每个仪表板由一个或多个小部件组成,通过使用字段值生成数据来可视化或摘要事件日志数据,如计数、平均值或总数。用户可以创建指标、图表、图形和地图来更直观地呈现数据。

  4. 告警(Alerts):通过事件定义和条件创建告警。当特定条件满足时,将其存储为事件,并触发通知。

  5. 内容包(Content Packs):内容包可以加速特定数据源的设置过程。它可以包含输入/提取器、流、仪表板、告警和处理管道。例如,用户可以为支持安全用例创建自定义输入、流、仪表板和告警。然后,将内容包导出,并在新安装的Graylog实例上导入,以便节省配置时间和工作量。

  6. 索引(Indexes):索引是OpenSearch和Elasticsearch中存储数据的基本单位。索引集提供了保留、分片和复制等存储数据的配置选项。通过在每个索引上设置值,如保留和轮换策略,可以对不同的数据应用不同的处理规则。

  7. Graylog Sidecar:Graylog Sidecar是一种管理日志发射器(如Beats或NXLog)的代理工具。这些日志发射器用于收集Linux和Windows服务器的操作系统日志。日志发射器读取本地日志文件,然后将其发送到集中式日志管理解决方案。Graylog支持管理任何日志发射器作为后端。

  8. 处理管道(Processing Pipelines):Graylog的处理管道允许用户对特定类型的事件运行规则或一系列规则。通过与流关联,管道可实现消息的路由、拒绝列表、修改和丰富,提高数据处理的灵活性。

通过这些核心功能,Graylog提供了强大而灵活的工具来帮助用户收集、解析和分析日志数据,从而发现问题并做出相应决策。无论是小型企业还是大型组织,Graylog都为日志管理提供了全面可靠的解决方案。

Graylog最简架构

Graylog基于把日志存储在数据节点、使用Elasticsearch或OpenSearch作为搜索引擎来提供强大的日志管理和分析功能。

  • Graylog服务器
    Graylog服务器是Graylog架构中的核心组件,它通过与数据节点交互,为用户提供一个简化的数据访问和搜索接口。用户可以通过Graylog服务器提交搜索查询,而无需直接与数据节点进行交互,从而极大地简化了数据的访问和处理过程。
  • 数据节点
    日志数据存储在数据节点中,其中可以使用Elasticsearch或OpenSearch作为存储引擎。这两个开源搜索引擎具备强大的索引和搜索能力,使用户能够高效地查询和分析大量的日志数据。Graylog 5.1仅支持Elasticsearch的7.10.2版本!我们建议您使用OpenSearch 2.5作为数据节点以支持Graylog 5.1。
  • MongoDB
    MongoDB用于存储元数据,如用户信息和流配置。这些数据并不包含实际的日志数据,因此对系统性能影响较小。MongoDB运行在Graylog服务器进程旁边,占用的磁盘空间很小。
    在这里插入图片描述

之前的文章中【Graylog之最小化部署安装(Ubuntu 22.04)】有介绍如何在Ubuntu 22.04上最小化安装Graylog,这次我们换成在Docker中最小化来部署Garylog,同时我们也将原来的Elasticsearch换成了OpenSearch。

部署

主机设置

在启动 OpenSearch 之前,您应该查看一些重要的系统设置,这些设置可以影响服务的性能。

  • 关闭主机上的内存分页和交换以提高性能。
 sudo swapoff -a
  • 增加 OpenSearch 可用的内存映射数量。
# 检查 sysctl.conf 文件中是否已经存在 vm.max_map_count 设置
if grep -q "vm.max_map_count" /etc/sysctl.conf; then
    # 如果已存在设置,则使用 sed 命令将其修改为 262144
    sudo sed -i 's/vm.max_map_count.*/vm.max_map_count=262144/' /etc/sysctl.conf
else
    # 如果不存在设置,则在文件末尾添加新的设置
    echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf
fi

# 重新加载内核参数
sudo sysctl -p

# 通过检查值来验证更改是否已应用
cat /proc/sys/vm/max_map_count

拉取如下三个镜像

docker pull mongo
docker pull opensearchproject/opensearch:latest
docker pull graylog/graylog:5.1

编辑Docker Compose文件并启动

version: '3'
services:
  mongo:
    image: mongo
    restart: always
    volumes:
      - mongo_data:/data/db
    networks:
      - graylog-net
  opensearch:
    image: opensearchproject/opensearch:latest
    restart: always
    environment:
      - cluster.name=graylog
      - node.name=opensearch
      - discovery.type=single-node
      - network.host=0.0.0.0
      - action.auto_create_index=false
      - plugins.security.disabled=true
      - "OPENSEARCH_JAVA_OPTS=-Xms1g -Xmx1g"
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 65536
        hard: 65536
    volumes:
      - opensearch_data:/usr/share/opensearch/data
    networks:
      - graylog-net
  graylog:
      image: graylog/graylog:5.1
      restart: always
      environment:
       - GRAYLOG_PASSWORD_SECRET=GrayLog@12345678
       - GRAYLOG_ROOT_PASSWORD_SHA2=8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918
       - GRAYLOG_HTTP_EXTERNAL_URI=http://127.0.0.1:9000/
       - GRAYLOG_TRANSPORT_EMAIL_ENABLED=true
       - GRAYLOG_TRANSPORT_EMAIL_HOSTNAME=smtp.tech.com
       - GRAYLOG_TRANSPORT_EMAIL_PORT=25
       - GRAYLOG_TRANSPORT_EMAIL_USE_AUTH=false
       - GRAYLOG_TRANSPORT_EMAIL_USE_TLS=false
       - GRAYLOG_TRANSPORT_EMAIL_USE_SSL=false
       - GRAYLOG_ELASTICSEARCH_HOSTS=http://opensearch:9200
       - GRAYLOG_ROOT_TIMEZONE=Asia/Shanghai
      entrypoint: /usr/bin/tini -- wait-for-it opensearch:9200 --  /docker-entrypoint.sh
      networks:
        - graylog-net
      depends_on:
        - mongo
        - opensearch
      ports:
       - 9000:9000
       - 1514:1514
       - 1514:1514/udp
       - 2055:2055
      volumes:
       - graylog_data:/usr/share/graylog/data
       - /etc/timezone:/etc/timezone
       - /etc/localtime:/etc/localtime
volumes:
  mongo_data:
    driver: local
  opensearch_data:
    driver: local
  graylog_data:
    driver: local
networks:
  graylog-net:

以上主要定义了三个服务:MongoDB、OpenSearch和Graylog,并设置了它们的相关配置。
MongoDB服务使用mongo镜像,设置了持续重启(restart: always)。它将/data/db目录挂载为mongo_data卷,并与graylog-net网络关联。
OpenSearch服务使用opensearchproject/opensearch:latest镜像,同样设置了持续重启。它定义了一系列环境变量用于配置OpenSearch,包括集群名称、节点名称、发现类型、网络主机、禁用安全插件等等。此外,还设置了内存锁定和文件打开限制等系统限制。/usr/share/opensearch/data目录被挂载为opensearch_data卷,并与graylog-net网络关联。
Graylog服务使用graylog/graylog:5.1镜像,同样设置了持续重启。它定义了一系列环境变量来配置Graylog,包括密码密钥、根密码哈希、HTTP外部URI、电子邮件传输配置、OpenSearch主机等等。入口点是/usr/bin/tini -- wait-for-it opensearch:9200 -- /docker-entrypoint.sh,它在启动Graylog之前将等待OpenSearch服务就绪。Graylog服务与graylog-net网络关联,并依赖于MongoDB和OpenSearch服务。端口映射包括9000用于Web界面、1514和2055用于接收日志数据。关于Graylog的一系列环境变量都可以通过环境变量进行设置。只需将参数名称以GRAYLOG_为前缀,并全部使用大写字母。具体配置参考【service.conf】。

另外,该docker-compose.yml文件定义了三个卷:mongo_dataopensearch_datagraylog_data,它们分别用于持久化存储MongoDB、OpenSearch和Graylog的数据。
最后,定义了一个名为graylog-net的网络,用于连接MongoDB、OpenSearch和Graylog服务。
请注意,您需要根据您自己的配置和需求进行适当的更改,例如更改密码、主机名、网络配置等。保存并命名为docker-compose.yml文件,然后在包含该文件的目录中运行以下命令启动这三个服务:

docker-compose up -d

这将启动MongoDB、OpenSearch和Graylog服务,并您可以通过访问http://hostip:9000/来访问Graylog的Web界面。以上YML文件中定义的默认用户名密码为 admin/admin
在这里插入图片描述

Reference:
[1] https://opensearch.org/docs/latest/install-and-configure/install-opensearch/docker/
[2] https://go2docs.graylog.org/5-0/setting_up_graylog/server.conf.html
[3] https://www.joda.org/joda-time/timezones.html
[4] https://go2docs.graylog.org/5-1/downloading_and_installing_graylog/docker_installation.htm
[5] https://hub.docker.com/r/graylog/graylog
[6] https://hub.docker.com/r/opensearchproject/opensearch
[7] https://hub.docker.com/_/mongo

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

spring(1)

文章目录 IOC容器IOC容器和beans的介绍实例化 BeanBeanFactory:ApplicationContext 容器概述配置元数据实例化容器组合基于xml的配置元数据使用容器 bean的概述命名bean别名的使用 实例化bean构造函数实例化静态工厂实例化实例工厂方法bean 在运行时的实际类型 依赖…

Microsoft Learn AI 技能挑战赛|开启你的 Azure OpenAI Service 应用

点击蓝字 关注我们 Microsoft Learn AI 技能挑战赛已经结束,完赛的小伙伴请保存完赛截图并登记奖品领取表单!此外,挑战赛作品提交将截止到8月18日,优秀作品将获得惊喜礼包奖励。 奖品领取、作品提交等详情请查看: 活动…

Docker入门——实战图像分类

一、背景 思考: 在一个项目的部署阶段,往往需要部署到云服务器或者是终端设备上,而环境的搭建往往是最费时间和精力的,特别是需要保证运行环境一致性,有什么办法可以批量部署相同环境呢? Docker本质——…

揭秘热门工作秘籍:ChatGPT大显身手!轻松提升工作效率的高效Prompt技巧曝光!

目录 01 背景 福利:文末有chat-gpt纯分享,无魔法,无限制 02 AI 可以帮助程序员做什么? 2.1 技术知识总结 2.2 拆解任务 2.3 阅读代码/优化代码 2.4 代码生成 2.5 生成单测 2.6 更多 AI 应用/插件 AIPRM Voice Control for Ch…

改善神经网络——优化算法(mini-batch、动量梯度下降法、Adam优化算法)

改善神经网络——优化算法 梯度下降Mini-batch 梯度下降(Mini-batch Gradient Descent)指数加权平均包含动量的梯度下降RMSprop算法Adam算法 优化算法可以使神经网络运行的更快,机器学习的应用是一个高度依赖经验的过程,伴随着大量…

SUMO 充电站与电动车详解

官方文档参考&#xff1a;Electric 创建电动车 首先在rou.xml文件中定义一个电动车类型&#xff0c;例如&#xff1a; <vType id"EV" length"5.00" minGap"2.50" maxSpeed"70.00" color"white" accel"1.0" …

【边缘设备】yolov5训练与rknn模型导出并在RK3588部署~2.环境验证(亲测有效)

保姆级教程&#xff0c;看这一篇就够用了。 在翻阅了网络上很多资料后&#xff0c;发现很多版本的信息比匹配。 花了一周的时间配置环境&#xff0c;以及环境验证&#xff0c;然后写了这篇长文。 有过程&#xff0c;有代码&#xff0c;有经验&#xff0c;欢迎大家批评指正。 一…

Linux 操作文件的系统调用

一、系统调用 系统调用表现出来的形式和库函数看着是一样的&#xff0c;但是系统调用的实现是在内核中&#xff0c;一旦执行系统调用以后&#xff0c;会产生中断&#xff0c;陷入内核&#xff0c;内核去执行相应的代码。我们无法直接去执行内核的代码&#xff0c;系统调用执行…

烧烤炉跨境电商UL检测报告UL 2728A标准

烧烤炉是一种烧烤设备&#xff0c;可以用来做烤羊肉串、烤肉、烤蔬菜等烧烤食品。烧烤炉根据加热源的不同可以分为木炭烧烤炉、燃气烧烤炉和电热烧烤炉&#xff1b;根据烧烤形式的不同&#xff0c;可分为手动烧烤炉和自动烧烤炉&#xff1b;根据用途的不同&#xff0c;可分为家…

如何使用PE修改win10系统的开机密码

前言&#xff1a;忘记自已电脑密码的人真的是太可怜了&#xff0c;半年多的时间没在公司&#xff0c;公司电脑也有半年多没有碰过&#xff0c;导致再回公司上班电脑密码早就忘记了。平时各类电子设备&#xff0c;软件应用的密码都是设成一样的&#xff0c;公司电脑因为有保密机…

ACM模式专业集训

在笔试的时候&#xff0c;大部分都是ACM模式&#xff0c;这让我们习惯于leetcode刷题确实输入输出很难下手&#xff0c;有的时候&#xff0c;明明题可以做出来&#xff0c;但是就是因为输入输出比较欠缺&#xff0c;因此无缘笔试&#xff0c;所以我们在平常的时候应该多去用ACM…

Scratch 之 翻页器制作

众所周知&#xff0c;在原版scratch上有一块480360大小的屏幕。但是我们如果在scratch编译器上编一些文字比较多的文章时&#xff0c;就会发现&#xff1a;字太多舞台区大小不够用怎么办&#xff1f;别着急&#xff0c;看我怎么解决。 标题大家都看到了吧&#xff0c;这个作品解…

pe文件的Import table导入表的手工修复

一、实验目的&#xff1a; 实验提供了一个不能正常运行的程序&#xff0c;如果在正常运行的情况下&#xff0c;程序的功能是弹出一个messagebox&#xff0c;然后正常退出。要做的&#xff0c;是通过排查错误&#xff0c;找到问题所在&#xff0c;修改程序&#xff0c;使其正常运…

猿辅导发布素质教育品牌,助力孩子学习底层能力培养

近年来&#xff0c;我国教育改革逐步深化&#xff0c;发展素质教育已成社会共识。2022年教育部发布新课标&#xff0c;根据学生的核心素养要求&#xff0c;确定了各门课程具体目标&#xff0c;优化了课程内容结构。其中&#xff0c;跨学科学习、探究式学习成为了新的学习方式。…

bigemap如何添加在线高清卫星图?

一、先那安装bigemap 软件 BIGEMAP电脑全能版 下载连接&#xff1a;http://www.bigemap.com/reader/download/detail201802015.html 二、鼠标放在左上角选择地图源这里&#xff0c;点击第一个加号按钮 选择从配置文件添加在线地图 吧地图配置文件选择导入添加&#xff0c;勾选…

【取证】2022美亚杯资格赛个人赛

【取证】2022美亚杯资格赛个人赛 加载检材创建案件个人赛部分&#xff08;共70题&#xff09;1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.54.55.56.57.58.59.6…

攻防演习常用威胁情报中心

攻防演习常用威胁情报中心 微步在线&#xff1a;https://x.threatbook.com/绿盟威胁分析中心&#xff1a;https://poma.nsfocus.com/奇安信威胁情报中心&#xff1a;https://ti.qianxin.com/360安全大脑&#xff1a;https://sc.360.net/360沙箱云地址“”https://ata.360.net/天…

使用pysnmp报错lambda错误

pip install pyasn10.4.8 pysnmp4.4.12 python - Takes exactly 3 arguments (4 given) - Stack Overflow

CorelDRAW2023(简称CDR23)官方最新中文版下载教程

CorelDRAW&#xff08;简称CDR&#xff09;是一款专业的图形设计软件。该软件是加拿大Corel公司开发的一款功能强大的专业平面设计软件、矢量设计软件、矢量绘图软件。这款矢量图形制作工具软件广泛应用于商标设计、标志制作、封面设计、CIS设计、产品包装造型设计、模型绘制、…

树的子结构

声明 该系列文章仅仅展示个人的解题思路和分析过程&#xff0c;并非一定是优质题解&#xff0c;重要的是通过分析和解决问题能让我们逐渐熟练和成长&#xff0c;从新手到大佬离不开一个磨练的过程&#xff0c;加油&#xff01; 原题链接 树的子结构https://leetcode.cn/leet…