分布式ELK平台

分布式ELK平台

一.什么是elk?(三大模块)

1.Elasticsearch:负责日志检索和存储 (数据库)

2.Logstash 负责日志的分析和处理(program程序)

3.Kibana  负责日志的可视化(web展示)

二.elk能做什么?

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

分布式日志数据集中式查询和管理

系统监控,包含系统硬件和应用各个组件的监控

故障排查

安全信息和事件管理

三.Elasticsearch部分

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

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

特点:实时分析

1.分布式实时文件存储,并将每一个字段都编入索引

2.文档导向,所有的对象全部是文档

3.高可用性,易扩展,支持集群(Cluster),分片和复制(shards和replicas)

4.接口友好,支持JSON

ES没有什么?

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

四.相关概念

node:装有一个es服务器节点

cluster:有多个node组成的集群

document:一个可被搜索的基础信息单元

index:拥有相似特征的文档集合

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

filed:是es的最小单位,相当于数据的某一列

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

replicas:索引的拷贝

五.ES与Nosql对比

 六.ES集群安装

步骤一:安装elasticsearch和java-1.8.0-openjdk,同步配置文件

1)更改对应的主机名、 ip地址以及搭建yum源(以案例1为例子)

2)安装elasticsearch四台主机同样操作(以es2为例子)

  1. [root@es2 ~]# yum -y install java-1.8.0-openjdk.x86_64
  2. [root@es2 ~]# yum -y install elasticsearch

3)同步配置/etc/hosts和/etc/elasticsearch/elasticsearch.yml, 修改node.name字段(以es2为例子)

  1. for i in {52..55} ; do scp /etc/hosts 192.168.1.$i:/etc/hosts; done
  2. [root@es1 ~]# for i in {52..55} ; do scp \
  3. /etc/elasticsearch/elasticsearch.yml \
  4. 192.168.1.$i:/etc/elasticsearch/elasticsearch.yml; done
  5. [root@es2 ~]# vim /etc/elasticsearch/elasticsearch.yml
  6. node.name: es2 //另外三台修改为对应es3,es4,es5
  7. [root@es2 ~]# systemctl restart elasticsearch
  8. [root@es2 ~]# systemctl enable elasticsearch

4)访问测试

firefox http://192.168.1.51:9200/_cluster/health?pretty

 

 

 案例3:练习插件

步骤一:部署插件

插件装在哪一台机器上,只能在哪台机器上使用(这里安装在es5机器上面)

1)使用远程 uri 路径可以直接安装

 
 
测试:   [student@room9pc01 ~]$ firefox http://192.168.1.55:9200/_plugin/head

 

3)访问kopf插件,如图-5所示:

  1. [student@room9pc01 ~]$ firefox http://192.168.1.55:9200/_plugin/kopf

4)  访问bigdesk插件,如图-6所示:

  1. [student@room9pc01 ~]$ firefox http://192.168.1.55:9200/_plugin/bigdesk

步骤二:使用head创建index

 

 

 

  案例4:插入,增加,删除查询数据

本案例要求:

  • 使用curl命令连接使用ES数据库
  • 使用PUT方法增加数据
  • 使用POST修改数据
  • 使用GET查询数据
  • 使用DELETE删除数据

步骤一:增加数据

 

 

 步骤二:修改数据

 

 

 步骤三:查询数据

 

 

 步骤四:删除数据

 

 

 步骤五:删除索引

 

 

 

案例5:导入数据

步骤一:导入数据

使用POST方式批量导入数据,数据格式为json,url 编码使用data-binary导入含有index配置的json文件

 

2)使用GET查询结果

 

 

 

系统;命令curl

在linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具.

它支持多种请求模式,自定义请求头等强大功能,是一款综合工具

curl 常用参数介绍

-A 修改请求 agent

-X 设置请求方法

-i 显示返回头信息

RESTful API 调用

Elasticsearch 提供了一系列RESTful的API

检查集群,节点,索引的健康度,状态和统计

管理集群,节点,索引的数据及元数据

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

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

POST或PUT数据使用jason格式

curl http://es2:9200/_cat/master

创建索引

 curl -XPUT http://es1:9200/nsd -d '
> {
>   "settings": {
>       "index": {
>            number_of_shards: 5,
>            number_of_replicas: 2
>         }
>    }
> }:'
插入数据

curl -XPUT http://es2:9200/tedu/teacher/1 -d '
{
  "姓名": "丁丁",
  "年龄": "88",
  "爱好": "写书"
}'
修改数据

curl -XPOST http://es4:9200/tedu/teacher/2/_update -d '
{ "doc": {"年龄":"38"}}'

 

查数据

curl -XGET 'http://es1:9200/tedu/teacher/2'

删除

curl -XDELETE 'http://es1:9200/tedu/teacher/2'

 

posted @ 2019-10-15 10:45  Jeff.zhao0302  阅读(273)  评论(0)    收藏  举报