ELK概述、 ES集群部署 、 ES常用插件、RESTFUL API操作ES 集群

一、分布式ELK平台

1.1 ELK 简介

1.1.1 什么是ELK

ELK是一套日志管理的解决方案,是一套集中式日志收集系统。

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

1.1.2 ELK 能做什么

ELK组件在海量日志系统的运维中,可用于解决:
– 分布式日志数据集中式查询和管理
– 系统监控,包含系统硬件和应用各个组件的监控
– 故障排查
– 安全信息和事件管理
– 报表功能

二、Elasticsearch概述

2.1 Elasticsearch简介

1.ElasticSearch 是一个基于 Lucene 的搜索服务器。
它提供了一个分布式多用户能力的全文搜索引擎,基
于 RESTful API 的 web 接口。
2.Elasticsearch是用Java开发的,并作为Apache许可
条款下的开放源码发布,是当前流行的企业级搜索引
擎。设计用于云计算中,能够达到实时搜索,稳定,
可靠,快速,安装使用方便

2.2 Elasticsearch主要特点

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

6.Elasticsearch 是一种面向文档的数据库。

2.3 Elasticsearch相关术语

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

2.4 ES 与 关系型数据库的类比

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

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

3.Elasticsearch数据库

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

4.图解ES与DBMS

扫描二维码关注公众号,回复: 3016007 查看本文章

5.Elasticsearch架构图

三、ES 集群安装

3.1 安装第一台 ES 服务器

1.设置 ip 与主机名称对应关系
– 配置 /etc/hosts
192.168.5.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. 修改配置文件
~]# vim /etc/elasticsearch/elasticsearch.yml
network.host: 0.0.0.0

5.启动服务,设置自启动
~] # systemctl enable elasticsearch
~] # systemctl start elasticsearch

6.验证服务是否正常启动

~] # netstat –ltunp

~] # curl http://192.168.4.11:9200/

3.2 ES集群安装

1.es1~es5 安装JDK8和elasticsearch

~ ] # yum -y install java-1.8.0-openjdk  elasticsearch

2.es1~es5 集群配置文件

~]# vim /etc/elasticsearch/elasticsearch.yml

cluster.name: my-es     //集群名称配置要求完全一致
node.name: es1 [..es5]  //当前节点标识,配置本机的主机名
network.host: 0.0.0.0     //本机IP地址
discovery.zen.ping.unicast.hosts: ["es1", "es2","es3"]   //集群节点机器,不需要全部配置

3.启动所有节点服务

~] # for i in {1..5} do ssh es${i} systemctl start elasticsearch done

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

~] # curl http://192.168.5.11:9200/_cluster/health?pretty

 

四、HTTP 协议简介

4.1 http请求由三部分组成

– 分别是:请求行、消息报头、请求正文
– 请求行以一个方法符号开头,以空格分开,后面跟着
请求的URI和协议的版本,格式如下:
Method Request-URI HTTP-Version CRLF

4.2 http请求方法

– 常用方法 GET, POST, HEAD
– 其他方法 OPTIONS, PUT, DELETE, TRACE 和CONNECT

4.3 RESTFUL请求中哪些是幂等操作

POST   --POST不是幂等操作,因为多次请求会产生不同的结果,因此POST不是幂等操作

DELETE  -- DELETE是幂等操作,第一次将资源删除后,后面多次进行此删除请求,最终结果是一样的。

PUT      -- PUT是幂等性,将A修改为B,它第一次请求值变为了B,再进行多次此操作,最终的结果还是B,与一次执行的结果是              一样的。

GET      --GET是幂等操作,第一次请求与多次请求得到的查询结果是一样的。

4.4 系统命令 curl

在linux中curl是一个利用URL规则在命令行下工作的
文件传输工具,可以说是一款很强大的http命令行工
具。它支持多种请求模式,自定义请求 头等强大功
能,是一款综合工具

curl 常用参数介绍
– -A 修改请求 agent
– -X 设置请求方法
– -i 显示返回头信息

五、ES 插件的安装与使用

5.1 ES 常用插件

5.1.1  head 插件

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

5.1.2 kopf 插件

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

5.1.3 bigdesk 插件

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

5.2 插件安装、查看

5.2.1 插件安装

elk软件包下载地址:elk.zip

/usr/share/elasticsearch/bin/plugin install ftp://192.168.1.254/public/bigdesk-master.zip
/usr/share/elasticsearch/bin/plugin install ftp://192.168.1.254/public/elasticsearch-head-master.zip
/usr/share/elasticsearch/bin/plugin install ftp://192.168.1.254/public/elasticsearch-kopf-master.zip

5.2.2 查看安装的插件

/usr/share/elasticsearch/bin/plugin list

5.2.3 插件压缩包的路径要通过url的方式指定

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

5.2.4 访问head、kopf、desk 插件web页面

1.ES HEAD插件   【通过它来进行索引(Index)和节点(Node)级别的操作】

http://192.168.5.15:9200/_plugin/head/

2. ES KOPF插件

http://192.168.5.15:9200/_plugin/kopf

3.ES bigdesk 插件   【查看集群状态】

http://192.168.5.15:9200/_plugin/bigdesk/

六、RESTful API操作ES集群

6.1 Elasticsearch提供了一系列RESTful的API主要实现的功能

1.检查集群、节点、索引的健康度、状态和统计
2. 管理集群、节点、索引的数据及元数据
3. 对索引进行CRUD操作及查询操作
4. 执行其他高级操作如分页、排序、过滤等

6.2 Rest API 的简单使用

– v 参数显示详细信息
http://192.168.4.15:9200/_cat/health?v
– help 显示帮助信息
http://192.168.4.15:9200/_cat/health?help

– nodes 查询节点状态信息
http://192.168.4.15:9200/_cat/nodes?v
– 索引信息
http://192.168.4.15:9200/_cat/indices?v

6.3 RESTful API增删改查的使用

6.3.1 创建索引

curl -XPUT 'http://192.168.1.13:9200/tedu/' -d \
'{
    "settings":{
        "index":{
            "number_of_shards": 5,
            "number_of_replicas": 1
        }
    }
}'

6.3.2 增加数据 PUT

curl -XPUT "http://192.168.1.11:9200/nsd1804/teacher/2" -d \
'{
  "title": "dog",
  "name": {"first":"huang", "last":"a"},
  "age":2
}'

6.3.3 更改数据 POST

curl -XPOST "http://192.168.1.15:9200/nsd1804/teacher/3/_update" -d \
'{
  "doc": { "age":18 }
}'

6.3.4 查询与删除数据

~] # curl -XGET    "http://192.168.1.14:9200/nsd1804/teacher/1?pretty"
~] # curl -XDELETE "http://192.168.1.14:9200/nsd1804/teacher/1?pretty

猜你喜欢

转载自blog.csdn.net/qq_36441027/article/details/82154897