如何快速搭建一个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环境。

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

相关推荐
嵌入式大圣1 分钟前
Neko虚拟浏览器远程协作方案:Docker+内网穿透技术部署实践
运维·docker·容器
学软件的小铃铛2 小时前
ELK日志管理框架介绍
elk·系统架构
极简网络科技2 小时前
Docker、Wsl 打包迁移环境
运维·docker·容器
杨浦老苏2 小时前
轻量级Docker管理工具Docker Switchboard
运维·docker·群晖
江湖有缘2 小时前
【Docker管理工具】部署Docker可视化管理面板Dpanel
运维·docker·容器
一加一等于二2 小时前
docker部署postgresql17,并且安装插件
docker·postgresql
猫咪老师19954 小时前
多系统一键打包docker compose下所有镜像并且使用
java·docker·容器
aitav04 小时前
⚡️ Linux Docker 基本命令参数详解
linux·运维·docker
Nazi64 小时前
docker数据管理
运维·docker·容器
姓刘的哦5 小时前
ubuntu中使用docker
linux·ubuntu·docker