文章目录
一、存储系统分类
1.1 非结构化存储
定义:指不定长或无固定格式的数据,如邮件,word文档等
1.1.1 常见使用设备
①Block:需要分区,格式化,不支持多个节点挂载使用。rbd(Ceph)
②Filesystem:NFS,HDFS(hadoop Filesystem),FastDFS(轻量级,适用于存储图片),输出的API已经是文件了,支持多个节点挂载使用
1.2 半结构化存储
定义:非关系模型的、有基本固定结构模式的数据,例如日志文件、XML文档、JSON文档、Email等
流派:
K/V存储 :redis,TiKV(原生K/V存储系统)
Document存储:MongoDB,CahceDB,ElastcSearch:每个数据项自带的字段和值,可以后期添加字段和值,还可以嵌套值,---> 文档(Document)
Colume Family存储:HBase (Hadoop Database)
GraphDB:图式存储:Neo4j
1.3 结构化存储
定义:指具有固定格式或有限长度的数据,如数据库,元数据等
特点:
① TiDB: 是一个分布式 NewSQL 数据库。它支持水平弹性扩展、ACID 事务、标准 SQL、MySQL 语法和 MySQL 协议,具有数据强一致的高可用特性,是一个不仅适合 OLTP 场景还适OLAP 场景的混合数据库
②shema要求严格
二、 ELK日志分析系统组成
2.3.1 ElasticSearch
ElasticSearch定义: Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。
2.3.2 Logstash和Filebeat
Logstash定义: 集中、转换和存储数据
Filebeat定义: 轻量型日志采集器;从安全设备、云、容器、主机还是 OT 进行数据收集,Filebeat 都会提供一种轻量型方法,用于转发和汇总日志与文件
Filebeat是Beats中的一个组件,以下是Beats的介绍以及组件组件构成:
介绍: beats组件是一系列用于采集数据的轻量级代理程序,用于从服务端收集日志、网络、监控数据,并最终汇总到elasticsearch。beats组件收集的数据即可以直接上报给elasticsearch,也可以通过logstash中转处理后上报给elasticsearc。
beats根据功能划分有多种组件:
PacketBeat:用于分析和收集服务器的网络包数据;
Heartbeat:主要是检测服务或主机是否正常运行或存活,Heartbeat 能够通过 ICMP、TCP 和 HTTP 进行 ping 检测;
FileBeat:主要用于转发和集中日志数据。Filebeat作为代理安装在服务器上,监视您指定的日志文件或位置,收集日志事件,并将它们转发到ElasticSearch或Logstash进行索引;
MetricBeat:定期收集操作系统、软件或服务的指标数据,支持收集的module非常多,常用的有docker、kafka、mysql、nginx、redis、zookeeper等等
Packetbeat:是一款轻量型网络数据包分析器,Packetbeat的工作原理是捕获应用程序服务器之间的网络流量,解码应用程序层协议(HTTP,MySQL,Redis等)
Auditbeat 允许您在 Linux、macOS 和 Windows 平台上仔细监控任何您感兴趣的文件目录。文件改变会被实时发送到 Elasticsearch,每条消息都包含元数据和文件内容的加密哈希信息,以便后续进一步分析;
Topbeat:搜集系统,进程和文件系统级别的CPU和内存使用情况,已经被Metricbeat取代;
WinlogBeat:用于收集windows系统的event log;
2.3.3 Kibana
定义: Kibana 是为 Elasticsearch设计的开源分析和可视化平台
三、ELK日志分析系统简介
搜索组件和索引组件的关系和过程逻辑:
上图中以index为分界线,分为两个部分,上面半部分为搜索组件,下面半部分为索引组件。
1.搜索组件(Search component):面向客户端;用户输入搜索关键词,帮助用户查询索引中的索引数据并向用户返回结果;
1.1 user:用户
1.2 Search User interface :用户搜索界面(API接口),通常会使用 http restful风格 ,使用curl命令即可发起请求
1.3 Bulid Query:将用户的搜索 转化为搜索查询语句,由build query 构建成为查询语句,搜索时提供关键词即可
1.4 Run Query:构建查询在index的接口之上完成查询结果
1.5 Render Results:展示查询结果
2.索引组件:(index component):
2.1 Acquire Content:获取数据;注意这里获取到数据要将数据进行ETL处理,ETL是指数据导入方式:抽取(export)、转换文档格式(transfrom)、转入(load)
2.1.1 数据的来源
①私网内的数据
②爬虫:互联网爬来的所有数据
2.2Build Document :建立成为文档
2.3 Analyze Document :文档分析,主要是切词的过程
🙄注意:
浅绿色:</