ELK架构之Elasticsearch

ELK方案 是三款软件产品的字母缩写:  Elasticsearch Logstash  Kibana

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

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

工作流程:

web服务器(安装filebeat beat)

     日志文件

            |                                                

            |

            |

传递给Logstash

内部                         

input--filter--output   ————> 传递给 Elasticsearch <————kibana从中获取数据,汇总————>  客户端client 读取

Elasticsearch

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

特点:实时分析;分布式实时文件存储,并每一个字段都编入索引;文档导向;高可用性,易扩展,支持集群、分片和复制;支持JSON

不过其没有典型意义的事务和授权以及认证特性

相关概念

Node  装有一个ES服务器的节点

Cluster 有多个Node组成的集群

Document 一个可以被搜索的基础信息单元

Index 拥有相似特征的文档的集合

Type 一个索引中可以定义一种或多种类型

Field 是ES最小的单位,相当于数据的某一列

Shards 索引的分片,每一个分片就是一个shard

Replicas 索引的拷贝

与关系型数据库对比
Relational database Elasticsearch
Database Index
Table Type
Row Document
Column Field
Schema Mapping
Index Everything is indexed
SQL Query DSL
SELECT* FROM table GET http://
UPDATE table SET PUT http://

HTTP协议

http请求方法 GET POST HEAD 其他方法 OPTIONS PUT DELETE TRACE CONNECT

ES常用 PUT 增  DELETE 删 POST 改  GET 查

系统命令 curl

linux中利用url规则在命令行下工作的文件传输工具,强大的http命令行工具 支持多种请求模式,自定义请求头等强大功能

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

[root@ecs-guo ~]# curl -X GET www.baidu.com
<!DOCTYPE html>
<!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge><meta content=always name=referrer><link rel=stylesheet type=text/css href=http://s1.bdstatic.com/r/www/cache/bdorz/baidu.min.css><title>百度一下,你就知道</title>......

es插件 

head插件:展现了ES集群的拓扑结构,并且可以通过它来进行索引和节点级别的操作,提供针对集群的查询API,结果以json和表格形式返回,并且也提供一些快捷菜单来表现集群的各种状态

kopf插件:管理工具,提供了对ES集群操作的API

bigdesk插件:集群监控工具,可以监控各种状态

安装插件在192.168.1.15

elasticsearch-head-master.zip    elasticsearch-kopf-master.zip    bigdesk-master.zip

[root@es5 ~]# cd /usr/share/elasticsearch/bin/
[root@es5 bin]# ls
elasticsearch  elasticsearch.in.sh  elasticsearch-systemd-pre-exec  plugin
[root@es5 bin]# ./plugin install file:///root/elasticsearch-head-master.zip   //注意格式必须为file:///
[root@es5 bin]# ./plugin install file:///root/bigdesk-master.zip 
[root@es5 bin]# ./plugin install file:///root/elasticsearch-kopf-master.zip 
[root@es5 bin]# ./plugin list
Installed plugins in /usr/share/elasticsearch/plugins:
    - head
    - kopf
    - bigdesk

打开插件

http://192.168.1.15:9200/_plugin/head

点击索引,可以创建索引 分布式存储规则 分片五片 源数据一份,副本一份(默认情况)

http://192.168.1.15:9200/_plugin/kopf

http://192.168.1.15:9200/_plugin/bigdesk

RESTful API 调用

1.提供了一系列的API,检查集群、节点、索引的健康度、状态和统计

管理集群、节点、缩影的数据和元数据

对索引进行CRUD操作及查询操作

执行其他高级操作如分页、排序、过滤等

2.POST或PUT数据使用json格式

3.Json(Javascript Object Notation) Javascript对象表示法,基于文本独立于语言的轻量级数据交换格式

   传输的就是一个字符串,Python中对应的字符串、列表、字典都可以转成对应的JSON格式

4._cat API  查询集群状态,节点信息

  v参数显示详细信息

  help显示帮助信息

  nodes查询节点状态信息

