前提条件:你的服务器上已经安装了Docker和Docker Compose

一、安装GrayLog(Docker方式)

  1. version: '2'
  2. services:
  3. mongodb:
  4. image: mongo:3
  5. volumes:
  6. # Persisting data
  7. - ./data/mongo:/data/db
  8. elasticsearch:
  9. image: docker.elastic.co/elasticsearch/elasticsearch:5.6.3
  10. volumes:
  11. # Persisting data
  12. - ./data/elasticsearch:/usr/share/elasticsearch/data
  13. environment:
  14. - http.host=0.0.0.0
  15. - transport.host=localhost
  16. - network.host=0.0.0.0
  17. - xpack.security.enabled=false
  18. - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
  19. ulimits:
  20. memlock:
  21. soft: -1
  22. hard: -1
  23. mem_limit: 1g
  24. graylog:
  25. image: graylog/graylog:2.4.0-1
  26. volumes:
  27. # Persisting data
  28. - ./data/graylog:/usr/share/graylog/data/journal
  29. # Mount local configuration directory into Docker container
  30. - ./config:/usr/share/graylog/data/config
  31. environment:
  32. # CHANGE ME!
  33. - GRAYLOG_PASSWORD_SECRET=somepasswordpepper
  34. # Password: admin
  35. - GRAYLOG_ROOT_PASSWORD_SHA2=8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918
  36. # 这里必须修改为你机器的外网地址
  37. - GRAYLOG_WEB_ENDPOINT_URI=http://127.0.0.1:9000/api
  38. links:
  39. - mongodb:mongo
  40. - elasticsearch
  41. depends_on:
  42. - mongodb
  43. - elasticsearch
  44. ports:
  45. # Graylog web interface and REST API
  46. - 9000:9000
  47. # Syslog TCP
  48. - 514:514
  49. # Syslog UDP
  50. - 514:514/udp
  51. # GELF TCP
  52. - 12201:12201
  53. # GELF UDP
  54. - 12201:12201/udp

二、自定义GrayLog配置文件

在与上面docker-compose.yml文件同级目录下执行如下命令下载官方配置文件

  1. mkdir -p config
  2. cd config
  3. wget https://raw.githubusercontent.com/Graylog2/graylog-docker/2.4/config/graylog.conf
  4. wget https://raw.githubusercontent.com/Graylog2/graylog-docker/2.4/config/log4j2.xml

(可选)如果需要修改GrayLog时区和搜索高亮显示,则需要修改graylog.conf如下配置:

  1. # 设置时区
    root_timezone = Asia/Shanghai
  2. # 开启高亮显示
    allow_highlighting = true

三、配置GrayLog日志接收器

浏览器访问:http://127.0.0.1:9000(默认账号是admin/admin),依次打开:System/Inputs

四、使用Logspout将Docker输出发送到GrayLog

  1. version: '3'
  2. services:
  3. #服务名称
  4. logspout:
  5. #服务使用的镜像
  6. image: micahhausler/logspout:gelf
  7. volumes:
  8. - "/var/run/docker.sock:/var/run/docker.sock"
  9. #需要改成你的GrayLog服务器所在的地址
  10. command:
  11. gelf://127.0.0.1:12201
  12. #服务端口号
  13. ports:
  14. - "8000:80"
  15. bounter-docker:
  16. image: 127.0.0.1:5000/bounter/bounter-docker
  17. #修改容器时区,使它与宿主机保持一致
  18. volumes:
  19. - "/etc/timezone:/etc/timezone"
  20. - "/etc/localtime:/etc/localtime"
  21. ports:
  22. - "8080:8080"

五、查看日志

是不是觉得挺简单啊,那就赶快自己动手试试吧!

