ELK

ELK(Elasticsearch-Logstash-Kibana)

一、Elasticsearch

1、Elasticsearch是什么

Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。主要功能查询和存储

2、下载并安装

官方下载地址
将文件上传至集群上,并解压
在这里插入图片描述

3、配置文件

1.config/elasticsearch.yml

http.cors.enabled: true
http.cors.allow-origin: "*"
cluster.name: elk				#集群的名字
node.name: boss					#节点的名字
node.master: true
network.host: 192.168.XXX.100  #自己的IP
discovery.zen.ping.unicast.hosts: ["hadoop100"]   #主机名

2./etc/security/limits.conf
最后添加如下代码(配置Linux的硬件配置:原因是ES对硬件要求比较高)

* soft nofile 65536
* hard nofile 65536
* soft nproc 4096
* hard nproc 4096

3./etc/sysctl.conf
最后一行添加如下代码(依然是Linux硬件配置)

vm.max_map_count=655360

sysctl -p 使更新后的系统文件生效
4.修改文件权限

  • chown [-R] [用户名称] [文件或目录]
  • chown [-R] [用户名称:组名称] [文件或目录]
chown elastic elasticsearch-6.2.3 -R  # -R:递归目录
chown -R es:es es

5.创建用户【赋予用户权限】
创建用户的目的是:Elasticsearch只能在非root下使用,原因问官方

useradd 用户名 #创建用户
passwd 密码    #设置密码

注意:因为Elasticsearch使用Java写的,所以需要Java环境
设置好用户名和密码后,如果你的Java是安装在root下的话,启动会报错,如果没有,那么请忽略,直接运行
【Tips】
这里讲一下如何解决Java安装在root下,无法启动问题
(1)简单的就是把root权限改一下

chmod 555 root

(2)将Java移动到当前目录下,环境变量配置

处理好后,切换成新用户然后启动

4、启动

在Elasticsearch安装目录下使用如下命令

./bin/elasticsearch

通过浏览器输入:

IP:9200

可以成功看到
在这里插入图片描述

5、ES的相关知识

1.ES数据模型
在这里插入图片描述
和传统数据库相比
在这里插入图片描述
2.文档(Document)
在这里插入图片描述
在这里插入图片描述

  • put:插入
  • post:修改
  • get:查询
  • delete:删除

具体看下面的使用

6、elasticsearch-head-master

由于在小黑界面处理比较麻烦,所以这里安装一个elasticsearch-head-master插件,可视化界面,方便我们操作和查询和上面的一样,需要先解压安装,完成后,在下载解压安装node,因为head-master需要node节点,所以先配置node

unzip elasticsearch-head-master.zip

【Tips】
没有unzip命令的可以先安装zip

yum install -y unzip zip

安装好后,我们进入环境变量的配置文件/etc/profile对node进行配置

export NODE_HOME=/opt/bigdata/node8   #这里是你node的安装目录,node8是node的重命名
export PATH=$PATH:$NODE_HOME/bin:$PATH

先别急着source,先配置head-master的文件
进入head-master目录下
1、Gruntfile.js

hostname: '*',

在这里插入图片描述
2、_site/app.js
4360行将localhost改成自己的IP
在这里插入图片描述
这里再

source /etc/profile

然后安装grunt

npm install -g grunt-cli  #安装grunt
npm config set registry https://registry.npm.taobao.org
npm install               #初始化配置项

【注意:这里可能会报错,如果是Warning警告,那没事,如果是Error,你可以通过重新执行上面的代码】
如果是:…prebuilt… script安装问题的话
在这里插入图片描述
可以执行如下代码

npm install phantomjs-prebuilt@2.1.14 --ignore-scripts

head-master安装好后

head-master启动
进入head安装文件夹下

npm run start          #普通启动
nohup npm run start &  #后台启动

在这里插入图片描述
浏览器中输入:

IP:9100

在这里插入图片描述
【注意:】
boss:是节点的名字,可能和你不一样
右边红框里面一开始是没有的,不要谎,你可以通过左上角的索引-创建索引 来实现

二、Logstash

1、Logstash是什么

Logstash是一款开源的数据收集引擎,具备实时管道处理能力。简单来说,logstash作为数据源与数据存储分析工具之间的桥梁,结合ElasticSearch以及Kibana,能够极大方便数据的处理与分析。通过200多个插件,logstash可以接受几乎各种各样的数据。包括日志、网络请求、关系型数据库、传感器或物联网等等。

Logstash的工作过程
在这里插入图片描述

2、下载并安装

