graylog~认识一下-日志管理平台

embedded/2025/1/23 19:41:16/

1、介绍

Graylog 是一个开源的日志管理和分析平台,旨在帮助企业集中收集、存储、搜索和分析来自各种来源的日志数据。它提供了强大的实时日志处理能力,适用于大规模分布式系统和复杂的生产环境。
主要功能

  • 集中化日志管理:
    收集来自不同来源的日志,包括应用程序、服务器、网络设备等。
    支持多种输入插件,如GELF(Graylog Extended Log Format)、Syslog、Beats等。

  • 实时日志分析:
    提供实时日志流处理和可视化功能。
    支持复杂的查询语言,可以快速定位和分析问题。

  • 告警和通知:
    可以设置基于规则的告警,当满足特定条件时触发通知。
    支持多种通知方式,如电子邮件、Slack、PagerDuty等。

  • 仪表盘和报表:
    创建自定义仪表盘,展示关键指标和趋势。
    生成定期报表,帮助团队了解系统健康状况。

  • 扩展性和灵活性:
    支持横向扩展,能够处理海量日志数据。
    提供丰富的插件和API,方便集成到现有基础设施中。

graylog依赖框架

  • mongodb
  • elasticsearch

mongodb主要负责持久化切块存储,elasticsearch则用于全文检索提升检索速度

在这里插入图片描述

graylog_31">2、graylog部署

(1)安装docker【略】
(2)安装docker-compose
i、官网下载安装包安装

https://github.com/docker/compose/releases

在这里插入图片描述
(ii)将文件上传服务器,修改文件名为docker-compose
在这里插入图片描述
(iii)授权文件

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

(iv)创建软连接

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

(v)查看版本

docker-compose --version

在这里插入图片描述
安装完毕

(3)安装graylog
(i)创建目录并授权

mkdir -p /opt/app/logs/graylog/mongo_data
mkdir -p /opt/app/logs/graylog/es_data
mkdir -p /opt/app/logs/graylog/graylog_data
mkdir -p /opt/app/logs/graylog/graylog_data/configchmod 777 -R /opt/app/logs/graylog/mongo_data
chmod 777 -R /opt/app/logs/graylog/es_data
chmod 777 -R /opt/app/logs/graylog/graylog_data
chmod 777 -R /opt/app/logs/graylog/graylog_data/config

(ii)下载配置文件

wget http://raw.githubusercontent.com/Graylog2/graylog-docker/4.3/config/graylog.conf
wget http://raw.githubusercontent.com/Graylog2/graylog-docker/4.3/config/log4j2.xml

(iii)修改配置文件

vim /opt/graylog/graylog_data/config/graylog.conf

新增:
国内时区:root_timezone = PRC

修改
查询高亮:allow_highlighting = true

(iv)进到目录/opt/app/logs/graylog/graylog_data/config创建docker-compose.yml

version: '3'
services: mongodb:container_name: mongodbimage: mongo:4.4.0restart: alwaysvolumes:- /opt/graylog/mongo_data:/data/db- /etc/localtime:/etc/localtime:ro- /usr/share/zoneinfo/Asia/Shanghai:/etc/timezone:roelasticsearch:image: docker.elastic.co/elasticsearch/elasticsearch-oss:7.10.2container_name: elasticsearchrestart: alwaysvolumes:- /opt/graylog/es_data:/usr/share/elasticsearch/data- /etc/localtime:/etc/localtime:ro- /usr/share/zoneinfo/Asia/Shanghai:/etc/timezone:roports:- 9200:9200- 9300:9300environment:- 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'graylog:image: graylog/graylog:4.3.6container_name: graylogrestart: alwaysvolumes:- /opt/graylog/graylog_data:/usr/share/graylog/data- /etc/localtime:/etc/localtime:ro- /usr/share/zoneinfo/Asia/Shanghai:/etc/timezone:roenvironment:# 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:9191/- GRAYLOG_MONGODB_URI=mongodb://mongodb:27017/graylog- GRAYLOG_ELASTICSEARCH_HOSTS=http://elasticsearch:9200- TZ=Asia/Shanghaientrypoint: /usr/bin/tini -- wait-for-it elasticsearch:9200 --  /docker-entrypoint.shdepends_on:- mongodb- elasticsearchlinks:- mongodb- elasticsearchports:# Graylog web interface and REST API- 9191:9000# Syslog TCP- 1514:1514# Syslog UDP- 1514:1514/udp# GELF TCP- 12201:12201# GELF UDP- 12201:12201/udp

(v) 启动

docker-compose up -ddocker-compose -f docker-compose.yml up -d

在这里插入图片描述
完成部署

3、使用

(1)项目集成
(i)项目引入依赖【使用合适版本,存在坑,不兼容问题】

<dependency><groupId>de.siegmar</groupId><artifactId>logback-gelf</artifactId><version>6.1.1</version>
</dependency>

兼容表如下
在这里插入图片描述

官网:https://go2docs.graylog.org/5-2/downloading_and_installing_graylog/installing_graylog.html

