分布式日志收集(ELK)

2023-11-18

ELK简介:

ELK=Elasticsearch+ Logstash + Kibana,是同一家公司开发的3个开源工具,可组合起来搭建海量日志分析平台,目前很多公司都在使用这种方式搭建日志分析平台进行大数据分析。
在这里插入图片描述
参考:初识ES数据库


Logstash介绍:

Logstash是一个完全开源的工具,它可以对你的日志进行收集、过滤、分析,支持大量的数据获取方法,并将其存储供以后使用(如搜索)。说到搜索,logstash带有一个web界面,搜索和展示所有日志。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。
核心流程:Logstash事件处理有三个阶段:inputs→filters→outputs。是一个接收,处理,转发日志的工具。支持系统日志,webserver日志,错误日志,应用日志,总之包括所有可以抛出来的日志类型。


传统日志收集存在的问题:

传统日志收集一般都是用log4j,slf4j,logback等一些日志插件,帮我们做日志存储并保存到本地,可配置按每天存储或指定日志文件大小等一些功能。在单体应用下这样做或许没啥问题,但是当做了集群或者是分布式系统中问题一下就暴露出来了。
例如:当系统出现异常我们需要查询某个日志时,我们需要这样做:

  1. 先定位到某个服务,确定该日志是哪个服务产生的。
  2. 由于服务做了集群会自动负载均衡,我们不知道该日志在哪个服务节点(实例)上,需要依次登录到每个节点的服务器进行排查,当服务节点很多时可想而知这样的工作量是巨大的;而且日志文件一般很大查询相率也不高。

而ELK就可以帮我们解决这个痛点,Logstath将各服务节点的日志收集起来并集中存储到ES,ES强大的搜索功能可以帮我们实现快速查询,我们只需要利用Kibana可视化界面进行查询操作即可展示结果。

ELK日志收集原理图解:

在这里插入图片描述
注:Logstash三个核心功能Input(收集读取日志)、Filter(过滤日志信息)、Output(将日志存储到ES)。
在实际应用中,还需要引入消息队列如Kafka,后面在介绍


ELK环境搭建

搭建顺序为Elasticsearch、Logstash,Kibana只是个图形化界面先搭后搭都不影响。

1. 安装ES与Kibana并启动
关于ES与Kibana的安装这里不赘述了,请参考:Elasticsearch入门(ES,Kibana可视化界面安装)

2. 安装Logstash

  • 下载安装包: wget https://artifacts.elastic.co/downloads/logstash/logstash-6.4.3.tar.gz
  • 解压:tar -zcvf logstash-6.4.3.tar.gz
  • 在Logstash的config目录下放入myservice.conf文件(见下)
  • 启动:./logstash -f myservice.conf #进入logstash的bin目录下,启动时指定配置文件

myservice.conf文件内容如下:

input{
	#从文件读取日志信息输送到控制台 path:这里测试ES的日志收集,就不单独搭建服务了
	file{
	    # 要读取的日志文件,还可以是Kafk、数据库、MongoDB、Redis...
		path => "/usr/local/elasticsearch-6.4.3/1ogs/myes.1og" 
		codec => "json"  # 以JSON格式读取日志
		type => "elasticsearch" # 索引类型,可自定义 如:order-service
		start_position=>"beginning"
	}
}
# filter{
#
# }
output{
	# 标准输出,写入ES
	# stdout{}
	# 输出进行格式化,采用Rulby库来解析日
	stdout{ codec => rubydebug }
	
	elasticsearch {
		# hosts:配置ES服务列表地址  
		hosts => ["192.168.2.101:9200"]
		#index:根据每天日期创建索引  格式:es-YYYY.MM.dd  默认索引类型:doc
		index => "es-%{+YYYY.MM.dd}"
	}
}

3. 测试是否成功
启动后我们查看到Logstash日志输出如下JSON字符串即表示成功:
在这里插入图片描述
4. 利用Kibana的DevTools进行查询(常用)
浏览器访问Kibana地址:http://192.168.2.101:5601

