如何快速搭建一个ELK环境?

前言

ELK是Elasticsearch、Logstash和Kibana三个开源软件的统称,通常配合使用,并且都先后归于Elastic.co企业名下,故被简称为ELK协议栈。

Elasticsearch是一个实时的分布式搜索和分析引擎,它可以用于全文搜索、结构化搜索以及分析。

Logstash是一个具有实时传输能力的数据收集引擎,用于进行数据收集(如读取文本文件)、解析,并将数据发送给Elasticsearch。

Kibana则为Elasticsearch提供了分析和可视化的Web平台,用户可以在Elasticsearch的索引中查找、交互数据,并生成各种维度表格、图形。

要如何快速搭建一个ELK环境,我们用docker来做个实践。

前期准备,需要安装好docker、docker-compose的运行环境。

一、安装ELK

1、创建相应目录,执行如下命令。

复制代码
mkdir -p /docker/elk/elasticsearch/data
mkdir -p /docker/elk/logstash/{config,pipeline}
cd /docker/elk

2、编写yaml文件,内容如下;version替换成自己的docker-compose版本。

复制代码
vim docker-compose.yml
version: '2.2.2'  
services:  
  elasticsearch:  
    image: elasticsearch:7.12.1  
    container_name: elasticsearch  
    environment:  
      - "discovery.type=single-node"  
    ports:  
      - "9200:9200"  
      - "9300:9300"  
    volumes:  
      - ./elasticsearch/data:/usr/share/elasticsearch/data  
    networks:  
      - mynet  
  logstash:  
    image: logstash:7.12.1  
    container_name: logstash  
    volumes:  
      - ./logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml  
      - ./logstash/pipeline:/usr/share/logstash/pipeline  
    ports:  
      - "5044:5044"  
    networks:  
      - mynet  
    depends_on:  
      - elasticsearch  
  kibana:  
    image: kibana:7.12.1  
    container_name: kibana  
    ports:  
      - "5601:5601"  
    environment:  
      ELASTICSEARCH_URL: http://elasticsearch:9200  
      ELASTICSEARCH_HOSTS: http://elasticsearch:9200  
    networks:  
      - mynet  
    depends_on:  
      - elasticsearch  
  
networks:
  mynet:
    name: mynet
    driver: bridge

3、编写logstash配置,内容如下。

复制代码
vim logstash/config/logstash.yml
pipeline.workers: 2
pipeline.batch.size: 3000
pipeline.batch.delay: 10
path.config: /usr/share/logstash/pipeline
path.logs: /var/log/logstash

vim logstash/pipeline/logstash.conf
input {
  tcp {
    port => 5044
  }
}

filter {
  # 在这里可以添加过滤器,例如grok、date等
}

output {
  elasticsearch {
    hosts => ["elasticsearch:9200"]
    index => "log-%{+YYYY.MM.dd}"
  }
  stdout {
    codec => rubydebug
  }
}

4、启动服务,执行如下命令。

复制代码
docker-compose up -d

5、检查服务是否正常启动,执行如下命令。

复制代码
docker-compose ps -a

正常情况会返回类似如下内容。

6、如果有服务启动失败,可以使用如下命令排查问题。

复制代码
docker logs 容器id|容器名称

7、至此,ELK安装完成,并且可以正常运行。

二、测试验证

1、打开浏览器输入访问地址,如果一切正常会返回如下界面。

2、至此,ELK已验证完毕。

总结

今天简单介绍了一下什么是ELK,以及如何使用docker快速搭建ELK环境。

最后因本人能力有限,有什么不对的地方望各位大佬指出好让我改进,多多包含,谢谢大家。

相关推荐
阿里云大数据AI技术10 小时前
阿里云 ES AI 引擎版:面向 Agent 场景,为亿级租户、千亿规模向量设计的搜索引擎
人工智能·elasticsearch·agent
阿里云大数据AI技术11 小时前
FalconSeek 技术解析:阿里云 Elasticsearch 云原生内核如何让查询性能飙升600%
人工智能·elasticsearch
Elastic 中国社区官方博客11 小时前
将你的 Grafana Kubernetes 仪表板迁移到 Elastic Observability:相同的 PromQL,30 倍更快的查询
大数据·人工智能·elasticsearch·搜索引擎·容器·kubernetes·grafana
Elasticsearch13 小时前
使用重新设计的 AutoOps 更快地进行 Elasticsearch 问题排查
elasticsearch
风曦Kisaki13 小时前
#企业级docker私有仓库构建:harbor仓库与阿里云镜像仓库
阿里云·docker·容器
期待着201314 小时前
docker 安装 ,在centos7.9
运维·docker·容器
Elastic 中国社区官方博客14 小时前
如何使用 OpenTelemetry 对你的搜索 API 进行埋点,并使用 ES|QL 对其进行查询
大数据·功能测试·elasticsearch·搜索引擎·全文检索·可用性测试
骑上单车去旅行16 小时前
Docker Compose 命令完全指南:从构建到运维
docker·容器·eureka
spider_xcxc17 小时前
K8s 部署学习笔记
docker·容器·kubernetes·云计算·k8s
java_logo18 小时前
Docker Compose 部署 Apache Superset:轻松搭建开源 BI 平台
docker·开源·apache·superset·轩辕镜像·superset部署方案·docker superset