linux下使用docker-compose搭建elk

小灰灰 2023-01-18 04:11 300阅读 0赞

记录下在linux下简单的搭建单节点的elk

话不多说,直接上代码

docker-compose-elk.yml

  1. version: '3'
  2. services:
  3. elasticsearch:
  4. image: elasticsearch:7.5.0
  5. container_name: es7.5.0
  6. environment:
  7. - discovery.type=single-node #配置es启动单节点
  8. - cluster.name=robin #配置es集群名称
  9. - ES_JAVA_OPTS=-Xms512m -Xmx512m #设置使用jvm内存大小
  10. - ELASTIC_PASSWORD=123456
  11. - xpack.security.enabled=true
  12. - xpack.security.transport.ssl.enabled=true
  13. - xpack.license.self_generated.type=basic
  14. - TZ=Asia/Shanghai
  15. volumes:
  16. - /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins #插件文件挂载
  17. - /mydata/elasticsearch/data:/usr/share/elasticsearch/data #数据文件挂载
  18. ports:
  19. - 9200:9200
  20. - 9300:9300
  21. kibana:
  22. image: kibana:7.5.0
  23. container_name: kibana7.5.0
  24. depends_on:
  25. - elasticsearch #kibana在elasticsearch启动之后再启动
  26. environment:
  27. - elasticsearch.hosts=http://ip:9200 #设置访问elasticsearch的地址
  28. - TZ=Asia/Shanghai
  29. #挂载文件
  30. volumes:
  31. - /mydocker/conf/kibana.yml:/usr/share/kibana/config/kibana.yml
  32. ports:
  33. - 5601:5601
  34. restart: always
  35. logstash:
  36. image: logstash:7.5.0
  37. container_name: logstash7.5.0
  38. environment:
  39. - xpack.monitoring.enabled=true
  40. - xpack.monitoring.elasticsearch.username=elastic
  41. - xpack.monitoring.elasticsearch.password=123456
  42. - TZ=Asia/Shanghai
  43. volumes:
  44. - /mydocker/conf/logstash.conf:/usr/share/logstash/pipeline/logstash.conf #挂载logstash的配置文件
  45. depends_on:
  46. - elasticsearch #kibana在elasticsearch启动之后再启动
  47. ports:
  48. - 9600:9600
  49. - 5044:5044

kibana.yml

  1. elasticsearch.hosts: [ "http://ip:9200" ]
  2. server.host: "0.0.0.0"
  3. server.name: kibana
  4. xpack.monitoring.ui.container.elasticsearch.enabled: true
  5. i18n.locale: zh-CN #中文
  6. elasticsearch.username: 'elastic'
  7. elasticsearch.password: '123456'

logstash.conf

  1. input {
  2. tcp {
  3. mode => "server"
  4. host => "0.0.0.0"
  5. port => 5044
  6. codec => json_lines
  7. }
  8. }
  9. output {
  10. elasticsearch {
  11. hosts => ["http://ip:9200"] # ES 地址和端口
  12. index => "%{[appname]}-%{+YYYY.MM.dd}" # 索引名称, 按天自动创建索引
  13. user => "elastic" # 用户名
  14. password => "123456" # 密码
  15. }
  16. stdout {
  17. codec => rubydebug
  18. }
  19. }

运行 docker-compose -f docker-compose-elk.yml up -d

20210430165516987.png

查看

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xfYnVfdGluZ19odWE_size_16_color_FFFFFF_t_70

查看kibana

输入地址 http://ip:5601/ 输入配置的账号密码

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xfYnVfdGluZ19odWE_size_16_color_FFFFFF_t_70 1

==============================================

springboot项目中使用logstash

引入依赖

  1. <dependency>
  2. <groupId>net.logstash.logback</groupId>
  3. <artifactId>logstash-logback-encoder</artifactId>
  4. <version>6.0</version>
  5. </dependency>

添加配置文件 logback-spring.xml

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <configuration>
  3. <appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
  4. <layout class="ch.qos.logback.classic.PatternLayout">
  5. <pattern> %d{yyyy-MM-dd HH:mm:ss} %contextName [%thread] %-5level %logger{36} : %msg%n </pattern>
  6. </layout>
  7. </appender>
  8. <appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
  9. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  10. <level>ERROR</level>
  11. <onMatch>DENY</onMatch>
  12. <onMismatch>ACCEPT</onMismatch>
  13. </filter>
  14. <encoder>
  15. <pattern> %d{yyyy-MM-dd HH:mm:ss} %contextName [%thread] %-5level %logger{36} : %msg%n </pattern>
  16. </encoder> <!--滚动策略-->
  17. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  18. <!--路径--> <fileNamePattern>/log/info/usso/info.%d.log</fileNamePattern>
  19. </rollingPolicy>
  20. </appender>
  21. <appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
  22. <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
  23. <level>ERROR</level>
  24. </filter>
  25. <encoder>
  26. <pattern> %d{yyyy-MM-dd HH:mm:ss} %contextName [%thread] %-5level %logger{36} : %msg%n </pattern>
  27. </encoder> <!--滚动策略-->
  28. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  29. <!--路径--> <fileNamePattern>/log/error/usso/error.%d.log</fileNamePattern>
  30. </rollingPolicy>
  31. </appender>
  32. <!--输出到logStash的appender-->
  33. <appender name="logStash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
  34. <!--可以访问的logStash日志收集端口-->
  35. <destination>服务器ip:5044</destination>
  36. <!-- encoder必须配置,有多种可选 -->
  37. <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">
  38. <customFields>{"appname":"uaa"}</customFields>
  39. </encoder>
  40. </appender>
  41. <root level="info">
  42. <appender-ref ref="consoleLog" />
  43. <appender-ref ref="fileInfoLog" />
  44. <appender-ref ref="fileErrorLog" />
  45. <appender-ref ref="logStash" />
  46. </root>
  47. </configuration>

运行项目,即可在kibana查看

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xfYnVfdGluZ19odWE_size_16_color_FFFFFF_t_70 2

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xfYnVfdGluZ19odWE_size_16_color_FFFFFF_t_70 3

按操作创建成功后,点击下图图标即可查看

20210430170958945.png

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xfYnVfdGluZ19odWE_size_16_color_FFFFFF_t_70 4

参考:

https://github.com/deviantony/docker-elk

https://doc.yonyoucloud.com/doc/logstash-best-practice-cn/index.html

当然也有现成的,类似腾讯云,直接购买即可

https://cloud.tencent.com/document/product/845/17153

发表评论

表情:
评论列表 (有 0 条评论,300人围观)

还没有评论,来说两句吧...

相关阅读

    相关 elk

    Elasticsearch + Logstash + Kibana(ELK)是一套开源的日志管理方案。在志邦项目部署了三台服务器到生产环境,生产环境用了nginx做负载均衡,通

    相关 windows环境ELK平台

    背景 日志系统主要包括系统日志,应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器的软件,硬件信息,检查配置过程中的错误以及错误发生的原因。通常分析日

    相关 ELK使用

    对于日志来说,最常见的需求就是收集、存储、查询、展示,开源社区正好有相对应的开源项目:logstash(收集)、elasticsearch(存储+搜索)、kibana(展示),