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

1、介绍

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

主要功能

  • 集中化日志管理:

    收集来自不同来源的日志,包括应用程序、服务器、网络设备等。

    支持多种输入插件,如GELF(Graylog Extended Log Format)、Syslog、Beats等。

  • 实时日志分析:

    提供实时日志流处理和可视化功能。

    支持复杂的查询语言,可以快速定位和分析问题。

  • 告警和通知:

    可以设置基于规则的告警,当满足特定条件时触发通知。

    支持多种通知方式,如电子邮件、Slack、PagerDuty等。

  • 仪表盘和报表:

    创建自定义仪表盘,展示关键指标和趋势。

    生成定期报表,帮助团队了解系统健康状况。

  • 扩展性和灵活性:

    支持横向扩展,能够处理海量日志数据。

    提供丰富的插件和API,方便集成到现有基础设施中。

graylog依赖框架

  • mongodb
  • elasticsearch

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

2、graylog部署

(1)安装docker【略】

(2)安装docker-compose

i、官网下载安装包安装

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

(ii)将文件上传服务器,修改文件名为docker-compose

(iii)授权文件

bash 复制代码
sudo chmod +x /usr/local/bin/docker-compose

(iv)创建软连接

bash 复制代码
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

(v)查看版本

bash 复制代码
docker-compose --version

安装完毕

(3)安装graylog

(i)创建目录并授权

bash 复制代码
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/config


chmod 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)下载配置文件

bash 复制代码
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)修改配置文件

bash 复制代码
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

yaml 复制代码
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
 
 
  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
    ports:
      - 9200:9200
      - 9300:9300
    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'
 
 
  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:9191/
      - GRAYLOG_MONGODB_URI=mongodb://mongodb:27017/graylog
      - GRAYLOG_ELASTICSEARCH_HOSTS=http://elasticsearch:9200
      - TZ=Asia/Shanghai
    entrypoint: /usr/bin/tini -- wait-for-it elasticsearch:9200 --  /docker-entrypoint.sh
    depends_on:
      - mongodb
      - elasticsearch
    links:
      - mongodb
      - elasticsearch
    ports:
      # 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) 启动

bash 复制代码
docker-compose up -d

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

完成部署

3、使用

(1)项目集成

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

xml 复制代码
<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)配置

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

xml 复制代码
 <!-- 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)绑定项目






相关推荐
斯普信专业组7 小时前
深入探究分布式日志系统 Graylog:架构、部署与优化
分布式·架构·graylog
迷茫运维路19 小时前
Graylog采集MySQL慢日志实战
运维·mysql·graylog·日志系统
迷茫运维路17 天前
graylog+sidecar通过docker-compose部署并采集SSH登录日志
运维·docker·ssh·graylog·pipelines
栀寒老醑20 天前
ELK日志收集
linux·运维·服务器·nginx·elk·centos·graylog
vvw&1 个月前
如何在 Ubuntu 22.04 上安装 Graylog 开源日志管理平台
linux·运维·服务器·ubuntu·开源·github·graylog
shen121381 个月前
【Graylog】索引别名deflector的异常处理和索引分片数限制解除
运维·elasticsearch·graylog
大地爱1 个月前
日志平台--graylog-web配置、接入微服务日志
前端·微服务·graylog
IT-民工211102 个月前
日志集中化解决方案(如ELK或Graylog)
linux·运维·服务器·elk·graylog
moxiaoran57532 个月前
Centos使用docker搭建Graylog日志平台
docker·centos·graylog