🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# ELK系统框架介绍 ## 一 ELK套件介绍 ELK是一组软件的组合实现,官网如下:https://www.elastic.co/cn/products 1. Elasticsearch(es) Elasticsearch 是基于 JSON 的分布式搜索和分析引擎,专为实现水平扩展、高可靠性和管理便捷性而设计 Elasticsearch 是一个分布式的 RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。 作为Elastic Stack 的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。 2. Kibana Kibana 能够以图表的形式呈现数据,并且具有可扩展的用户界面,数据来源于Elasticsearch。 Kibana 让您能够自由地选择如何呈现您的数据。 3. Logstash Logstash 是动态数据收集管道,拥有可扩展的插件生态系统,能够与 Elasticsearch 产生强大的协同作用。 Logstash 是开源的服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的 “存储库” 中。 4. Beats 由于Logstash消耗资源大,而服务器资源相当宝贵,所以引进另一个轻量级日志采集框架Beats,其中包含以下6种 | beats类型 | 用途 | | ---------- | ----------------------- | | Packetbeat | 用于搜集网络流量数据 | | Heartbeat | 用于运行时间监控 | | Filebeat | 用于搜集文件数据 | | Winlogbeat | 用于搜集winodws事件数据 | | Metricbeat | 用于指标 | | Auditbeat | 用于审计数据 | ## 二 ELK系统典型架构 1. Logstash(采集)+Elasticsearch(存储)+Kibana(展示) 最典型的elk架构 logstash安装在所有的服务器上收集数据,往es上存放数据 Logstash耗资源较大,运行占用CPU和内存高 2. Filebeat(采集)+Elasticsearch(存储) +Kibana(展示) 将logstash替换为filebeat,原因是logstash是java写的,性能相对filebeat要弱 filebeat只采集数据,不对数据进行过滤 3. Filebeat(采集)+Logstash(过滤)+Es(存储)+Kibana(展示) 将filebeat和logstash联合使用 所有客户端安装filebeat收集数据,然后统一发送给一个logstash logstash统一处理和过滤数据后存储到es中 4. Filebeat(采集)+缓存(数据传输)+Logstash(过滤)+Es(存储)+Kibana(展示) 在filebeat和logstash中间加一层缓存层(如redis),实现软件间的解耦 ![完整架构](https://s2.ax1x.com/2019/11/04/Kzt3uV.md.png) ## 三 自定义YUM源 官方yum访问速度太慢,网上没有一个好的第三方源设置方法 这里使用了清华的yum源,版本是[6.x] ```sh cat >/etc/yum.repos.d/elk-6.repo <<EOF [elk-6.x] name=Elastic repository for 6.x packages #baseurl=https://artifacts.elastic.co/packages/6.x/yum baseurl=https://mirrors.tuna.tsinghua.edu.cn/elasticstack/6.x/yum/ gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md EOF ``` ## 四 实验架构和系统配置 本次使用的操作系统版本:`centos7.6` | 服务器IP | 用途 | | --- | --- | | 10.0.0.11 | filebeat+redis | | 10.0.0.12 | logstash+kibana+es |