使用 Graylog 管理服务日志

使用 Graylog 管理服务日志搭建

日志管理是一件麻烦的事情,特别是服务多的情况下出了问题需要排错、分析非常困难,一般会使用 ELK,但这篇文章将会介绍另外一个同样优秀的日志聚合平台 Graylog

准备工作

安装 docker、安装 pip、安装 docker-compose

Graylog 配置文件

graylog 的配置文件有两个,graylog.conf、log4j2.xml,其中 graylog.conf 的内容经常会有改动,可能会导致启动失败,所以请从下面的地址下载(同样是官方配置,只是版本不同)

# graylog.conf https://github.com/kwkwc/dockerSH/blob/master/services/graylog/config/graylog.conf # log4j2.xml https://github.com/kwkwc/dockerSH/blob/master/services/graylog/config/log4j2.xml 

注意事项

graylog 依赖 mongo、elasticsearch,如果机器配置低可能会启动失败

docker-compose.yml 文件

由于个人倾向于服务的独立性,所以会单独配置 mongo、elasticsearch、graylog

mongo

version: '2' services: graylog-mongo: restart: always image: mongo:3.6.4 container_name: graylog-mongo volumes: - ../data/graylog-mongo:/data/db 

elasticsearch

version: '2' services: graylog-elasticsearch: restart: always image: elasticsearch:5.6.9 container_name: graylog-elasticsearch volumes: - ../data/graylog-elasticsearch:/usr/share/elasticsearch/data environment: - http.host=0.0.0.0 - transport.host=localhost - network.host=0.0.0.0 - xpack.security.enabled=false - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 mem_limit: 1g 

graylog

version: '2' services: graylog: restart: always image: graylog/graylog:2.4.5-2 container_name: graylog volumes: # 配置文件这里挂载 - ./config:/usr/share/graylog/data/config # 持久化数据 - ../data/graylog:/usr/share/graylog/data/journal environment: # 密码盐值,随便改 - GRAYLOG_PASSWORD_SECRET=gr8r3hbnvfs73b8wefhweufpokdnc # 管理员名称 - GRAYLOG_ROOT_USERNAME=admin # 密码需要填写 SHA256 加密的密文,例如这里是 admin # echo -n admin | shasum -a 256 - GRAYLOG_ROOT_PASSWORD_SHA2=8c6976e5bbde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918 # elasticsearch host - GRAYLOG_ELASTICSEARCH_HOSTS=http://graylog-elasticsearch:9200 # mongo host - GRAYLOG_MONGODB_URI=mongodb://graylog-mongo/graylog # 时区 - GRAYLOG_ROOT_TIMEZONE=Asia/Shanghai # 将 x.x.x.x 替换成你的 IP - GRAYLOG_WEB_ENDPOINT_URI=http://x.x.x.x:9000/api - GRAYLOG_WEB_LISTEN_URI=http://0.0.0.0:9000/ - GRAYLOG_REST_LISTEN_URI=http://0.0.0.0:9000/api # 其他配置请参考 graylog.conf 文件, 在需要覆盖的配置项前面加 "GRAYLOG_",换成大写 ports: # web 和 api 端口 - 9000:9000 # Syslog TCP - 514:514 # Syslog UDP - 514:514/udp # GELF TCP - 12201:12201 # GELF UDP - 12201:12201/udp 

启动

依次启动 mongo、elasticsearch、graylog

docker-compose up -d 

浏览器打开

http://127.0.0.1:9000

搭建完成

这里写图片描述

这里写图片描述

设置

这里写图片描述

“Select Input” 选择 “GELF UDP” 然后按 “Launch new input”

这里写图片描述

选择 “Node”,填写 “Title”,保存

这里写图片描述

设置完成

出现绿色 “RUNNING”,证明运行成功

这里写图片描述

docker 容器日志收集

以 redis 作为示例,配置日志驱动

docker-compose.yml

version: '2' services: redis: restart: always image: redis:4.0.10 container_name: redis logging: driver: gelf options: # 将 x.x.x.x 替换成你的 IP gelf-address: udp://x.x.x.x:12201 tag: "redis" 

查看

redis 启动后就可以在 graylog 的 “Search” 界面看到 redis 的日志

