• Logstash:在 Docker 中部署 Logstash


    文章转载自:https://elasticstack.blog.csdn.net/article/details/116516923

    创建一个目录 docker-logstash。在该目录下,有如下的文件:

    $ pwd
    /data/docker-logstash
    $ ls -al
    total 16
    drwxr-xr-x    5 liuxg  staff   160 May  7 22:13 .
    drwxr-xr-x  132 liuxg  staff  4224 May  7 21:58 ..
    -rw-r--r--    1 liuxg  staff    29 May  7 21:59 .env
    -rw-r--r--    1 liuxg  staff  1039 May  7 22:37 docker-compose.yml
    drwxr-xr-x    3 liuxg  staff    96 May  7 22:18 logstash_pipeline
    $ tree -L 3
    .
    ├── docker-compose.yml
    └── logstash_pipeline
        └── ports.conf
    

    在该目录中,它有一个 .env 文件。它里面定义了一个在 docker-compose.yml 需要用到的环境变量:

    $ cat .env
    ELASTIC_STACK_VERSION=7.12.1
    

    通过使用 ELASTIC_STACK_VERSION 来定义我们想要的 Elastic Stack 的版本。

    创建一个叫做 docker-compose.yml 的文件:

    version: '3.7'
    services:
      elasticsearch:
        image: docker.elastic.co/elasticsearch/elasticsearch:${ELASTIC_STACK_VERSION}
        container_name: es01
        environment:
          - discovery.type=single-node
        ulimits:
          memlock:
            soft: -1
            hard: -1
        volumes:
          - esdata01:/usr/share/elasticsearch/data        
        ports:
          - 9200:9200
        networks:
          - elastic
     
      kibana:
        image: docker.elastic.co/kibana/kibana:${ELASTIC_STACK_VERSION}
        container_name: kibana
        ports: ['5601:5601']    
        networks: ['elastic']
        environment:
          - SERVER_NAME=kibana.localhost
          - ELASTICSEARCH_HOSTS=http://elasticsearch:9200
          - I18N_LOCALE=zh-CN
        depends_on: ['elasticsearch']
     
      logstash:
        image: logstash:${ELASTIC_STACK_VERSION}
        ports:
          - 5000:5000
        volumes: 
          - type: bind
            source: ./logstash_pipeline/
            target: /usr/share/logstash/pipeline
            read_only: true
        networks:
          - elastic        
     
    volumes:
      esdata01:
        driver: local
     
    networks:
      elastic:
        driver: bridge
    

    针对 Logstash 的安装,我们定义了一个 port 5000,这样我们在 Logstash 的配置文件中可以使用 TCP 的地址 5000 把数据传入到 Logstash 的 pipeline 中,并进行处理。同时,我们使用 volumes 的定义,把本地目录 logstash_pipeline 中的文件 bind 到 Logstash 的 /usr/share/logstash/pipeline 目录中,从而使得在 logstash_pipeline 中所定义的 pipeline 能够在 Logstash 启动后自动运行起来。

    接下来看看在 logstash_pipeline 目录中定义的 ports.conf 文件:

    # ports.conf
    input {
        tcp {
            port => 5000
        }
    }
     
    output {
        elasticsearch {
            hosts => ["elasticsearch:9200"]
            index => "hello-logstash-docker"
        }
    }
    

    这个配置文件非常简单。它接受来自 port 5000 的数据,并直接发到 Elasticsearch 中去。

  • 相关阅读:
    响应式布局
    C# 基础复习 二 面向对象
    C# 基础复习 一 数据类型
    .net 面试题
    Unity5.X 创建基本的3D游戏场景
    Unity5.X 编辑器介绍
    Unity5.X 开发资源介绍
    SignalR
    vue-cli
    Vue.js
  • 原文地址:https://www.cnblogs.com/sanduzxcvbnm/p/14949786.html
Copyright © 2020-2023  润新知