Docker安装graylog和详解

前言

graylog我就不想介绍了,如果你看到graylog就知道它是一个日志存储服务器web

准备

安装docker
安装docker compose

1、安装graylog

1、创建目录

/usr/local/graylog 注意自己服务器的id

该目录下新建文件 graylog.yml 或者 compose.yml

写入内容:

version: '2'
services:
  # MongoDB: https://hub.docker.com/_/mongo/
  mongodb:
    image: mongo:3
  # Elasticsearch: https://www.elastic.co/guide/en/elasticsearch/reference/5.6/docker.html
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:5.6.3
    environment:
      - http.host=0.0.0.0
      - transport.host=localhost
      - network.host=0.0.0.0
      # Disable X-Pack security: https://www.elastic.co/guide/en/elasticsearch/reference/5.6/security-settings.html#general-security-settings
      - xpack.security.enabled=false
      - "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:2.4.0-1
    environment:
      # CHANGE ME!
      - GRAYLOG_PASSWORD_SECRET=somepasswordpepper
      # Password: admin
      - GRAYLOG_ROOT_PASSWORD_SHA2=8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918
      - GRAYLOG_WEB_ENDPOINT_URI=http://127.0.0.1:9000/api
    links:
      - mongodb:mongo
      - elasticsearch
    depends_on:
      - mongodb
      - elasticsearch
    ports:
      # Graylog web interface and REST API
      - 9000:9000
      # Syslog TCP
      - 514:514
      # Syslog UDP
      - 514:514/udp
      # GELF TCP
      - 12201:12201
      # GELF UDP
      - 12201:12201/udp

2、开始安装

1、如果创建的文件名字是graylog.yml 使用命令 (-d表示后台运行)

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

2、如此创建的文件是 compose.yml

docker-compose up -d 

2、浏览器中打开,密码admin/admin

http://localhost:9000/

Docker安装graylog和详解_第1张图片

3、测试

3.1、查看运行的镜像 协议观察,可以看到12201 udp这样才算成功

docker ps

WX20180316-141745@2x

3.2、使用http测试是否成功

3.2.1、新建input http input

Docker安装graylog和详解_第2张图片

3.2.2、打开一个终端,输入下面的命令

curl -XPOST http://localhost:12201/gelf -p0 -d '{"message":"hello这是一条消息", "host":"127.0.0.1", "facility":"test", "topic": "meme"}'

打开浏览器观察信息,点击http-input之后

Docker安装graylog和详解_第3张图片

2、springBoot集成graylog

1、创建 gref udp input

Docker安装graylog和详解_第4张图片

1、使用logback进行日志的封装


	
		com.github.pukkaone
		logback-gelf
		1.1.9
	

	
		ch.qos.logback
		logback-core
		1.1.6
	

	
		ch.qos.logback
		logback-classic
		1.1.6
	

	
		ch.qos.logback
		logback-access
		1.1.6
	

2、springBoot配置

1、application.properties

spring.application.name=tools
server.port=8085
spring.profiles.active=prod


#log level
logging.level.root=info
logging.level.org.springframework=info
logging.level.org.mybatis=error

2、application-prod.properties

server.port=8080

#logging properties
logging.config=classpath:logback-prod.xml

3、logback-prod.xml 配置如下




    
        
            %d{HH:mm:ss.SSS} %-5level %logger{36} - %msg%n
        
    


    
        127.0.0.1
        tools  
        true
        false
        true
        false
        false
        false
        gelf-java 
        application=tools 
        environment=prod 
        managername=HealerJean 

    


    
        
        
    


4、测试controller,下面有个异常哦

@Slf4j
@RestController
public class TestController {

    @GetMapping("log")
    public String log(){

        log.error("error");
        log.warn("warn");
        log.info("info");
        log.debug("debug");
        int i = 1/0;
        return "success";
    }
}

5、开始启动springBoot的朋友们。观察浏览器graylog

可以看到日志和控制台是一样的

Docker安装graylog和详解_第5张图片

3、详说graylog,里面的内容标签可以自己定义

3.1、分析内容

3.1.1、异常

logback-prod.xml 中很多的信息都是固定的,除了message、timestamp、logger,

下面是异常的输出信息,可以看到里面有fullMessage自动出现的,很详细,开发人员可以根据里面的具体信息针对上线的异常进行分析和解决。

Docker安装graylog和详解_第6张图片

3.1.2、正常

有时候因为业务的需要我们会自己去生成log日志。比如ddkj的回调接口。和别人联调的时候,对方调用自己的接口,如果看有没有调用到自己,最好的方式就是打一个日志。

浏览器打开 http://localhost:8080/log

继续观察graylo日志,可以看到dubug的日志没有出现,因为我们配置文件中设置的级别是info

Docker安装graylog和详解_第7张图片

3.2、条件搜索

一般我们在控制面板中的标签都是可以搜索的,比如source ,连接查找关系一定要用大写AND。一般AND后面默认就是message中的内容

source:tools AND warn

Docker安装graylog和详解_第8张图片

3.3、饼状图查看

Docker安装graylog和详解_第9张图片

4、代码下载

总结下

至此,如果公司要用的话,我觉得大家应该也能够用的非常顺利,祝大家工作顺利。如果那里不懂的可以即使留言哦

ContactAuthor

你可能感兴趣的:(Docker)