在这里插入图片描述
测试命令:

#### 例如今天产生的索引名为: es-2019.10.10
### 查看文档映射
GET es-2019.10.10/_mapping

### 所有字段message中匹配node-0的日志
GET es-2019.10.10/_search
{
  "query": {
    "match": {
      "message": "node-0"
    }
  }
}

5. 可视化界面查询
第一次进入Discover需先创建一个 es*,表示索引名为es开始的
在这里插入图片描述

ELK初体验就到这里了,后面将介绍ELK+Kafka实现分布式系统日志收集

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

分布式日志收集(ELK) 的相关文章

  • Docker + ELK + SpringBoot部署

    步骤一 Docker安装ELK镜像 docker pull sebp elk 步骤二 启动镜像 方法一 Docker部署 docker run e ES JAVA OPTS Xms256m Xmx256m 设置虚拟机所需内存大小 p 560
  • ELK 企业级日志分析系统(理论加实战部署详解)

    ELK 企业级日志分析系统 理论加实战部署详解 文章目录 一 ELK 概述 1 1 ELK 的工作原理 二 部署详解 一 ELK Elasticsearch 集群部署 在Node1 Node2节点上操作 二 ELK Logstash 部署
  • ELK多个日志文件创建多个项目索引

    一 背景 我的elk架构是filebeat redis logstash elasticsearch kibana 我的想法是 我一台服务器多个程序有多个日志文件 在kibana里面想创建不通项目索引 指定不同日志文件 二 问题及解决思路
  • Docker搭建ELK日志采集服务及Kibana可视化图表展示

    架构 ES docker network create elk mkdir p opt ELK es data chmod 777 opt ELK es docker run d name elasticsearch net elk p 9
  • centos7-elk之elasticsearch

    准备环境 centos7 4 jdk 1 8 安装jdk可见链接 https blog csdn net xuejinyan123 article details 102685458 下载 elasticsearch 版本 6 0 1 存放
  • 物理机重启后ES无法访问

    问题 机房断电 重启机器后 Elasticsearch 集群无法访问 集群状态访问如下 可以访问 9200 端口 目测 Elasticsearch 是正常的 但是查看集群状态报错 报错内容 error root cause type mas
  • 8.2.3-elasticsearch内置分词器之keyword/pattern

    ES默认提供了八种内置的analyzer 针对不同的场景可以使用不同的analyzer 1 keyword analyzer 1 1 keyword类型及分词效果 keyword analyzer视字符串为一个整体不进行分词处理 测试key
  • ELK日志分析系统原理与部署

    文章目录 一 ELK日志分析系统简介 1 1ELK日志分析系统组成 1 2日志处理步骤 二 三款软件各自概念 2 1Elasticsearch介绍 2 2Logstash介绍 2 3Kibana介绍 三 ELK日志分析系统部署 3 1实验环
  • 使用 ELK 收集日志

    在当前分布式 微服务架构下 各个应用都部署在不同的服务器上 每个应用都在记录着自己重要或者不重要的日志信息 当我们要通过日志信息来排查错误时 可以根据出错应用在对应的机器上找报错相关的日志信息 但是 可能我们不具有相应服务器的访问权限 也可
  • Elasticsearch 中文分词&多词搜索&权重

    目录 中文分词器 一 安装中文分词器ik 二 使用中文分词器 多词搜索 权重 中文分词器 一 安装中文分词器ik 源码地址 https github com medcl elasticsearch analysis ik 根据提示 进行安装
  • 2023最新ELK搭建教程,基于ES 8

    一 ELK介绍 ELK的应用 ELK的应用场景 日志查询 问题排查 上线检查服务器监控 应用监控 错误报警Bug管理性能分析 用户行为分析 安全漏洞分析 企业 行业 ELK用途 阿里巴巴 电子商务 云计算 用于日志管理和实时监控 腾讯 互联
  • ELK的优点和局限性

    ELK作为一种开源的日志管理解决方案 具有以下优点 实时性高 ELK可以实现实时索引和搜索 支持高效的日志收集和处理 可以帮助用户及时发现问题和异常 提高系统的响应速度和稳定性 可扩展性强 ELK的架构支持水平扩展和负载均衡 可以根据需要增
  • Kibana 7.X 导出CSV报告

    背景 由于有时候需要基于日志做一些处理 由官网得知 ES7 3 0发布的新特性 从保存的搜索中导出CSV 我们的Kibana刚好是7 3 0 于是将自己的使用经验及解决的问题 分享给有需要的小伙伴 一 使用步骤 1 1 保存搜索 Disco
  • Centos7安装elasticsearch及kibana并进行安全设置

    Centos7安装elasticsearch及kibana并进行安全设置 每天多学一点点 话不多说 这就开始吧 文章目录 Centos7安装elasticsearch及kibana并进行安全设置 1 前言 2 环境要求 3 安装elasti
  • 【ELK】kibana的Saved Objects导入脚本

    快速导入命令 curl XPOST http 192 168 1 1 5601 api kibana dashboards import H Content Type application json H kbn xsrf reportin
  • 使用python和snapshot备份ElasticSearch索引数据

    该python备份snapshot的索引数据脚本 通过Elasticsearch连接es 然后通过es indices get alias函数获取所有索引名称 通过列表的startswith函数剔除 开头的自带索引名称 然后把所有索引名称放
  • Elasticsearch 相关度评分TF&IDF算法揭秘

    1 算法介绍 relevance score算法 简单来说 就是计算出 一个索引中的文本 与搜索的文本 他们之间的关联匹配程序 ElasticSearch使用的是term frequency inverse document frequen
  • 分布式日志收集(ELK)

    ELK简介 ELK Elasticsearch Logstash Kibana 是同一家公司开发的3个开源工具 可组合起来搭建海量日志分析平台 目前很多公司都在使用这种方式搭建日志分析平台进行大数据分析 参考 初识ES数据库 Logstas
  • Kibana报错:Kibana server is not ready yet解决方法

    环境及版本 elasticsearch和kibana均为包安装的7 6 2 系统为unbutu22 04 1 部署完后访问kibana的web界面 出现kibana server is not ready yet 遇到这个问题后也是搜索了一
  • Beats — Filebeat 基础操作

    ElasticStack Beats 定义 一 ElasticStack 的组成 二 Beats 组件 FileBeat 日志采集 二 Filebeat 工作原理 三 启动命令 四 部署和运行 1 output console 通过终端获取

