docker-compose部署ELK(亲测)

具体的配置可以参考上面一篇:docker部署ELK

以下是做了一些修改的地方:

kibana.yml

[root@topcheer config]# cat kibana.yml
server.host: "0.0.0.0"
elasticsearch.url: http://elasticsearch01:9200
xpack:
  apm.ui.enabled: false
  graph.enabled: false
  ml.enabled: false
  monitoring.enabled: false
  reporting.enabled: false
  security.enabled: false
  grokdebugger.enabled: false
  searchprofiler.enabled: false
[root@topcheer config]#

logstash的conf

[root@topcheer pipeline]# cat logstash-test.conf
input {
    file {
        path => ["/usr/share/logstash/pipeline/logs/test.log"]
        start_position => "beginning"
    }
}
output {
   elasticsearch { hosts => ["elasticsearch01:9200"] }
}
[root@topcheer pipeline]#

别的配置都没有变,然后新增docker-compose.yml

[root@topcheer config]# cat docker-compose.yml
version: '2'
services:
  elasticsearch01: #服务名称(不是容器名,名称最好不要含有特殊字符,碰到过用下划线时运行出错)
    image: docker.elastic.co/elasticsearch/elasticsearch:6.4.3
    container_name: elasticsearch01 #容器名称 
    volumes: #挂载文件
      - ./elasticsearch/logs/:/usr/share/logs/
      - /elk/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro
    ports:
      - "9200:9200" #暴露的端口信息和docker run -d -p 80:80一样
      - "9300:9300"
    environment: #设置镜像变量,它可以保存变量到镜像里面
      ES_JAVA_OPTS: "-Xmx512m -Xms512m"
    networks: #加入指定网络
      - elk
  logstash_test:
    image: docker.elastic.co/logstash/logstash:6.4.3
    container_name: logstash01
    volumes:
      - /elk/config/logstash/config/:/usr/share/logstash/config/:ro
      - /elk/config/logstash/pipeline/:/usr/share/logstash/pipeline/
    ports:
      - "5044:5044"
      - "9600:9600"
    environment:
      LS_JAVA_OPTS: "-Xmx512m -Xms512m"
    networks:
      - elk
    depends_on: #标签解决了容器的依赖、启动先后的问题
      - elasticsearch01
  kibana_test:
    image: docker.elastic.co/kibana/kibana:6.4.3
    container_name: kibana01
    volumes:
      - /elk/config/kibana.yml:/usr/share/kibana/config/kibana.yml
    ports:
      - "5601:5601"
    networks:
      - elk
    depends_on:
      - elasticsearch01
networks:
  elk:
    driver: bridge

[root@topcheer config]#

然后执行docker-compose up -d

[root@topcheer config]# docker-compose ps
     Name                    Command               State                       Ports
---------------------------------------------------------------------------------------------------------
elasticsearch01   /usr/local/bin/docker-entr ...   Up      0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp
kibana01          /usr/local/bin/kibana-docker     Up      0.0.0.0:5601->5601/tcp
logstash01        /usr/local/bin/docker-entr ...   Up      0.0.0.0:5044->5044/tcp, 0.0.0.0:9600->9600/tcp
[root@topcheer config]#

发现都很快的起起来了,docker的kibana真的很慢,但是更推荐k8s去部署,后面再写。

 

 

 

 

Docker-compose 部署 ELK(Elasticsearch、Logstash、Kibana)的步骤如下: 1. 创建一个目录,例如 elk,用于存放 docker-compose.yml 文件和其他配置文件。 2. 在 elk 目录下创建一个 docker-compose.yml 文件,内容如下: ``` version: '3' services: elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:7.10.2 container_name: elasticsearch environment: - discovery.type=single-node ports: - "920:920" - "930:930" volumes: - ./elasticsearch/data:/usr/share/elasticsearch/data networks: - elk logstash: image: docker.elastic.co/logstash/logstash:7.10.2 container_name: logstash volumes: - ./logstash/config:/usr/share/logstash/pipeline/ environment: - ELASTICSEARCH_HOSTS=http://elasticsearch:920 ports: - "500:500" - "960:960" networks: - elk kibana: image: docker.elastic.co/kibana/kibana:7.10.2 container_name: kibana environment: - ELASTICSEARCH_HOSTS=http://elasticsearch:920 ports: - "5601:5601" networks: - elk networks: elk: driver: bridge ``` 3. 在 elk 目录下创建一个 elasticsearch 目录,用于存放 Elasticsearch 的数据。 4. 在 elk 目录下创建一个 logstash 目录,用于存放 Logstash 的配置文件。 5. 在 logstash 目录下创建一个 logstash.conf 文件,用于配置 Logstash 的输入、过滤和输出,例如: ``` input { tcp { port => 500 codec => json } } filter { # 过滤器配置 } output { elasticsearch { hosts => ["http://elasticsearch:920"] index => "logstash-%{+YYYY.MM.dd}" } } ``` 6. 在 elk 目录下运行以下命令启动 ELK: ``` docker-compose up -d ``` 7. 访问 http://localhost:5601 即可打开 Kibana 界面,开始使用 ELK。 注意:在生产环境中,应该根据实际需求对 ELK 进行配置和优化,例如设置 Elasticsearch 的内存和磁盘限制、配置 Logstash 的过滤器和输出、使用安全证书等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值