官方下载
直接解压即可
在这里插入图片描述

3、使用

在logstash目录下执行以下命令
1.测试Logstash是否可以运行成功

bin/logstash -e 'input{ stdin{} } output{ stdout{} }'

2.设置编码格式

  • ruby格式
bin/logstash -e 'input{ stdin{} } output{ stdout{codec => {"rubydebug"}} }'
  • json格式
bin/logstash -e 'input{ stdin{} } output{ stdout{codec => {"json"}} }'

3.连接到ES上

bin/logstash -e 'input{ stdin{} } output{ stdout{codec => "rubydebug"} elasticsearch{ hosts=>["192.168.159.XXX:9200"] } }'

4.测试读文件
第一步,建立文件:在Logstash文件夹下创建test/a.txt,内容随便写点
第二步,建立文件:在Logstash文件夹下创建test/new.conf,内容如下

input{
  file{
    path => "/opt/soft/logstash/test/a.txt"    #自己的文件
    start_position => "beginning"
    sincedb_path => "/dev/null"
  }
}
output{
   elasticsearch{
    hosts => ["192.168.XXX.100:9200"]    #自己的IP
   }
}

再执行

 bin/logstash -f test/news.conf   #这里注意是news.conf的路径

再去head上看一下,就会发现也过来了
在这里插入图片描述

三、Kibana

1、Kibana是什么

Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索、查看存放在Elasticsearch中的数据。Kibana与Elasticsearch的交互方式是各种不同的图表、表格、地图等,直观的展示数据,从而达到高级的数据分析与可视化的目的。

Elasticsearch、Logstash和Kibana这三个技术就是我们常说的ELK技术栈,可以说这三个技术的组合是大数据领域中一个很巧妙的设计。一种很典型的MVC思想,模型持久层,视图层和控制层。Logstash担任控制层的角色,负责搜集和过滤数据。Elasticsearch担任数据持久层的角色,负责储存数据。而我们这章的主题Kibana担任视图层角色,拥有各种维度的查询和分析,并使用图形化的界面展示存放在Elasticsearch中的数据。

2、下载并安装

官方下载
kibana中文社区网

3、配置文件

进入kibana/config

(1)kibama.yml
最后添加如下代码

server.host: "IP"
elasticsearch.url: "http://IP:9200"

在这里插入图片描述

4、启动

进入Kibana安装文件夹

 ./bin/kibana            #普通启动
 nohup ./bin/kibana &    #后台启动

浏览器输入

IP:5601

在这里插入图片描述
在红色框中可以写增删改查的命令

四、使用

ES的具体使用:利用Kibana和head插件共同使用ES
在这里插入图片描述
1、插入数据
在Kibana中写如下代码

put /usr/student/1
{
  "id":1,
  "name":"张器",
  "age":20,
  "classname":"大一",
  "gender":"男"
}
put /usr/student/2
{
  "id":2,
  "name":"李四",
  "age":23,
  "classname":"大一",
  "gender":"男"
}
put /usr/student/3
{
  "id":3,
  "name":"五四",
  "age":22,
  "classname":"大三",
  "gender":"男"
}

head中可以看到数据已经插入进来了
在这里插入图片描述
【注意:当批量插入时,使用curl命令会更快,因为可以把信息全部存到json文件中,利用bulk读取json文件即可】
使用curl命令进行插入
【Tips:由于插入的信息是json文件(按照字段名的),所以插入的时候可以不考虑顺序】

  1. 单个插入
curl -H "Content-type: application/json" -X pPUT http://192.168.XXX.100:9/student/3 -d '{"id":3,"name":"古天乐","age":45,"classname":"大四","gender":"男"}'
  1. 批量插入
curl -H "Content-type: application/json" -X PUT http://192.168.XXX.100:9200/_bulk --data-binary @/opt/soft/request.json

2、修改

(1)put修改
和插入方式一样
(2)post修改

post usr/student/3/_update
{
  "doc":{
    "name":"刘能",
    "age":34
  }
}

在这里插入图片描述
再去查看一下head
在这里插入图片描述
3、查询

GET /索引  查询结果是元数据
GET /索引/类型/id 查询单个id的信息
GET /索引/类型/_search 遍历所有id对应信息

get /usr/student/_search?q=id:2 #指定id查询

get /usr/student/_meget		    #指定查询
{
  "docs":[{"_id":1},{"_id":2}]
}

get /usr/student/_meget
{
  "ids":[1,2]
}

4、删除

delete usr/student/3	#根据id删除指定信息
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值