# graylog **Repository Path**: sunnyfe/graylog ## Basic Information - **Project Name**: graylog - **Description**: docker-compose搭建Graylog分布式日志采集系统 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2023-08-17 - **Last Updated**: 2024-08-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # docker-compose搭建分布式日志采集系统 **分布式日志收集系统包含组件, MongoDB, Elasticsearch, Graylog** ## 一、环境: docker: 24.0.1 具体安装教程移步: [Docker初级学习笔记](https://blog.csdn.net/Fall_enleaves/article/details/130325496?spm=1001.2014.3001.5502) docker-compose: 1.24.1 具体安装教程移步: [Docker-Compos模版,常用命令,学习笔记](https://blog.csdn.net/Fall_enleaves/article/details/130325496?spm=1001.2014.3001.5502) Graylog 官方文档地址: https://go2docs.graylog.org/5-1/downloading_and_installing_graylog/docker_installation.htm ## 二、步骤 ### 1. 获取最新docker-compose.yml文件(这里展示的不是最新的) ````yml # https://go2docs.graylog.org/5-1/downloading_and_installing_graylog/docker_installation.htm version: '3' services: mongo: image: mongo:3 container_name: graylog_mongo restart: unless-stopped environment: - TZ=Asia/Shanghai networks: - graylog elasticsearch: image: elasticsearch container_name: graylog_elasticsearch restart: unless-stopped environment: - http.host=0.0.0.0 - transport.host=localhost - network.host=0.0.0.0 - "ES_JAVA_OPTS=-Xms512m -Xmx512m" - TZ=Asia/Shanghai ulimits: memlock: soft: -1 hard: -1 deploy: resources: limits: memory: 1g networks: - graylog graylog: image: graylog/graylog:3.3 container_name: graylog restart: unless-stopped environment: - GRAYLOG_PASSWORD_SECRET=somepasswordpepper # Password: admin - GRAYLOG_ROOT_PASSWORD_SHA2=8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918 # TODO 这里填写自己的ip地址 - GRAYLOG_HTTP_EXTERNAL_URI=http:127.0.0.1:9001/ - TZ=Asia/Shanghai ports: # Graylog web interface and REST API - 9001:9000 # Syslog TCP - 1514:1514 # Syslog UDP - 1514:1514/udp # GELF TCP - 12201:12201 # GELF UDP - 12201:12201/udp networks: - graylog depends_on: - mongo - elasticsearch # 网桥graylog -> 方便相互通讯 networks: graylog: driver: bridge ```` ### 2. docker-compose启动脚本 docker-compose up -d 等待执行结束 ### 3. 开放相应端口 开放Graylog页面端口 firewall-cmd --zone=public --add-port=9001/tcp --permanent 开放日志提交Graylog端口 firewall-cmd --zone=public --add-port=12201/tcp --permanent 重启防火墙 firewall-cmd --reload ## 三、启动一个springboot项目, 推送日志到Graylog ### 1. 添加logback.xml **说三遍!!!!!** **全部复制!** **全部复制!** **全部复制** ````xml ${console.log.pattern} utf-8 ${log.path}/sys-console.log ${log.path}/sys-console.%d{yyyy-MM-dd}.log 1 ${log.pattern} utf-8 INFO ${log.path}/sys-info.log ${log.path}/sys-info.%d{yyyy-MM-dd}.log 60 ${log.pattern} INFO ACCEPT DENY ${log.path}/sys-error.log ${log.path}/sys-error.% d{yyyy-MM-dd}.log 60 ${log.pattern} ERROR ACCEPT DENY 172.16.201.213 12201 ```` ### 2. maven添加依赖 这个tlLog很香, 后面有机会再介绍 可以参考学习: https://blog.csdn.net/weixin_41541562/article/details/123629617 ````xml de.siegmar logback-gelf 3.0.0 com.yomahub tlog-web-spring-boot-starter 1.3.6 ```` ### 3. 起动Springboot项目 写个定时任务, 一直打印日志 ````java @Slf4j @Component @EnableScheduling public class AppScheduledJobs { /** * 每3秒执行一次 */ @Scheduled(cron = "*/1 * * * * ?") public void test() { log.debug("deb日志" + new Date()); log.error("error 【{}】 ", new Date()); log.warn("warn Start: 【{}】 ", new Date()); log.info("info Start: 【{}】 ", new Date()); log.debug("debug Start: 【{}】 ", new Date()); } } ```` ## 四、进入Graylog 配置日志查询 ### 1. 访问ip:9001进到Graylog 点击导航栏: System -> inputs ![Graylog配置日志](img.png) ### 2. 配置日志信息 只用填写名字 ![配置日志信息](img_1.png) 保存 就O了 ### 2. 点击导航栏search 日志就来了 ![日志](img_2.png)