(ii)配置
在日志配置文件添加以下配置【记得注册一下】

 <!-- graylog日志配置 --><appender name="GELF_LOG" class="de.siegmar.logbackgelf.GelfUdpAppender"><!-- Graylog服务的地址 --><graylogHost>113.45.184.58</graylogHost><!-- UDP Input端口 --><graylogPort>12201</graylogPort><!--以下为可选配置--><maxChunkSize>508</maxChunkSize><useCompression>true</useCompression><encoder class="de.siegmar.logbackgelf.GelfEncoder"><!-- 是否发送原生的日志信息 --><includeRawMessage>true</includeRawMessage><includeMarker>true</includeMarker><includeMdcData>true</includeMdcData><includeCallerData>true</includeCallerData><includeRootCauseData>true</includeRootCauseData><includeLevelName>true</includeLevelName><!-- 是否发送日志级别的名称,否则默认以数字代表日志级别 --><includeLevelName>true</includeLevelName><shortPatternLayout class="ch.qos.logback.classic.PatternLayout"><pattern>%m%nopex</pattern></shortPatternLayout><fullPatternLayout class="ch.qos.logback.classic.PatternLayout"><!-- 使用定义的格式模式 --><pattern>[%-5level]\t%d{yyyy-MM-dd HH:mm:ss.SSS}\t%thread\t%logger\t%file:%line\t[%X{traceid}]\t%msg%n</pattern></fullPatternLayout><!--配置应用名称(服务名称),通过staticField标签可以自定义一些固定的日志字段--><staticField>app_name:${APP_NAME}</staticField></encoder></appender>

在这里插入图片描述
(2)打开控制台绑定项目

(i) 访问平台

http://ip:端口
eg: http://127.0.0.1:9999

在这里插入图片描述
账号/密码:admin/admin

(ii)设置保存时间
在这里插入图片描述
在这里插入图片描述
(iii)绑定项目
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


http://www.ppmy.cn/embedded/156385.html

相关文章

MongoDB的索引与聚合

一、实验目的 1. 理解索引的概念及其在MongoDB中的重要性和作用。 2. 学习如何选择适合建立索引的字段。 3. 掌握如何创建、删除索引以及如何强制使用索引。 4. 熟悉MongoDB的聚合框架和MapReduce工具&#xff0c;以及简单聚合命令的使用。 二、实验环境准备 1. JAV…

云原生前端开发:打造现代化高性能的用户体验

引言&#xff1a;前端开发的新风向 在过去的几年中&#xff0c;前端开发领域经历了快速的演变&#xff0c;从早期的静态网页到如今复杂的单页应用&#xff08;SPA&#xff09;&#xff0c;再到微前端架构和渐进式Web应用&#xff08;PWA&#xff09;&#xff0c;前端技术一直处…

Axios发起HTTP请求时的先后执行顺序

书写如下代码时&#xff0c;日志输出的顺序不可控&#xff0c;可能是"you How are"&#xff0c;也可能是"you are How" <script> import axios from axios export default {created() {this.fn1()this.fn2()console.log(you)},methods: {fn1() {axi…

C语言程序设计十大排序—插入排序

文章目录 1.概念✅2.插入排序&#x1f388;3.代码实现✅3.1 直接写✨3.2 函数✨ 4.总结✅5.十大排序 1.概念✅ 排序是数据处理的基本操作之一&#xff0c;每次算法竞赛都很多题目用到排序。排序算法是计算机科学中基础且常用的算法&#xff0c;排序后的数据更易于处理和查找。在…

通过以太网加载linux内核、设备树、根文件系统方法(以stm32MP135为例)

0 硬件平台 正点原子stm32MP135开发板 1 通过以太网加载linux内核、设备树、根文件系统方法&#xff08;以stm32MP135为例&#xff09; 在产品正式发布前&#xff0c;为了调试方便&#xff0c;我们可以使用以太网加载linux内核、设备树、根文件系统以加快调试速度。本文以stm3…

论文笔记-NeruIPS2024-LLM-ESR

论文笔记-NeruIPS2024-LLM-ESR: Large Language Models Enhancement for Long-tailed Sequential Recommendation LLM-ESR&#xff1a;用于长尾序列推荐的大模型增强摘要1.引言2.问题定义3.LLM-ESR3.1概述3.2双视图建模3.2.1语义视图建模3.2.2协同视图建模3.2.3两级融合 3.3检索…

centos下设置服务器开机自启动 redis

在客户服务器中&#xff0c;服务器重启&#xff0c;发现 Redis 没有重启&#xff0c; 可以按照类似的步骤来创建自启动脚本&#xff0c;并将它添加到定时任务中。 解决办法&#xff1a; 1. 创建自启动脚本 进入服务器并创建脚本文件&#xff0c;例如 /usr/local/bin/redis_…

类和对象——类的对象占用内存的大小计算

类的对象大小的计算 类的对象大小的计算1 案例分析2 如何计算类对象的大小案例分析中的猜测结构体内存对齐规则 类的对象大小的计算 1 案例分析 #include<iostream>class Date { public:void Init(int year, int mouth, int day) {year year;_mouth mouth;day_ day;…