这里写图片描述

默认不会显示 “tag” 标签栏,我们需要显示用于区分日志,只需要在左侧 “Fields” 打勾就行

这里写图片描述

非 docker 容器日志收集

需要使用第三方工具收集日志再转发到 graylog,也可以直接发送,例如 python 可以使用 graypy 这个库

搜索

例如要搜索 redis 中包含 “WARNING” 字眼的日志(注意 “AND”、“OR” 等条件需要大写)

这里写图片描述

这里写图片描述

备注

docker 的日志驱动有几种,大多 ELK 的文章会介绍使用 syslog,但使用 syslog 在日志服务器断开重启后就不会接收到新日志,gelf 是 graylog 的日志格式,日志服务器断开重启依旧可以接收到新日志

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/207807.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午1:03
下一篇 2026年3月19日 下午1:03


相关推荐

  • 镁光256Gb NAND Flash芯片介绍

    镁光256Gb NAND Flash芯片介绍总体概述该芯片是一款典型的大容量NANDFlash存储颗粒,支持OpenNANDFlashInterface(ONFI)2.1的接口标准,采用ONFINANDFlash的操作协议。该芯片采用Multiple-levelCell(MLC)技术,根据不同的容量,一个芯片内部封装了多个DIE(LUN),每个DIE由两个Plane构成,一个Plane可以分成2048个Block,每个Bl…

    2022年6月22日
    68
  • js中两种定时器,setTimeout和setInterval的区别

    js中两种定时器,setTimeout和setInterval的区别setTimeout 只在指定时间后执行一次 代码如下 定时器异步运行 functionhell alert hello 使用方法名字执行方法 vart1 window setTimeout hello 1000 vart2 window setTimeout hello 3000 使用字符串执行方法 window clearTim

    2026年3月17日
    2
  • poe交换机百度百科_交换机带poe什么意思

    poe交换机百度百科_交换机带poe什么意思文章目录前言一、POE交换机与普通交换机的区别二、POE系统的组成三、POE交换机输出电压和功率四、POE系统的四种连接方法五、POE交换机供电距离六、提示1.网线2.不选非标POE3.不用假POE终端设备前言POE(PowerOverEthernet)指的是在现有的以太网Cat.5布线基础架构不作任何改动的情况下,在为一些基于IP的终端(如IP电话机、无线局域网接入点AP、网络摄像机等)传输数据信号的同时,还能为此类设备提供直流电的技术,就是支持以太网供电的交换机。提示:以下是本篇文章正

    2022年10月4日
    7
  • 卷积神经网络超详细介绍

    卷积神经网络超详细介绍1、卷积神经网络的概念2、发展过程3、如何利用CNN实现图像识别的任务4、CNN的特征5、CNN的求解6、卷积神经网络注意事项7、CNN发展综合介绍8、LeNet-5结构分析9、AlexNet10、ZFNet10.1意义10.2实现方法10.3训练细节10.4卷积网络可视化10.6总结11、VGGNet11.1结构11.2网络特点:1…

    2022年6月11日
    35
  • 手机如何安装GreasyFork油猴js脚本?

    手机如何安装GreasyFork油猴js脚本?文章目录前言一、Iceraven浏览器(火狐)(安卓)二、Via浏览器(安卓)三、alook浏览器(苹果)(安卓)四、kiwi浏览器(安卓)总结前言Icaraven浏览器与kiwi浏览器的界面和功能基本相同Iceraven支持火狐插件,kiwi浏览器支持谷歌插件Via浏览器体积小。alook浏览器功能丰富。

    2022年7月15日
    80
  • 安卓逆向_9 — log 插桩、Toast 弹窗、smali代码编写和植入 ( 好搜小说 )

    安卓逆向_9 — log 插桩、Toast 弹窗、smali代码编写和植入 ( 好搜小说 )From:https://www.bilibili.com/video/BV1UE411A7rW?p=36如果仅仅用Smali来分析代码,效果其实不如用dex2jar和jd-gui更直观,毕竟看反编译的java代码要更容易一些。但Smali强大之处就是可以随心所欲的进行插桩操作。何为插桩,引用一下wiki的解释:程序插…

    2025年12月6日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号