码迷,mamicode.com
首页 > 其他好文 > 详细

批量搞机(二):分布式ELK平台、Elasticsearch介绍、Elasticsearch集群安装、ES 插件的安装与使用

时间:2018-02-26 21:44:39      阅读:380      评论:0      收藏:0      [点我收藏+]

标签:复制   存储   blog   field   snapshot   美团   row   字母   企业级   

一、分布式ELK平台

ELK的介绍:

ELK 是什么?

Sina、饿了么、携程、华为、美团、freewheel、畅捷通 、新浪微博、大讲台、魅族、IBM...... 这些公司都在使用 ELK!ELK!ELK!

ELK竟然重复了三遍,是个什么鬼?

ELK 其实并不是一款软件,而是一整套解决方案,是三个软件产品的首字母缩写

  1. Elasticsearch:负责日志检索和储存
  2. Logstash:负责日志的收集和分析、处理
  3. Kibana:负责日志的可视化

这三款软件都是开源软件,通常是配合使用,而且又先后归于 Elastic.co 公司名下,故被简称为 ELK

ELK 能做什么?

ELK组件在海量日志系统的运维中,可用于解决:

  • 分布式日志数据集中式查询和管理
  • 系统监控,包含系统硬件和应用各个组件的监控
  • 故障排查
  • 安全信息和事件管理
  • 报表功能

ELK 是什么样子的?

技术分享图片

ELK 是什么样子的?

技术分享图片

ELK 是什么样子的?

技术分享图片

二、Elasticsearch介绍

Elasticsearch是什么?

ElasticSearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful API 的 web 接口。

Elasticsearch 是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

Elasticsearch主要特点:

  1. 实时分析
  2. 分布式实时文件存储,并将每一个字段都编入索引
  3. 文档导向,所有的对象全部是文档
  4. 高可用性,易扩展,支持集群(Cluster)、分片和复制(Shards 和 Replicas)
  5. 接口友好,支持 JSON

Elasticsearch(简称ES)没有什么?

  • Elasticsearch 没有典型意义的事务.
  • Elasticsearch 是一种面向文档的数据库。
  • Elasticsearch 没有提供授权和认证特性

ES相关概念:

Node: 装有一个 ES 服务器的节点。
Cluster: 有多个Node组成的集群
Document: 一个可被搜素的基础信息单元
Index: 拥有相似特征的文档的集合
Type: 一个索引中可以定义一种或多种类型
Filed: 是 ES 的最小单位,相当于数据的某一列
Shards: 索引的分片,每一个分片就是一个 Shard
Replicas: 索引的拷贝

ES 与关系型数据库的对比:

在 ES 中,文档归属于一种 类型 (type) ,而这些类型存在于索引 (index) 中,类比传统关系型数据库

DB --> Databases --> Tables --> Rows --> Columns
关系型 --> 数据库 --> 表 --> 行 --> 列

ES --> Indices --> Types --> Documents --> Fields
ES --> 索引 --> 类型 --> 文档 --> 域(字段)

ES 与关系型数据库的对比:

技术分享图片

Elasticsearch架构图:

技术分享图片

三、Elasticsearch集群安装

安装思路:

  1. 安装第一台 ES 服务器
  2. 设置主机名称和 ip 对应关系
  3. 解决依赖关系
  4. 安装软件包
  5. 修改配置文件
  6. 启动服务
  7. 检查服务

安装步骤:

步骤 1:设置 ip 与主机名称对应关系

配置 /etc/hosts
192.168.4.11 node1

步骤 2:安装 JDK

Elasticsearch 要求至少 Java 7,一般推荐使用 OpenJDK 1.8,配置好安装源以后,我们先解决依赖关系
yum install -y java-1.8.0-openjdk

步骤 3:安装 ES

rpm –ivh elasticsearch-2.3.4-1.noarch

步骤 4:修改配置文件

elasticsearch.yml
network.host: 0.0.0.0   //修改后监控范围为所有网段主机

步骤 5:启动服务,设置自启动

systemctl enable elasticsearch
systemctl start elasticsearch

