ELK架构基础

复制代码
ELK 知识点
一、Elasticsearch
(一)基本概念
分布式搜索引擎
基于 Lucene 的分布式、RESTful 风格的搜索和分析引擎,能快速存储、搜索和分析海量数据。
索引(Index)
类似于传统数据库中的数据库,是文档的集合。一个 Elasticsearch 集群可包含多个索引。
类型(Type)
在 Elasticsearch 6.x 之前,一个索引可包含多个类型,类似数据库中的表。从 7.x 开始,类型被废弃,一个索引只有一个默认类型。
文档(Document)
是 Elasticsearch 中存储的基本单位,以 JSON 格式表示,类似数据库中的一行记录。
分片(Shard)
为实现分布式存储和处理,索引会拆分成多个分片,每个分片是独立的 Lucene 索引。分片可分布在不同节点上,提高系统可扩展性和容错性。
副本(Replica)
每个分片可有零个或多个副本,副本是分片的复制,用于提高数据可用性和冗余性。
(二)核心功能
全文搜索
支持对文本内容进行高效的全文搜索,通过倒排索引实现快速查找。
聚合分析
可对数据进行分组、统计和计算,如计算平均值、求和、最大值等。
分布式存储
数据可分布在多个节点上,通过分片和副本机制实现高可用性和扩展性。
(三)常用操作
创建索引
bash
PUT /my_index
插入文档
bash
POST /my_index/_doc/1
{
    "title": "Elasticsearch Introduction",
    "content": "Elasticsearch is a powerful search engine."
}
搜索文档
bash
GET /my_index/_search
{
    "query": {
        "match": {
            "title": "Elasticsearch"
        }
    }
}
二、Logstash
(一)基本概念
数据收集和处理工具
是开源的数据收集引擎,能从各种数据源(如文件、日志、数据库等)收集数据,对数据进行过滤、转换和处理,然后将数据发送到 Elasticsearch 等目标存储系统。
输入(Input)
定义数据的来源,支持多种输入插件,如 file、syslog、jdbc 等。
过滤器(Filter)
对收集到的数据进行处理和转换,如解析日志格式、提取字段、添加标签等。常用的过滤器插件有 grok、date、mutate 等。
输出(Output)
定义数据的目的地,支持多种输出插件,如 elasticsearch、file、stdout 等。
(二)配置示例
plaintext
input {
    file {
        path => "/var/log/messages"
        start_position => "beginning"
    }
}

filter {
    grok {
        match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
    }
    date {
        match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
    }
}

output {
    elasticsearch {
        hosts => ["localhost:9200"]
        index => "syslog-%{+YYYY.MM.dd}"
    }
}
三、Kibana
(一)基本概念
数据可视化工具
Kibana 与 Elasticsearch 集成,提供了直观的用户界面,用于搜索、可视化和分析存储在 Elasticsearch 中的数据。用户可以通过创建仪表盘、图表和报表等方式,将数据以直观的方式展示出来。
(二)主要功能
数据探索
用户可以使用 Kibana 的搜索功能,对 Elasticsearch 中的数据进行交互式查询和探索。可以使用简单的关键词搜索,也可以使用复杂的查询语法。
可视化
支持多种可视化类型,如柱状图、折线图、饼图、地图等。用户可以根据自己的需求选择合适的可视化方式,将数据以直观的图表形式展示出来。
仪表盘创建
用户可以将多个可视化组件组合在一起,创建自定义的仪表盘。仪表盘可以用于监控系统状态、分析业务数据等。
数据挖掘
通过 Kibana 的聚合功能,可以对数据进行深入分析,发现数据中的模式和趋势。
(三)使用流程
连接 Elasticsearch
在 Kibana 的配置文件中指定 Elasticsearch 的地址,确保 Kibana 能够与 Elasticsearch 进行通信。
创建索引模式
在 Kibana 中创建索引模式,指定要使用的 Elasticsearch 索引。索引模式定义了数据的结构和字段,是进行数据探索和可视化的基础。
进行数据探索和可视化
使用 Kibana 的搜索和可视化工具,对数据进行探索和分析。可以创建各种可视化组件,并将它们添加到仪表盘上。

ELK 知识点

一、Elasticsearch

(一)基本概念

分布式搜索引擎

基于 Lucene 的分布式、RESTful 风格的搜索和分析引擎,能快速存储、搜索和分析海量数据。

索引(Index)

类似于传统数据库中的数据库,是文档的集合。一个 Elasticsearch 集群可包含多个索引。

类型(Type)

在 Elasticsearch 6.x 之前,一个索引可包含多个类型,类似数据库中的表。从 7.x 开始,类型被废弃,一个索引只有一个默认类型。

