当前位置:   article > 正文

Docker + ELK + SpringBoot部署_docker springboot elk 7.17.4

docker springboot elk 7.17.4

步骤一:Docker安装ELK镜像

docker pull sebp/elk

步骤二:启动镜像

方法一:Docker部署

  1. docker run
  2. -e ES_JAVA_OPTS="-Xms256m -Xmx256m" # 设置虚拟机所需内存大小
  3. -p 5601:5601 # Kibana Web 接口
  4. -p 5040:5040 # Logstash Beat 接口
  5. -p 5041:5041
  6. -p 5042:5042
  7. -p 5043:5043
  8. -p 5044:5044
  9. -p 5045:5045
  10. -p 5046:5046
  11. -p 5047:5047
  12. -p 5048:5048
  13. -p 5049:5049
  14. -p 9200:9200 # Elasticsearch JSON 接口
  15. -p 9300:9300 # Elasticsearch transport接口
  16. -it # 虚拟机交互
  17. --name elk -d ******

方法二:dokcer-compose部署

docker-compose启动

  1. version: '2'
  2. services:
  3. elk: #服务名称(不是容器名,名称最好不要含有特殊字符,碰到过用下划线时运行出错)
  4. image: sebp/elk:latest
  5. container_name: elk #容器名称
  6. ports:
  7. - "9200:9200"
  8. - "9300:9300"
  9. - "5601:5601"
  10. - ...... # 继续映射开启的服务端口
  11. environment: #设置镜像变量,它可以保存变量到镜像里面
  12. ES_JAVA_OPTS: "-Xmx256m -Xms256m"

注意事项:

运行启动ELK碰到vm.max_map_count限制问题,在Elasticsearch version 5属于最常出现的问题.
持久性的做法是修改/etc/sysctl.conf文件中的vm.max_map_count.
echo "vm.max_map_count=262144" > /etc/sysctl.conf       #持久设置最大值
sysctl -p                                                                                    # 生效
其次,logstash的配置文件在/etc/logstash/conf.d/目录下,将input,filter,out分开,最终组合成一个,建议将/etc/logstash/conf.d映射出来,自行管理

步骤三:修改ELK内部配置文件

  1. cd etc/logstash/conf.d/
  2. vim 02-beats-input.conf
  3. input {
  4. tcp {
  5. port => 5040 #设置输入端口
  6. codec => json_lines
  7. type => system #对应服务名称
  8. }
  9. }
  10. ........ #可配置多个
  11. }
  12. output {
  13. if [type] == "system" { #根据输出类型判断输出节点
  14. elasticsearch {
  15. hosts => ["localhost:9200"]
  16. index => "system" #对应服务名称
  17. }
  18. ........ #可配置多个
  19. }
  1. 访问localhost:9200查看启动状态
  2. {
  3. "name" : "elk",
  4. "cluster_name" : "elasticsearch",
  5. "cluster_uuid" : "FNt0O9UfRPeruL10xraQSw",
  6. "version" : {
  7. "number" : "7.16.2",
  8. "build_flavor" : "default",
  9. "build_type" : "tar",
  10. "build_hash" : "2b937c44140b6559905130a8650c64dbd0879cfb",
  11. "build_date" : "2021-12-18T19:42:46.604893745Z",
  12. "build_snapshot" : false,
  13. "lucene_version" : "8.10.1",
  14. "minimum_wire_compatibility_version" : "6.8.0",
  15. "minimum_index_compatibility_version" : "6.0.0-beta1"
  16. },
  17. "tagline" : "You Know, for Search"
  18. }
  19. 访问localhost:5601 进入Kibana页面
  20. 进入管理会话,创建索引模式,由于上文中设置输出文件为logstash-%{+YYYY.MM.dd}
  21. 设置索引为logstash-*

步骤四:编写SpringBoot中Log.xml中添加

  1. <Appenders>
  2. <Console name="Console" target="SYSTEM_OUT" follow="true">
  3. <PatternLayout pattern="${sys:CONSOLE_LOG_PATTERN}"/>
  4. </Console>
  5. <!-- 设置连接 -->
  6. <Socket name="logstash-tcp" host="ip地址" port="5044" protocol="TCP">
  7. <PatternLayout pattern="${sys:CONSOLE_LOG_PATTERN}"/>
  8. </Socket>
  9. </Appenders>
  10. <Loggers>
  11. <Root level="INFO" additivity="false">
  12. <AppenderRef ref="Console"/>
  13. <AppenderRef ref="logstash-tcp" />
  14. </Root>
  15. </Loggers>

常见问题

  • Kibana汉化

        进入elk终端
        docker exec -it elk /bin/bash
        cd /opt/kibana/config/
        vim kibana.yml
        最后一行添加  i18n.locale: zh-CN   # 冒号后有空格
        docker restart elk

  • 页面Message展示不全问题

        进入ELK容器
        docker exec -it elk /bin/bash
        cd /opt/logstash/bin/
        ./logstash-plugin list                                                           # 查看是否安装multiline
        ./logstash-plugin install logstash-filter-multiline                 #  安装multiline

        cd /etc/logstash/conf.d/
        vim 10-syslog.conf
        添加如下
        filter {
            multiline {
                pattern => "^\d{4}-\d{1,2}-\d{1,2}\s\d{1,2}:\d{1,2}:\d{1,2}"
                negate => true
                what => "previous"
            }
        }
        docker restart elk

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/841730
推荐阅读
相关标签
  

闽ICP备14008679号