Docker搭建ELK并集成微服务

拉取ELK集成镜像

docker pull sebp/elk

启动ELK

[root@localhost /]# echo "vm.max_map_count=262144" > /etc/sysctl.conf
[root@localhost /]# sysctl -p
[root@localhost /]# docker run -dit --name elk \
    -p 5601:5601 \
    -p 9200:9200 \
    -p 5044:5044 \
    -v /opt/elk-data:/var/lib/elasticsearch \
    -v /etc/localtime:/etc/localtime \
    sebp/elk:740
注:-p 指定映射端口,5601kibana访问,9200es端口,5044 logstash收集日志端口;-v 指定es数据目录。

配置ELK(以下内容全部在容器内操作)

进入docker容器

[root@localhost /]# docker exec -it elk /bin/bash
/etc/logstash/        ## logstash 配置文件路径
/etc/elasticsearch/   ## es 配置文件路径
/var/log/             ## 日志路径

配置Logstash

[root@localhost /]# vim /etc/logstash/conf.d/02-beats-input.conf

# 数据输入配置:port -> 端口号;codec -> 输入格式。这里以logback为例。
input {
  tcp {
    port => 5044
    codec=>json_lines
  }
}

# 数据输出配置:hosts -> 主机集合;index -> 你将要创建的索引名称。这里es为例。
output {
  elasticsearch {
    hosts => ["127.0.0.1:9200"]
    index => "%{[appName]}-%{+YYYY.MM.dd}"
  }
}
注:这个配置文件可以在/etc/logstash/conf.d/目录下创建,也可直接修改原有配置文件,看个人需求。

配置kibana中文

[root@localhost /]# vim /opt/kibana/config/kibana.yml
注:打开文件后,在文件内追加 i18n.locale: "zh-CN" ,重启服务即可。

常用服务操作命令

[root@localhost /]# service logstash start/restart/stop/status
[root@localhost /]# service elasticsearch start/restart/stop/status
[root@localhost /]# service kibana start/restart/stop/status
注:上面是各个服务 启动 / 重启 / 停止 / 状态,服务较大操作会比较缓慢,不要重复执行命令。

集成到Spring Boot(LogBack)


      net.logstash.logback
      logstash-logback-encoder
      5.2
 

logback-spring.xml



 
        10.1.20.16:5044
        

        
            {"appname":"${appName}"}
            
                
                    UTC
                
                
                    
                        {
                        "severity": "%level",
                        "service": "${springAppName:-}",
                        "trace": "%X{X-B3-TraceId:-}",
                        "span": "%X{X-B3-SpanId:-}",
                        "exportable": "%X{X-Span-Export:-}",
                        "pid": "${PID:-}",
                        "thread": "%thread",
                        "class": "%logger{40}",
                        "rest": "%message"
                        }
                    
                
            
        
    

参考:# 使用docker快速部署elk、对接SpringBoot

你可能感兴趣的:(Docker搭建ELK并集成微服务)