ELK学习笔记

ElasticStack分布式日志系统概述

  • Elasticsearch:

    • 一个分布式搜索引擎,能够快速存储、搜索和分析大量数据。
    • 核心概念包括索引(Index)、文档(Document)和分片(Shard)。
    • 使用 RESTful API 进行数据操作,支持复杂的查询和聚合操作。
  • Logstash:

    • 一个数据处理管道工具,用于从各种来源(如日志文件、数据库)收集、处理和传输数据。
    • 支持丰富的输入(Input)、过滤(Filter)和输出(Output)插件,用于定制数据处理流程。
  • Kibana:

    • 一个开源的数据可视化工具,用于在 Elasticsearch 上构建可视化分析仪表盘。
    • 支持创建图表、地图、表格等多种可视化形式,方便用户探索和分析数据。

使用Docker可获取Elasticsearch镜像。

docker pull docker.elastic.co/elasticsearch/elasticsearch:7.9.3

 

拉取Kibana镜像
docker run -d --name kibana --link elasticsearch:elasticsearch -p 5601:5601 kibana:7.9.3

下载Logstash的安装包。

wget https://artifacts.elastic.co/downloads/logstash/logstash-7.1.0.tar.gz

解压下载的安装包到指定目录。

tar -zxvf logstash-7.1.0.tar.gz

 在 Docker 中创建一个 ELK(Elasticsearch, Logstash, Kibana)栈,可以按照以下步骤操作

 项目目录中创建一个 docker-compose.yml

目录结构如下

version: '7.5.2'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.5.2
    container_name: elasticsearch
    environment:
      - discovery.type=single-node
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - esdata:/usr/share/elasticsearch/data
    ports:
      - "9200:9200"
      - "9300:9300"

  logstash:
    image: docker.elastic.co/logstash/logstash:7.5.2
    container_name: logstash
    volumes:
      - ./logstash/pipeline:/usr/share/logstash/pipeline
    ports:
      - "5044:5044"
      - "9600:9600"

  kibana:
    image: docker.elastic.co/kibana/kibana:7.5.2
    container_name: kibana
    environment:
      - ELASTICSEARCH_URL=http://elasticsearch:9200
    ports:
      - "5601:5601"

volumes:
  esdata:
    driver: local

配置 Logstash 管道 

 项目目录中创建 logstash/pipeline 目录,并在其中创建 logstash.conf 文件。

input {
  beats {
    port => 5044
  }
}

filter {
  if [type] == "syslog" {
    grok {
      match => { "message" => "%{SYSLOGLINE}" }
    }
    date {
      match => [ "timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
    }
  }
}

output {
  elasticsearch {
    hosts => "http://elasticsearch:9200"
    index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
  }
}

 启动 ELK 容器

docker-compose up -d

 这个命令会在后台启动 Elasticsearch、Logstash 和 Kibana 容器。

验证 ELK 栈是否正常运行

  • 访问 Kibana: 在浏览器中输入 http://localhost:5601,你应该能够看到 Kibana 的欢迎界面。
  • 访问 Elasticsearch: 通过 http://localhost:9200,你应该能看到一个 JSON 响应,显示 Elasticsearch 的状态信息。

使用 ELK

配置好后,你可以将日志数据发送到 Logstash 的 5044 端口,并通过 Kibana 可视化分析这些数据。

这样,你就成功地在 Docker 中创建了一个 ELK 栈,并可以开始使用它来收集、分析和可视化日志数据。如果你有更多的自定义需求,比如增加额外的插件或自定义配置,可以在 docker-compose.yml 文件中进行调整。

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值