Elastic Stack 包括 Elasticsearch、Kibana、Beats 和 Logstash(也称为 ELK Stack)。能够安全可靠地获取任何来源、任何格式的数据,然后实时地对数据进行搜索、分析和可视化

Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎

Kibana 是一个免费且开放的用户界面,能够让您对 Elasticsearch 数据进行可视化管理和展示

Beats 是一个免费且开放的平台,集合了多种单一用途数据采集器,将数据发送给 Logstash 或 Elasticsearch

Logstash 是一个免费且开放的服务器端数据处理管道,能够从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的“存储库”中

一、下载镱像(image)

搜索镱像(image)

docker search elasticsearch
docker search kibana
docker search logstash

获取镱像(image)

docker pull elasticsearch:7.6.0     #镜像名称:Tag
docker pull kibana:7.6.0 #镜像名称:Tag
docker pull logstash:7.6.0 #镜像名称:Tag

注:版本要统一

二、创建 ELK.yml

ELK.yml

version: "3.5"

services:
elasticsearch:
container_name: elasticsearch
image: elasticsearch:7.6.0 #镱像(image)
restart: always #重启方式
environment:
discovery.type: single-node #环境变量:运行模式 单例
ports:
- "9200:9200" #端口映射
- "9300:9300"
kibana:
container_name: kibana
image: kibana:7.6.0 #镱像(image)
restart: always #重启方式
environment:
I18N_LOCALE: "zh-CN" #指定中文
ports:
- "5601:5601" #端口映射
logstash:
container_name: logstash
image: logstash:7.6.0
restart: always
volumes: #文件夹映射,本地:容器
- "/Users/iChochy/logs:/usr/share/logstash/logs"
ports:
- "5044:5044"
- "9600:9600"

volumes自定义监控的文件夹

注:注意YML文件编写,不要出现 Tab 制表符,否则导致文件解析错误,启动容器(container)失败

# 错误信息
yaml.scanner.ScannerError: mapping values are not allowed here

三、运行容器

宿主机hosts中添加

127.0.0.1      elasticsearch

命令启动

docker-compose -f ELK.yml up -d
docker-compose
-f #指定构建文件
up #创建并启动容器
-d #后台运行容器(container),打印容器(container)ID

四、检查容器的运行状态

elasticsearch 访问:http://127.0.0.1:9200

logstash 访问:http://127.0.0.1:9600

Kibana 访问:http://127.0.0.1:5601,进入 Kibana

运行docker ps查询容器运行状态,可以查看到容器的ID

mleo$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1b8cb2effede logstash:7.6.0 "/usr/local/bin/dock…" 2 hours ago Up About an hour 0.0.0.0:5044->5044/tcp, 0.0.0.0:9600->9600/tcp logstash
69b8bc678e4e kibana:7.6.0 "/usr/local/bin/dumb…" 3 weeks ago Up 2 hours 0.0.0.0:5601->5601/tcp kibana
8c655f5b7493 elasticsearch:7.6.0 "/usr/local/bin/dock…" 3 weeks ago Up 2 hours 0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp elasticsearch

运行docker logs id查看容器运行日志

例:持续查看logstash日志
docker logs 1b8cb2effede -f

五、修改logstash配置,监控日志文件

  • 运行docker exec -it 1b8cb2effede bash进入logstash
  • 运行vi pipeline/logstash.conf修改logstash默认配置
input {
beats {
port => 5044
}
file {
path => "/usr/share/logstash/logs/*" #监控的文件路径
}
} output {
stdout {
codec => rubydebug
}
elasticsearch {
hosts => ["http://elasticsearch:9200"] #elasticsearch请求地址
index => "ichochy" #索引名称
}
}
  • 运行docker restart 1b8cb2effede重启 logstash

六、采集日志

在logstash的监控的文件路径下动态添加日志文件,日志就可以自动采集到 elasticsearch

touch web.log   #创建日志文件
echo "www.ichochy.com" > web.log #添加日志信息

查看 logstash 日志信息可以看到打印的日志

{
"@version" => "1",
"path" => "/usr/share/logstash/logs/web.log",
"host" => "1b8cb2effede",
"@timestamp" => 2020-07-10T14:07:16.633Z,
"message" => "www.ichochy.com"
}

七、搜索、分析日志

访问:http://127.0.0.1:5601,进入 Kibana

Discover可以看到刚刚添加进来的日志数据,开始表演…………


联系方式:

邮箱:iChochy@qq.com

网站:https://www.ichochy.com

源文:https://ichochy.com/posts/20200710/

