10年 Java程序员,硬核人生!勇往直前,永不退缩!

欢迎围观我的git:https://github.com/R1310328554/spring_security_learn 寻找志同道合的有志于研究技术的朋友,关注本人微信公众号: 觉醒的码农,或Q群 165874185

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

graylog 官网地址: www.graylog.org

graylog 简易架构图:

 

 

graylog 生产架构图:

 

 

graylog 有两个版本,1、企业版;2、开源版

下面使用开源版本搭建日志中心,graylog 安装方式有很多,开发、测试环境可以使用 docker 方式安装,快捷方便。

在安装 graylog 前,需要先将 docker 环境配置起来。

1、安装docker

docker install docker

 

2、配置docker镜像加速,镜像加速的。使用国内的镜像库后我们下载镜像的速度会提高很多。

如有阿里云、163等等镜像库

vi /etc/docker/daemon.json

加入:

{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}

 

3、docker 配置发生改变后,重新做下加载和重启

systemctl daemon-reload

systemctl restart docker

 

4、为了安装graylog快捷方便,直接使用 docker-compose 的方式按来装,

docker-compose 方式是 docker 官方提供一个简单的编排方式。

那么就需要有 docker-compose 的运行环境, docker-compose 是一个软件,需要先安装。

安装 docker compose:
4.1、使用检测是否安装python-pip包

pip -V

 

4.2、如果没有安装需要执行命令

yum -y install epel-release

 

4.3、执行成功之后,安装pip
yum -y install python-pip

4.4、对安装好的pip进行升级,执行命令

pip install --upgrade pip

 

4.5、开始安装docker compose
pip install docker-compose --ignore-installed requests

 

4.6、安装完成,使用命令检测是否安装成功

docker-compose -version

安装成功后会有版本信息,如 docker-compose version 1.24.0, build 0aa5906

 

5、登录官网www.graylog.org,主菜单上选择 products,选择 graylog open source

 

 

6、选择 docker 方式安装

 

 

7、参考 image 使用文档,已经如何配置

 

 

 

8、找到 docker-compose.yml 文件的配置

 

 

 

 

9、在linux服务器上指定目录上创建一个 docker-compose.yml 文件

(如 /opt 目录下创建一个 docker-compose.yml 文件,注意文件名必须是 docker-compose.yml),并将内容copy 到文件中:

version: '2'
services:
  # MongoDB: https://hub.docker.com/_/mongo/
  mongodb:
    image: mongo:3
  # Elasticsearch: https://www.elastic.co/guide/en/elasticsearch/reference/6.6/docker.html
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.6.1
    environment:
      - http.host=0.0.0.0
      - transport.host=localhost
      - network.host=0.0.0.0
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    mem_limit: 1g
  # Graylog: https://hub.docker.com/r/graylog/graylog/
  graylog:
    image: graylog/graylog:3.0
    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:9000/
    links:
      - mongodb:mongo
      - elasticsearch
    depends_on:
      - mongodb
      - elasticsearch
    ports:
      # Graylog web interface and REST API
      - 9000:9000
      # Syslog TCP
      - 1514:1514
      # Syslog UDP
      - 1514:1514/udp
      # GELF TCP
      - 12201:12201
      # GELF UDP
      - 12201:12201/udp

 

以上配置内容中需要注意两个地方:

- GRAYLOG_HTTP_EXTERNAL_URI=http://127.0.0.1:9000/ #注意此IP地址必须是外网能访问的IP地址,如 192.168.11.127
- GRAYLOG_ROOT_TIMEZONE=Asia/Shanghai  #注意加入时区,否则会导致显示的日期差8个小时

 

10、配置完成后,进入opt 目录,启动 graylog 服务

cd /opt

docker-compose up  #启动 graylog 服务

docker-compose down #停止服务并删除容器

graylog 启动后,可以通过ip端口访问 ,如:http://192.168.11.127:9000

至此 graylog 环境以及搭建完毕!!

 

 

11、应用及设备,如何将日志信息发送到 graylog?使用网络的方式基于 tcp或udp 方式将日志信息发送到 graylog 服务中。

springboot 微服务使用的日志组件是logback ,将 logback 日志信息发送到 graylog,就需要加入依赖包 logback-gelf

11.1 pom.xml 文件中需要加入组件依赖

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

 

11.2 logback-spring.xml 文件加入gelf udp 配置,如下

<appender name="GELF" class="de.siegmar.logbackgelf.GelfUdpAppender">
<graylogHost>192.168.11.127</graylogHost> <!-- graylog 日志服务地址 -->
<graylogPort>12201</graylogPort> <!-- graylog 日志接收端口 -->
<maxChunkSize>508</maxChunkSize>
<useCompression>true</useCompression>
<encoder class="de.siegmar.logbackgelf.GelfEncoder">
<includeRawMessage>false</includeRawMessage>
<includeMarker>true</includeMarker>
<includeMdcData>true</includeMdcData>
<includeCallerData>false</includeCallerData>
<includeRootCauseData>false</includeRootCauseData>
<includeLevelName>true</includeLevelName>
<shortPatternLayout class="ch.qos.logback.classic.PatternLayout">
<pattern>%m%nopex</pattern>
</shortPatternLayout>
<fullPatternLayout class="ch.qos.logback.classic.PatternLayout">
<pattern>%m%n</pattern>
</fullPatternLayout>
<staticField>app_name:${spring.application.name}</staticField>
<staticField>os_arch:${os.arch}</staticField>
<staticField>os_name:${os.name}</staticField>
<staticField>os_version:${os.version}</staticField>
</encoder>
</appender>

 

<springProfile name="local">
<logger name="com.elead.ppm" level="DEBUG"/>
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="GELF" />
</root>
</springProfile>

 

12、启动微服务,进入 graylog 日志中心

 

 

posted on 2019-06-05 09:39  CanntBelieve  阅读(6199)  评论(0编辑  收藏  举报