[root@es5 bin]# curl "http://192.168.1.15:9200/_cat/health?v"    //查看集群健康信息,(?v详细信息   ?help 查看帮助)
epoch      timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent 
1547628559 16:49:19  nsd1809 green           5         5     10   5    0    0        0             0                  -                100.0% 

[root@es5 bin]# curl "http://192.168.1.15:9200/_cat/nodes?v"   //查询节点
host         ip           heap.percent ram.percent load node.role master name 
192.168.1.12 192.168.1.12           10          40 0.00 d         m      es2  
192.168.1.14 192.168.1.14           11          41 0.18 d         m      es4  
192.168.1.11 192.168.1.11           11          44 0.00 d         *      es1  
192.168.1.15 192.168.1.15           11          42 0.00 d         m      es5  
192.168.1.13 192.168.1.13           11          40 0.00 d         m      es3  

[root@es5 bin]# curl "http://192.168.1.15:9200/_cat/master?v"   //查询主库
id                     host         ip           node 
141WVGOsRiyI99AKLFJNVg 192.168.1.11 192.168.1.11 es1  

[root@es5 bin]# curl "http://192.168.1.15:9200/_cat/shards?v"   //查询分片信息
index shard prirep state   docs store ip           node 
abc   4     r      STARTED    0  159b 192.168.1.15 es5  
abc   4     p      STARTED    0  159b 192.168.1.12 es2  
abc   3     p      STARTED    0  159b 192.168.1.13 es3  
abc   3     r      STARTED    0  159b 192.168.1.12 es2  
abc   1     p      STARTED    0  159b 192.168.1.14 es4  
abc   1     r      STARTED    0  159b 192.168.1.11 es1  
abc   2     p      STARTED    0  159b 192.168.1.11 es1  
abc   2     r      STARTED    0  159b 192.168.1.13 es3  
abc   0     p      STARTED    0  159b 192.168.1.15 es5  
abc   0     r      STARTED    0  159b 192.168.1.14 es4  

[root@es5 bin]# curl "http://192.168.1.15:9200/_cat/indices?v" //查看索引
health status index pri rep docs.count docs.deleted store.size pri.store.size 
green  open   abc     5   1          0            0      1.5kb           795b 

RESTful API 增加

创建一个索引(人选一台主机均可),并设置分片数量与副本数量   

[root@es5 bin]# curl -XPUT 'http://192.168.1.12:9200/tedu/' -d '{    //创建一个索引tedu
> "settings":{
>   "index":{
>     "number_of_shards":5,         //分片数量
>     "number_of_replicas":1        //副本个数
>     }
>   }
> }'
{"acknowledged":true}[root@es5 bin]# 

插入数据,如果继续增加数据,后面的id需要不同

[root@es5 bin]# curl -XPUT '192.168.1.12:9200/tedu/hlm/1' -d '{
> "荣国府":"贾赦",
> "性别":"男",
> "年龄":"未知",
> "爱好":"修道"
> }'
{"_index":"tedu","_type":"hlm","_id":"1","_version":1,"_shards":{"total":2,"successful":2,"failed":0},"created":true}[root@es5 bin]# 

修改数据 XPOST  _update更新哪条   关键字是“doc”

[root@es5 bin]# curl -XPOST '192.168.1.12:9200/tedu/hlm/1/_update' -d '{
> "doc":{"爱好":"炼丹"}
> }'
{"_index":"tedu","_type":"hlm","_id":"1","_version":2,"_shards":{"total":2,"successful":2,"failed":0}}[root@es5 bin]# 

查询数据

[root@es5 bin]# curl -XGET '192.168.1.12:9200/tedu/hlm/1?pretty'   //?pretty 竖排显示
{
  "_index" : "tedu",
  "_type" : "hlm",
  "_id" : "1",
  "_version" : 2,
  "found" : true,
  "_source" : {
    "荣国府" : "贾赦",
    "性别" : "男",
    "年龄" : "未知",
    "爱好" : "炼丹"
  }
}

删除数据

[root@es5 bin]# curl -XDELETE 192.168.1.12:9200/*   //删除全部数据
{"acknowledged":true}[root@es5 bin]#

猜你喜欢

转载自blog.csdn.net/weixin_43800781/article/details/86511174