森格 | 2022年11月
本文是初识Elasticsearch的一些个人总结,介绍了Elastic Stack,如有错误之处,敬请指正。
注:上图来源于Elasticsearch中文博客
ELK分别是Elasticsearch、Logstash、Kibana的简称,发展过程中又加入Beats,形成了Elastic Stack开源技术栈。
简单来说,这家族的四大项目功能大致是:
1) Beats:是一款用于采集系统监控数据的代理agent,是在监控服务器上以客户端运行的数据收集器的统称。
2)Logstack:是基于Java的一款用于收集、分析和存储日志的工具。
3)Elasticsearch:处于Elasticsearch的核心位置,对数据快速地进行搜索以及分析。
4)Kibana:是基于node.js,负责数据展示,可以汇总、分析和搜索重要的数据日志。
小结
被官方称为 Lightweight Data Shipper(轻量级数据传送者),分类如下:
下面来简单介绍下Filebeat 与 Packetbeat 。
由 input(输入) 和 harversters(收集器) 构成,一个输入可以对应多个日志文件,同时会为每个文件启动一个收集器。
Input 时处理:
Output 前处理–Processor:
# 指定网卡
packetbeat.interfaces.device:any # linux系统下可以设置为any,去捕捉所有的网卡
# 表示抓取对应的网络协议的数据包
packetbeat.prtocols
# beat的输出配置
output.console:
pretty:true
官方给出的定义为
Logstash is an open source, server-side data porcessing pipeline that ingests data from a multitude of sources simultanepously, transforms it, and then sends it to your favorite “stash”.
也就是一款ETL(Extract、Transform、Load)工具。
两者都有日志收集功能,但是相对于Logstash在jvm上跑,Filebeat显得更加轻量级,同时占用的资源更少;虽然如此,但是Logstash具有Filter功能,能够过滤分析日志。
会利用Filebeat进行日志采集,然后发到消息队列、Redis、Kafka后,由Logstash去获取、利用Filter功能过滤分析,之后再存储到Elasticsearch中。
格式: /{index}/_doc/{id}
# 增加 #
POST /account/job/1
{
"name":"liang",
"lastname":"sen",
"job_description":"elasticsearch"
}
# 查询
GET /account/job/1
# 更新
POST /account/job/1/_update
{
"doc":{
"job_description":"Redis"
}
}
# 删除
DELETE /account/job/1
下面一起创建一个文档,再对其更新,删除,之后再次查询
Kibana语言设置(修改配置文件):
两种格式:
GET /account/job/_search?q=liang
GET /account/job/_search
{
"query":{
"match":{
"name":"liang"
}
}
}
本文主要对 Beats、Logstash、Kibana、Elasticsearch做了初步介绍,后续会对Elastic Stack做深入学习,以上内容如有不妥,敬请指正。
最后,在这里附上几个学习路径:
ES官方文档:https://www.elastic.co/guide/index.html
ES中文社区: https://elasticsearch.cn
ES中文社区日报(部分内容需要梯子):https://elasticsearch.cn/explore/category-18