验证:

netstat –ltunp
能够看到 9200,9300 被监听

通过浏览器或 curl 访问 9200 端口
curl http://192.168.4.11:9200/
{
   "name" : "node1",
   "cluster_name" : "my-es",
   "version" : {
   "number" : "2.3.4",
   ...... ...... ......
   "build_snapshot" : false,
   "lucene_version" : "5.5.0"
},
   "tagline" : "You Know, for Search“
}

课堂练习:

1> 准备 1 台虚拟机
2> 部署 elasticsearch 第一个节点
3> 访问 9200 端口查看是否安装成功

ES 集群配置:

ES 集群配置也很简单,只需要对配置文件做少量的修改即可,其他步骤和单机完全一致

1> ES 集群配置文件

cluster.name: my-es
node.name: node1
network.host: 0.0.0.0
discovery.zen.ping.unicast.hosts: ["node1", "node2","node3"]

2> 集群中的所有节点要相互能够 ping 通,要在所有集群机器上配置 /etc/hosts 中的主机名与 ip 对应关系;集群中所有机器都要安装 java 环境

cluster.name 集群名称配置要求完全一致
node.name 为当前节点标识,应配置本机的主机名
discovery 为集群节点机器,不需要全部配置

3> 配置完成以后启动所有节点服务(有可能会有一定的延时,需要等待几十秒)

4> 验证集群,使用 ES 内置字段 _cluster/health

curl http://192.168.4.11:9200/_cluster/health?pretty
{
  "cluster_name" : "my-es",
  "status" : "green",
  ...... ...... ......
  "number_of_nodes" : 5,
  "number_of_data_nodes" : 5,
  ...... ...... ......
  "task_max_waiting_in_queue_millis" : 0,
  "active_shards_percent_as_number" : 100.0
}

5> 返回字段解析

"status“ : ”green“ 集群状态,绿色为正常,黄色表示有问题但不是很严重,红色表示严重故障
“number_of_nodes” : 5, 表示集群中节点的数量
"number_of_data_nodes" : 5,
...... ...... ......
"task_max_waiting_in_queue_millis" : 0,
"active_shards_percent_as_number" : 100.0
}

课堂练习:

一共安装 5 台虚拟机
在所有机器中部署 ES
启动服务查看验证集群状态

四、ES 插件的安装与使用

ES 常用插件:

head 插件:

  1. 它展现ES集群的拓扑结构,并且可以通过它来进行索引(Index)和节点(Node)级别的操作
  2. 它提供一组针对集群的查询API,并将结果以json和表格形式返回
  3. 它提供一些快捷菜单,用以展现集群的各种状态

kopf 插件

是一个ElasticSearch的管理工具,它提供了对ES集群操作的API

bigdesk 插件

是elasticsearch的一个集群监控工具,可以通过它来查看es集群的各种状态,如:cpu、内存使用情况,索引数据、搜索情况,http连接数等

ES 插件安装、查看

查看安装的插件:

/usr/share/elasticsearch/bin/plugin list

安装插件:

/usr/share/elasticsearch/bin/plugin install ftp://192.168.4.254/head.zip    //类似yum源的第一种安装方式
/usr/share/elasticsearch/bin/plugin install file:///tmp/kopf.zip   //类似yum源的第二种安装方式

这里必须使用 url 的方式进行安装,如果文件在本地,我们也需要使用 file:// 的方式指定路径,例如文件在/tmp/xxx 下面,我们要写成 file:///tmp/xxx 删除使用 remove 指令

ES head 插件

技术分享图片

ES kopf 插件

技术分享图片

ES bigdesk 插件

技术分享图片

 

 

 

 

 

 

 

 

 

 

 

############################################################

课堂练习:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

############################################

 

批量搞机(二):分布式ELK平台、Elasticsearch介绍、Elasticsearch集群安装、ES 插件的安装与使用

标签:复制   存储   blog   field   snapshot   美团   row   字母   企业级   

原文地址:https://www.cnblogs.com/baichuanhuihai/p/8475932.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!