Elastic Stack(ElasticSearch 、 Kibana 和 Logstash) 实现日志的自动采集、搜索和分析的更多相关文章

  1. Elastic Stack之kibana使用

    Elastic Stack之kibana使用 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客数据流走向:FileBeat ===>Redis  ===>log ...

  2. Filebeat+Logstash+ElasticSearch+Kibana搭建Apache访问日志解析平台

    对于ELK还不太熟悉的同学可以参考我前面的两篇文章ElasticSearch + Logstash + Kibana 搭建笔记.Log stash学习笔记(一),本文搭建了一套专门访问Apache的访 ...

  3. Logstash+ElasticSearch+Kibana处理nginx访问日志(转)

    ELK似乎是当前最为流行的日志收集-存储-分析的全套解决方案. 去年年初, 公司里已经在用, 当时自己还山寨了一个统计系统(postgresql-echarts, 日志无结构化, json形式存储到p ...

  4. Elastic Stack之kibana入门

    为了解决公司的项目在集群环境下查找日志不便的问题,我在做过简单调研后,选用Elastic公司的Elastic Stack产品作为我们的日志收集,存储,分析工具. Elastic Stack是ELK(E ...

  5. ElasticSearch Kibana 和Logstash 安装x-pack记录

    前言 最近用到了ELK的集群,想想还是用使用官方的x-pack的monitor功能对其进行监控,这里先上图看看: 环境如下: 操作系统: window 2012 R2 ELK : elasticsea ...

  6. Elasticsearch,Kibana,Logstash,NLog实现ASP.NET Core 分布式日志系统

    Elasticsearch - 简介 Elasticsearch 作为核心的部分,是一个具有强大索引功能的文档存储库,并且可以通过 REST API 来搜索数据.它使用 Java 编写,基于 Apac ...

  7. Filebeat+Kafka+Logstash+ElasticSearch+Kibana 日志采集方案

    前言 Elastic Stack 提供 Beats 和 Logstash 套件来采集任何来源.任何格式的数据.其实Beats 和 Logstash的功能差不多,都能够与 Elasticsearch 产 ...

  8. ES 集中式日志分析平台 Elastic Stack(介绍)

    一.ELK 介绍 ELK 构建在开源基础之上,让您能够安全可靠地获取任何来源.任何格式的数据,并且能够实时地对数据进行搜索.分析和可视化. 最近查看 ELK 官方网站,发现新一代的日志采集器 File ...

  9. 集中式日志分析平台 Elastic Stack(介绍)

    一.ELK 介绍 二.ELK的几种常见架构 >>ELK 介绍<< ELK 构建在开源基础之上,让您能够安全可靠地获取任何来源.任何格式的数据,并且能够实时地对数据进行搜索.分析 ...

随机推荐

  1. AutoPy开发文档

    AutoPy 简介 AutoPy是为python开发者提供的一个安卓插件,由路飞大佬开发维护,主要功能为了实现使用python在安卓端完成一些操作,例如点击,滑动,返回 准备 安装AutoPy.apk ...

  2. Android学习之启动活动的最佳写法

    •开始热身 通过之前的学习,我们现在可以很容易的启动一个活动: 首先通过 Intent 构造出当前的 "意图",然后调用  startActivity()  方法将活动启动起来: ...

  3. Starting Tomcat v9.0 Server at localhost' has encountered a problem

    •问题描述 在通过 Eclipse 打开 Tomcat 时报错: •解决方案 找到 Tomcat 的安装位置,打开 tomcat\bin 目录,找到 shutdown.bat,手动关闭 tomcat: ...

  4. Dynamics CRM安装教程五:ADFS安装配置

    ADFS即联合身份认证是一种更加安全的身份验证方式下面开始进行ADFS打开服务器管理器,到添加角色和功能向导下一步到下面界面勾选Active Directory 联合身份认证服务,下一步 默认,下一步 ...

  5. badusb论述

    "BadUSB"是2014年计算机安全领域的热门话题之一,该漏洞由Karsten Nohl和Jakob Lell共同发现 攻击原理 TEENSY 攻击者在定制攻击设备时,会向USB ...

  6. 前端 JS 原生 javascript 和 location.hash 实现一个单页应用的路由 router

    开篇日常立个flag-- 前言 最近在做一些应用,类似于单页应用,想实现类似于 Vue 路由的效果. 但是个人 Vue 基础四舍五入约等于无,而且看着 Vue-router 吃力+用不起来(因为我的项 ...

  7. Java 使用 Maven BOM 统一管理版本号

    一个中大型的 Java 项目往往包含若干 JAR 包,这些 JAR 包有着不同的版本号.如果这些 JAR 包单独发布,然后直接通过版本号引用相应的 JAR 包,不同版本的兼容性维护将变得十分麻烦.为了 ...

  8. @Scheduled注解

    1 概述 @Scheduled注解是spring boot提供的用于定时任务控制的注解,主要用于控制任务在某个指定时间执行,或者每隔一段时间执行.注意需要配合@EnableScheduling使用,配 ...

  9. 老和尚给小和尚讲故事引发了Java设计模式:组合模式

    目录 示例 组合模式 定义 意图 主要解决问题 优缺点 安全式和透明式的组合模式 安全式的合成模式的结构 透明式的合成模式的结构 老和尚和小和尚的故事 示例 有一个绘图系统,可以描绘各种图形,假设现在 ...

  10. HUAWEI AppGallery Connect翻译服务升级,方便应用出海本地化

    HUAWEI AppGallery Connect翻译服务全新升级,携手新宇智慧.语言桥等多家服务商为全球开发者提供优质的翻译服务,解决应用在全球分发时面临的多语言本地化问题,通过平台化与全环节的翻译 ...