文档(Document)

是 Elasticsearch 中存储的基本单位,以 JSON 格式表示,类似数据库中的一行记录。

分片(Shard)

为实现分布式存储和处理,索引会拆分成多个分片,每个分片是独立的 Lucene 索引。分片可分布在不同节点上,提高系统可扩展性和容错性。

副本(Replica)

每个分片可有零个或多个副本,副本是分片的复制,用于提高数据可用性和冗余性。

(二)核心功能

全文搜索

支持对文本内容进行高效的全文搜索,通过倒排索引实现快速查找。

聚合分析

可对数据进行分组、统计和计算,如计算平均值、求和、最大值等。

分布式存储

数据可分布在多个节点上,通过分片和副本机制实现高可用性和扩展性。

(三)常用操作

创建索引

bash

PUT /my_index

插入文档

bash

POST /my_index/_doc/1

{

"title": "Elasticsearch Introduction",

"content": "Elasticsearch is a powerful search engine."

}

搜索文档

bash

GET /my_index/_search

{

"query": {

"match": {

"title": "Elasticsearch"

}

}

}

二、Logstash

(一)基本概念

数据收集和处理工具

是开源的数据收集引擎,能从各种数据源(如文件、日志、数据库等)收集数据,对数据进行过滤、转换和处理,然后将数据发送到 Elasticsearch 等目标存储系统。

输入(Input)

定义数据的来源,支持多种输入插件,如 file、syslog、jdbc 等。

过滤器(Filter)

对收集到的数据进行处理和转换,如解析日志格式、提取字段、添加标签等。常用的过滤器插件有 grok、date、mutate 等。

输出(Output)

定义数据的目的地,支持多种输出插件,如 elasticsearch、file、stdout 等。

(二)配置示例

plaintext

input {

file {

path => "/var/log/messages"

start_position => "beginning"

}

}

filter {

grok {

match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }

}

date {

match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]

}

}

output {

elasticsearch {

hosts => ["localhost:9200"]

index => "syslog-%{+YYYY.MM.dd}"

}

}

三、Kibana

(一)基本概念

数据可视化工具

Kibana 与 Elasticsearch 集成,提供了直观的用户界面,用于搜索、可视化和分析存储在 Elasticsearch 中的数据。用户可以通过创建仪表盘、图表和报表等方式,将数据以直观的方式展示出来。

(二)主要功能

数据探索

用户可以使用 Kibana 的搜索功能,对 Elasticsearch 中的数据进行交互式查询和探索。可以使用简单的关键词搜索,也可以使用复杂的查询语法。

可视化

支持多种可视化类型,如柱状图、折线图、饼图、地图等。用户可以根据自己的需求选择合适的可视化方式,将数据以直观的图表形式展示出来。

仪表盘创建

用户可以将多个可视化组件组合在一起,创建自定义的仪表盘。仪表盘可以用于监控系统状态、分析业务数据等。

数据挖掘

通过 Kibana 的聚合功能,可以对数据进行深入分析,发现数据中的模式和趋势。

(三)使用流程

连接 Elasticsearch

在 Kibana 的配置文件中指定 Elasticsearch 的地址,确保 Kibana 能够与 Elasticsearch 进行通信。

创建索引模式

在 Kibana 中创建索引模式,指定要使用的 Elasticsearch 索引。索引模式定义了数据的结构和字段,是进行数据探索和可视化的基础。

进行数据探索和可视化

使用 Kibana 的搜索和可视化工具,对数据进行探索和分析。可以创建各种可视化组件,并将它们添加到仪表盘上。

相关推荐
wifi chicken29 分钟前
Linux 端口扫描及拓展
linux·端口扫描·网络攻击
旺仔.29144 分钟前
Linux 信号详解
linux·运维·网络
放飞梦想C1 小时前
CPU Cache
linux·cache
Hoshino.411 小时前
基于Linux中的数据库操作——下载与安装(1)
linux·运维·数据库
播播资源3 小时前
CentOS系统 + 宝塔面板 部署 OpenClaw源码开发版完整教程
linux·运维·centos
源远流长jerry4 小时前
在 Ubuntu 22.04 上配置 Soft-RoCE 并运行 RDMA 测试程序
linux·服务器·网络·tcp/ip·ubuntu·架构·ip
lay_liu4 小时前
Linux安装redis
linux·运维·redis
寂柒5 小时前
序列化与反序列化
linux·网络
lay_liu5 小时前
ubuntu 安装 Redis
linux·redis·ubuntu
li星野6 小时前
[特殊字符] Linux/嵌入式Linux面试模拟卷
linux·运维·面试