ELK详解与实验部署
文章目录
前言
一、ELK的理论基础
1.1:ELK是什么?
1.2:ELK需求的场景
1.3:ELK工具介绍
1.3.1:Logstash工具介绍
1.3.2:ElasticSearch工具介绍
1.3.3:Kibana工具介绍
1.4:完整日志系统基本特征
1.5:ELK的工作流程
二、ELK的实战模拟
2.1:环境部署
2.2:实验拓扑
2.3:实验部署
2.3.1:开局布置
2.3.2:节点上部署Elasticserch软件
2.3.3:部署Elasticsearch图形化界面
2.3.4:部署Logstash软件
2.3.5:在节点1部署Kibana
2.4:实验验证
前言
ELK是Elasticsearch、Logstash、Kibana三大开源框架首字母大写简称(但是后期出现的filebeat(beats中的一种)可以用来替代logstash的数据收集功能,比较轻量级)。市面上也被成为Elastic Stack。
一、ELK的理论基础
1.1:ELK是什么
ELK 到底是什么呢? “ELK”是三个开源项目的首字母缩写,这三个项目分别是:Elasticsearch、Logstash 和 Kibana。Elasticsearch 是一个搜索和分析引擎。Logstash 是服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到诸如 Elasticsearch 等“存储库”中。Kibana 则可以让用户在 Elasticsearch 中使用图形和图表对数据进行可视化。
1.2:ELK需求场景
日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。
往往单台机器的日志我们使用grep、awk等工具就能基本实现简单分析,但是当日志被分散的储存不同的设备上。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样是不是感觉很繁琐和效率低下。当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收集汇总。集中化管理日志后,日志的统计和检索又成为一件比较麻烦的事情,一般我们使用grep、awk和wc等Linux命令能实现检索和统计,但是对于要求更高的查询、排序和统计等要求和庞大的机器数量依然使用这样的方法难免有点力不从心。
一般大型系统是一个分布式部署的架构,不同的服务模块部署在不同的服务器上,问题出现时,大部分情况需要根据问题暴露的关键信息,定位到具体的服务器和服务模块,构建一套集中式日志系统,可以提高定位问题的效率。
1.3:ELK工具介绍
1.3.1:Logstash工具介绍
Logstash是免费且开放的服务器端数据处理管道,能够从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的“存储库”中。Logstash能够动态地采集、转换和传输数据,不受格式或复杂度的影响。利用Grok从非结构化数据中派生出结构,从IP地址解码出地理坐标,匿名化或排除敏感字段,并简化整体处理过程。
1.3.2:ElasticSearch工具介绍
Elasticsearch是Elastic Stack核心的分布式搜索和分析引擎,是一个基于Lucene、分布式、通过Restful方式进行交互的近实时搜索平台框架。Elasticsearch为所有类型的数据提供近乎实时的搜索和分析。无论您是结构化文本还是非结构化文本,数字数据或地理空间数据,Elasticsearch都能以支持快速搜索的方式有效地对其进行存储和索引。
1.3.3:Kibana工具介绍
Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索引中的数据。使用Kibana,可以通过各种图表进行高级数据分析及展示。并且可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以汇总、分析和搜索重要数据日志。还可以让海量数据更容易理解。它操作简单,基于浏览器的用户界面可以快速创建仪表板(dashboard)实时显示Elasticsearch查询动态
1.4:完整日志系统基本特征
- 收集:能够采集多种来源的日志数据
- 传输:能够稳定的把日志数据解析过滤并传输到存储系统
- 存储:存储日志数据
- 分析:支持 UI 分析
- 警告:能够提供错误报告,监控机制
1.5:ELK的工作流程
此架构由Logstash分布于各个节点上搜集相关日志、数据,并经过分析、过滤后发送给远端服务器上的Elasticsearch进行存储。Elasticsearch将数据以分片的形式压缩存储并提供多种API供用户查询,操作。用户亦可以更直观的通过配置Kibana Web方便的对日志查询,并根据数据生成报表。
二、ELK的实战模拟
2.1:环境部署
这边我们通过VMware虚拟机进行搭载
主机 | 操作系统 | 主机名 | IP地址 | 部署的软件 |
---|---|---|---|---|
服务器1 | CentOS 7.4 | apache | 192.168.100.10 | Logstash、Apache |
服务器2 | CentOS 7.4 | node1 | 192.168.100.20 | Elasticsearch、Kibana |
服务器3 | CentOS 7.4 | node2 | 192.168.100.30 | Elasticsearch |
2.2:实验拓扑
进行集群规划,2台安装Elasticsearch软件,监控apache服务器,通过浏览器来验证
2.3:实验部署
2.3.1:开局布置
- 3台主机修改主机名这边只在apache服务器上进行演示操作
[root@localhost ~]# hostnamectl set-hostname apache
[root@localhost ~]# su
[root@apache ~]#
- 3台主机要做域名解析便于相互通信
[root@apache ~]# vim /etc/hosts
node1 192.168.100.20
node2 192.168.100.30
- 关闭3台服务器的和兴防护与防火墙
[root@apcche ~]# systemctl stop firewalld.service
[root@apcche ~]# systemctl disable firewalld.service
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[roo