GrayLog + Logspout + Docker 实现分布式日志聚合的更多相关文章

  1. SpringBoot接入轻量级分布式日志框架(GrayLog)

    我是3y,一年CRUD经验用十年的markdown程序员‍常年被誉为优质八股文选手 前两天我不是发了一篇数据链路追踪的文章嘛,在末尾也遗留了TODO:运行应用的服务器一般是集群,日志数据会记录到不同的 ...

  2. 从头开始搭建分布式日志平台的docker环境

    上篇(spring mvc+ELK从头开始搭建日志平台)分享了从头开始搭建基于spring mvc+redis+logback+logstash+elasticsearch+kibana的分布式日志平 ...

  3. 微服务架构 | 10.2 使用 Papertrail 实现日志聚合

    目录 前言 1. Papertrail 基础知识 1.1 Papertrail 特点 1.2 Papertrail 是什么 2. 使用 Papertrail 进行日志聚合的示例 2.1 创建 Pape ...

  4. selenium结合docker构建分布式测试环境

    selenium是目前web和app自动化测试的主要框架.对于web自动化测试而言,由于selenium2.0以后socker服务器由本地浏览器自己启动且直接通过浏览器原生API操作页面,故越来越多的 ...

  5. JavaWeb项目架构之Kafka分布式日志队列

    架构.分布式.日志队列,标题自己都看着唬人,其实就是一个日志收集的功能,只不过中间加了一个Kafka做消息队列罢了. kafka介绍 Kafka是由Apache软件基金会开发的一个开源流处理平台,由S ...

  6. 容器化分布式日志组件ExceptionLess的Angular前端UI

    写在前面 随着微服务架构的流行,日志也需要由专门的分布式日志组件来完成这个工作,我们项目使用的是 ExceptionLess 这个组件,它是前后端分离的:这篇文章我们就来实践容器化 Exception ...

  7. 如何扩展分布式日志组件(Exceptionless)的Webhook事件通知类型?

    写在前面 从上一篇博客高并发.低延迟之C#玩转CPU高速缓存(附示例)到现在又有几个月没写博客了,啥也不说,变得越来越懒了,懒惰产生了拖延后遗症. 最近一周升级了微服务项目使用的分布式日志组件Exce ...

  8. 分布式日志框架Exceptionless之生产环境部署步骤

    Exceptionless 是一个开源的实时的日志收集框架,它将日志收集变得简单易用并且不需要了解太多的相关技术细节及配置.本篇基于我的上一篇<基于Exceptionless实现分布式日志> ...

  9. .NET Core微服务之基于Exceptionless实现分布式日志记录

    Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.Exceptionless极简介绍 Exceptionless 是一个开源的实时的日志收集框架,它可以应用在基于 ASP.NET,AS ...

随机推荐

  1. 定时任务调度工作(学习记录 二)timer定时函数的用法

    schedule的四种用法: 1.schedule(task,time) 参数: task----所安排的任务 time----执行任务的时间 作用: 在时间等于或超过time的时候执行且仅执行一次t ...

  2. hashChange & url change & QRCode & canvas to image

    hashChange & url change & QRCode & canvas to image "use strict"; /** * * @auth ...

  3. ILRuntime_NewbieGuide—导读

    Welcome to the ILRuntime_NewbieGuide wiki! 入门篇:做个简单的案例 https://www.cnblogs.com/kerven/p/10237280.htm ...

  4. 【XSY3344】连续段 DP 牛顿迭代 NTT

    题目大意 对于一个长度为 \(n\) 的排列 \(p\),我们称一个区间 \([l,r]\) 是连续的当且仅当 \((\max_{l\leq i\leq r}a_i)-(\min_{l\leq i\l ...

  5. Linux-ftp服务搭建

    云服务器ESC 部署vsftpd服务 记一次ftp服务搭建的采坑过程,这个坑一直卡了很久时间,都给忘记了.最近由于公司项目需要部署FTP,经过各种采坑,终于把这个坑给填上了.废话不多说,开干 环境说明 ...

  6. 命令级的python静态资源服务。

    python -m SimpleHTTPServer 在当前目录起python静态资源服务.

  7. js 里面的各种类型转换

    1:Object 对象在转换为 number 类型时,首先会调用 valueOf 方法,然后再调用 toString 方法,否则会抛出异常. 对象在转换为 string 类型时,首先会调用 toStr ...

  8. Security+ 认证考过经验分享 802分飘过

    PART 1/考前准备 1.针对与新人.学生建议看每一节直播课程,老师会结合自己的工作工作经验讲解课程,可以帮助学生理解知识. 2.备考期间建议官方指导手册至少看两遍以上,我在结合自己的做题库时发现有 ...

  9. 课下作业MyCP的分析

    目录 MyCP 题目 截图 代码 相关知识 出现的问题 代码托管 参考资料 MyCP 题目 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: ja ...

  10. Mybatis插件机制以及PageHelper插件的原理

    首先现在已经有很多Mybatis源码分析的文章,之所以重复造轮子,只是为了督促自己更好的理解源码. 1.先看一段PageHelper拦截器的配置,在mybatis的配置文件<configurat ...