docker搭建elk

打印 上一主题 下一主题

主题 934|帖子 934|积分 2802

1.拉取镜像

  1. docker pull elasticsearch:7.16.3
  2. docker pull logstash:7.16.3
  3. docker pull kibana:7.16.3
复制代码
2.ES配置

elasticsearch.yml
  1. http.host: 0.0.0.0
  2. xpack.security.enabled: false
  3. xpack.license.self_generated.type: basic
  4. xpack.security.transport.ssl.enabled: false
  5. network.host: 0.0.0.0
复制代码
3.logstash配置

logstash.yml
  1. http.host: 0.0.0.0
  2. xpack.monitoring.elasticsearch.hosts: [ "http://es7163:9200" ]
复制代码
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. filter{
  10. }
  11. output {
  12.   elasticsearch {
  13.       hosts => "es7163:9200"
  14.       index => "tingshu-%{+YYYY.MM.dd}"
  15.   }
  16. }
复制代码
4.kibana配置

kibana.yml:
  1. server.host: "0.0.0.0"
  2. elasticsearch.hosts: ["http://es7163:9200"]
  3. i18n.locale: "zh-CN"
复制代码
5.创建自界说网络

  1. docker network create elk
复制代码
6.docker-compose.yml文件

  1. version: '3'
  2. services:
  3.   elasticsearch:
  4.     image: elasticsearch:7.16.3
  5.     container_name: es7163
  6.     networks:
  7.       - elk
  8.     environment:
  9.       - ES_JAVA_OPTS=-Xms1024m -Xmx1024m
  10.       - discovery.type=single-node
  11.     ports:
  12.       - "9200:9200"
  13.       - "9300:9300"
  14.     volumes:
  15.       - /usr/local/es/data:/usr/share/elasticsearch/data
  16.       - /usr/local/es/plugins:/usr/share/elasticsearch/plugins
  17.       - /usr/local/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
  18.     restart: always
  19.   logstash:
  20.     image: logstash:7.16.3
  21.     container_name: logstash7163
  22.     networks:
  23.       - elk
  24.     deploy:
  25.       resources:
  26.         limits:
  27.           cpus: '2'
  28.           memory: 4g
  29.     ports:
  30.       - "5044:5044"  # Logstash 默认端口
  31.       - "9600:9600"
  32.     volumes:
  33.       - /usr/local/logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml  # 配置文件
  34.       - /usr/local/logstash/config/logstash.conf:/usr/share/logstash/pipeline/logstash.conf  # 配置文件
  35.     restart: always
  36.     depends_on:
  37.       - elasticsearch
  38.   kibana:
  39.     image: kibana:7.16.3
  40.     container_name: kibana7163
  41.     networks:
  42.       - elk
  43.     ports:
  44.       - "5601:5601"
  45.     volumes:
  46.       - /usr/local/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml
  47.     restart: always
  48.     depends_on:
  49.       - elasticsearch
  50. networks:
  51.   elk:
  52.     driver: bridge
复制代码
7.springboot对接Logstash

1.创建一个springboot项目引入主要依赖

  1. <dependency>
  2.      <groupId>net.logstash.logback</groupId>
  3.      <artifactId>logstash-logback-encoder</artifactId>
  4.      <version>6.6</version>
  5. </dependency>
复制代码
2.application.yml配置

  1. server:
  2.   port: 8080
  3. logging:
  4.   config: classpath:logback-spring.xml
  5. spring:
  6.   application:
  7.     name: linging-test
复制代码
3.resources目录中新增logback-spring.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration>
  3.     <include resource="org/springframework/boot/logging/logback/base.xml" />
  4.     <springProperty scope="context" name="springAppName" source="spring.application.name"/>
  5.     <springProperty scope="context" name="serverPort" source="server.port"/>
  6.     <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
  7.         <!--logstash的服务地址和端口,可以实际情况设置-->
  8.         <destination>192.168.159.100:5044</destination>
  9.         <!-- 日志输出编码 -->
  10.         <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">
  11.             <providers>
  12.                 <timestamp>
  13.                     <timeZone>UTC</timeZone>
  14.                 </timestamp>
  15.                 <pattern>
  16.                     <pattern>
  17.                         {
  18.                         <!--应用名称 -->
  19.                         "app": "${springAppName}_${serverPort}",
  20.                         <!--打印时间 -->
  21.                         "timestamp": "%d{yyyy-MM-dd HH:mm:ss.SSS}",
  22.                         <!--线程名称 -->
  23.                         "thread": "%thread",
  24.                         <!--日志级别 -->
  25.                         "level": "%level",
  26.                         <!--日志名称 -->
  27.                         "logger_name": "%logger",
  28.                         <!--日志信息 -->
  29.                         "message": "%msg",
  30.                         <!--日志堆栈 -->
  31.                         "stack_trace": "%exception"
  32.                         }
  33.                     </pattern>
  34.                 </pattern>
  35.             </providers>
  36.         </encoder>
  37.     </appender>
  38.     <!--定义日志文件的存储地址,使用绝对路径-->
  39.     <property name="LOG_HOME" value="/home/logs"/>
  40.     <!-- 按照每天生成日志文件 -->
  41.     <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  42.         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  43.             <!--日志文件输出的文件名-->
  44.             <fileNamePattern>${LOG_HOME}/${springAppName}-${serverPort}-%d{yyyy-MM-dd}.log</fileNamePattern>
  45.         </rollingPolicy>
  46.         <encoder>
  47.             <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
  48.         </encoder>
  49.     </appender>
  50.     <root level="INFO">
  51.         <appender-ref ref="LOGSTASH" />
  52.         <appender-ref ref="FILE" />
  53.         <appender-ref ref="CONSOLE" />
  54.     </root>
  55. </configuration>
复制代码
4.启动项目,搞点日记


5.进入kibana控制台



6.添加索引模式


7.检索日记,打开Discover



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

河曲智叟

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表