docker compose 部署 ELK

简介

ELK 是一套由 Elasticsearch、Logstash 和 Kibana 组成的开源工具,用于搜索、分析和可视化数据。

  • Elasticsearch:一个基于 Lucene 的分布式搜索引擎,提供 RESTful API,能够实时存储、搜索和分析大量数据。它支持全文搜索和复杂查询,非常适合用于日志分析和数据检索。
  • Logstash:一个强大的数据处理管道,可以接收、处理和转发数据。它支持多种输入源(如日志文件、数据库、消息队列等),可以对数据进行过滤、转换,然后将其发送到 Elasticsearch 或其他目标系统。
  • Kibana:一个数据可视化界面,用户可以通过它创建各种图表、仪表盘和报表,以便更好地理解和展示存储在 Elasticsearch 中的数据。Kibana 提供了丰富的可视化选项,使得数据分析变得直观易懂。

ELK 堆栈常用于日志管理、监控和业务分析等场景,因其强大的搜索和可视化能力,受到广泛应用。

部署

初始化配置

创建es数据目录data和插件目录plugins

mkdir data plugins
chmod 777 data plugins

创建elasticsearch.yml

cat > elasticsearch.yml <<EOF
network.host: 0.0.0.0
EOF

创建kibana.yml

cat > kibana.yml <<EOF
server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://elasticsearch:9200" ]
xpack.monitoring.ui.container.elasticsearch.enabled: true
i18n.locale: "zh-CN"
EOF

创建logstash.conf

cat > logstash.conf <<EOF
input {
  # 来源beats
  beats {
      # 端口
      port => "5044"
  }
}
output {
  elasticsearch {
    hosts => ["http://elasticsearch:9200"]
    index => "test"
  }
  stdout { codec => rubydebug }
}
EOF

创建docker-compose.yaml

cat > docker-compose.yaml <<EOF
version: '3'
services:
  elasticsearch:
    image: elasticsearch:7.7.0       # 镜像版本
    container_name: elasticsearch    # 容器名称
    restart: always                  # 自动重启
    environment:
      - "discovery.type=single-node" # 以单一节点模式启动
      - "TZ=Asia/Shanghai"           # 设置时区
    volumes:                         # 持久化数据
      - ./data:/usr/share/elasticsearch/data
      - ./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
      - ./plugins:/usr/share/elasticsearch/plugins
    ports:                           # 端口映射
      - 9200:9200
      - 9300:9300
    deploy:
      resources:
        limits:
          cpus: "1"              # 限制 CPU 核心数
          memory: "2G"           # 限制内存大小
  kibana:
    image: kibana:7.7.0
    container_name: kibana
    restart: always
    depends_on:
      - elasticsearch #kibana在elasticsearch启动之后再启动
    environment:
      - i18n.locale=zh-CN
      - TZ=Asia/Shanghai
    volumes:
      - ./kibana.yml:/usr/share/kibana/config/kibana.yml
    ports:
      - 5601:5601
    deploy:
      resources:
        limits:
          cpus: "1"
          memory: "1G"
  logstash:
    image: logstash:7.7.0
    container_name: logstash
    restart: always
    ports:
      - 5044:5044
      - 5045:5045
    environment:
      - TZ=Asia/Shanghai
    depends_on:
      - elasticsearch
    deploy:
      resources:
        limits:
          cpus: "1"
          memory: "1G"
EOF

启动

docker compose up -d

访问

curl http://127.0.0.1:5601
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

自在1990

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值