一,ELK简介
-
什么是ELK
ELK是一套日志管理的解决方案,是一套集中式日志收集系统
– Elasticsearch:负责日志检索和储存
– Logstash:负责日志的收集和分析、处理
- Shipper:发送事件(events)至 LogStash;通常,远程代理端(agent)只需要运行这个
组件即可;
- Broker and Indexer:接收并索引化事件;
- Search and Storage:允许对事件进行搜索和存储;
- Web Interface:基于 Web 的展示界面
正是由于以上组件在 LogStash 架构中可独立部署,才提供了更好的集群扩展性。
– Kibana:负责日志的可视化
2. ELK 能做什么
ELK组件在海量日志系统的运维中,可用于解决:
– 分布式日志数据集中式查询和管理
– 系统监控,包含系统硬件和应用各个组件的监控
– 故障排查
– 安全信息和事件管理
– 报表功能
二,Elasticsearch 概述
2.1 Elasticsearch 简介
1.ElasticSearch 是一个基于 Lucene 的搜索服务器。
它提供了一个分布式多用户能力的全文搜索引擎,基
于 RESTful API 的 web 接口。
2.Elasticsearch是用Java开发的,并作为Apache许可
条款下的开放源码发布,是当前流行的企业级搜索引
擎。设计用于云计算中,能够达到实时搜索,稳定,
可靠,快速,安装使用方便
2.2 Elasticsearch 相关术语
相关概念:
1. Node: 装有一个 ES 服务器的节点。
2. Cluster: 有多个Node组成的集群
3. Document: 一个可被搜素的基础信息单元
4. Index: 拥有相似特征的文档的集合
5. Type: 一个索引中可以定义一种或多种类型
6. Filed: 是 ES 的最小单位,相当于数据的某一列
7. Shards: 索引的分片,每一个分片就是一个 Shard
8. Replicas: 索引的拷贝
2.3 Elasticsearch 主要特点
1.实时分析
2.分布式实时文件存储,并将每一个字段都编入索引
3.文档导向,所有的对象全部是文档
4.高可用性,易扩展,支持集群(Cluster)、分片和复制(Shards 和 Replicas)
5. 接口友好,支持 JSON
6.Elasticsearch 是一种面向文档的数据库
2.4 Elasticsearch 与关系型数据库的对比
1. 在 ES 中,文档归属于一种 类型 (type) ,而这些类型
存在于索引 (index) 中,类比传统关系型数据库
2.关系型数据库
DB -> Databases -> Tables -> Rows -> Columns
– 关系型 数据库 表 行 列
3.Elasticsearch数据库
ES -> Indices -> Types -> Documents -> Fields
– ES 索引 类型 文档 域(字段)
2.5Elasticsearch 架构图
三,ES 集群的安装
3.1 环境准备,操作系统 centos7
[root@elk-node1 ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
3.2 JDK版本
官方文档写的很明确:elasticsearch 与 logstash 至少需要java 7支持,这里部署 openjdk,部署 orack 的 jdk 也可以,使用“yum provides java”
命令选取合适的版本进行安装
[root@elk-node1 ~]# yum -y install java
[root@elk-node1 ~]# java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)# 节点同时安装相同版本
注,因为java是yum安装的 虽然说不用配置环境变量,但是有的应用如elasticsearch 是需要依赖JAVA_HOME等环境变量的,这就涉及到一个问题,如何找到正确的JAVA_HOME位置。
可以看到,都是一系列的软连接,最终我们配置如下环境变量,vi /etc/profile
JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk.x86_64
JRE_HOME=$JAVA_HOME/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH[root@elk1 ~]# source /etc/profile 使配置文件生效
3.3 ELK 版本
Elasticsearch 5.2.2: https://www.elastic.co/downloads