随机推荐

  • jeesite实战(四)——用户权限

    系列文章目录 提示 这里可以添加系列文章的所有文章的目录 目录需要自己手动添加 例如 第一章 Python 机器学习入门之pandas的使用 提示 写完文章后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 系列文章目录 前言 一
  • 命名实体识别(NER)综述

    本文是中文信息处理课程的期末考核大作业 对于自然语言处理主流任务的调研报告 版权声明 本文为CSDN博主
  • aix 查询服务器型号,aix系统查询服务器的配置文件

    aix系统查询服务器的配置文件 内容精选 换一换 本章节指导用户在mdadm配置文件中添加新建RAID阵列的信息 例如设备名 UUID等 系统启动时 通过查询文件中配置的信息 启动运行可用的RAID阵列 本文以云服务器的操作系统为 Cent
  • GB/T 20984-2022《信息安全技术 信息安全风险评估方法》解读

    前言 近年来 信息安全风险评估工作逐步在国家基础信息网络及重要行业信息系统中普遍推行 信息安全风险评估是信息安全保障工作的基础和重要环节 日前 GB T 20984 2022 信息安全技术 信息安全风险评估方法 发布 将于2022年11月1
  • c++ 函数

    1 程序示例 include phc h include
  • 说说background属性

    一 前言 backgound 相信接触前端的人都已经很熟悉了 但是小白们都只是停留在background fff的层面上 那么今天作为小白的我要揭竿而起了 二 简述 用作 描述背景 的css属性 background是一系列背景属性的简写
  • MySQL数据库(面试必备)

    版权声明 本文为博主原创文章 遵循 CC 4 0 BY SA 版权协议 转载请附上原文出处链接和本声明 本文链接 https blog csdn net ThinkWon article details 104778621 文章目录 数据库
  • python绘制直方图根据不同分类_如何在python中绘制具有多个类别的直方图

    下面是一个使用Matplotlib中的 为每个箱子提供多个条的直方图示例 import numpy as np import matplotlib pyplot as plt length of flowers np random rand
  • 数据清洗:重复值识别和处理方法

    重复值识别 数据集中的重复值包括以下两种情况 数据值完全相同的多条数据记录 数据主体相同但匹配到的唯一属性值不同 示例如下 导入pandas库 import pandas as pd 生成重复数据 data1和data3完全相同 data1
  • idea设置鼠标自定义放大缩小代码字体问题

    快捷键 Ctrl Alt S 这是在设置IntelliJ IDEA 代码字体的快捷键设置缩小 怎么达到的了 就是ctrl 你的鼠标滑扭往下
  • 什么是编码,什么是解码。原理解读

    原文 http www cnblogs com luguo3000 p 3592562 html 编码问题一直都伴随着程序猿从不间断 刚开始学编程的时候好多次遇到编码问题 解 决了文件读取的编码问题 又遇到了网络编码问题 解决了网络编码问题
  • 进制数字的输入和输出

    写个程序 它读取一个整数并以二进制 八进制 和十六进制输出 以十六进制浮点数输出倒数 public class test1 public static void main String args 写个程序 它读取一个整数并以二进制 八进制
  • WS2812RGB灯的控制学习

    WS2812RGB WS2812 2811只需一根信号线就能控制灯带上所有led 多个灯带间可以通过串联轻松延长 在30hz的刷新频率下一个信号线能够控制至多500个led 原理 WS2812B是一个集控制电路与发光电路于一体的智能外控LE
  • 【区块链】从一笔交易看区块链运作流程

    出处 一笔交易从产生到完成的流程 搞懂区块链运作原理 可先区分出交易 Transaction 与区块 Block 两个部分 这里我们分别从区块链中一笔交易产生到完成验证的流程 以及图解一个区块 来了解区块链的运作原理 并进一步拆解5大区块链
  • android:ems

    android ems 12 设置TextView或者Edittext的宽度为12个字符的宽度 说明该控件最多只能显示12个字符 超出的部分将不显示
  • 使用el-table对排序进行回显

  • TypeScript 交叉类型(intersection type)

    在TS中和联合类型 union type 对应的还有交叉类型 intersection type 交叉类型的出现主要为了组合多个对象类型 object type 因为相对于interface object type没法继承 那么就可以通过u
  • iOS自定义导航栏-MLBNavigation

    为什么要做这个 平时使用原生导航栏 处理返回手势的时候 自己做不到像QQ那样处理的很完美 虽然有很多大大写的有不错的框架 个人感觉有些框架太繁重 并且还是不能满足一些要求 所以做这个 很简单 需要的参考 大神绕道 安装 下载demo 将ML
  • 2022芯原芯片设计 笔试题分析和讨论

    2022芯原设计笔试题分析和讨论 以下仅为个人理解和分析 不保证正确 欢迎大家发表自己的想法 讨论出正确答案 企业知识题 1 1 D 芯原的主要经营模式为芯片设计平台即服务 Silicon Platform as a Service SiP
  • 分布式日志收集(ELK)

    ELK简介 ELK Elasticsearch Logstash Kibana 是同一家公司开发的3个开源工具 可组合起来搭建海量日志分析平台 目前很多公司都在使用这种方式搭建日志分析平台进行大数据分析 参考 初识ES数据库 Logstas