18.ELK实时日志分析平台之Elasticsearch安装配置

本文详细介绍了如何安装和配置Elasticsearch 5.2.2,包括依赖Java环境的检查、下载安装、配置文件详解、启动服务以及安全设置。同时,展示了通过curl命令进行数据的CRUD操作,帮助读者理解Elasticsearch的基本使用。
摘要由CSDN通过智能技术生成

载*请注明原始出处:http://blog.csdn.net/a464057216/article/details/50900624
2017.03.20更新:适用于elasticsearch-5.2.2

后续此博客不再更新,欢迎大家搜索关注微信公众号“测开之美”,测试开发工程师技术修炼小站,持续学习持续进步。
在这里插入图片描述

  • 安装Elasticsearch

安装Elasticsearch 5.2.2版本之前推荐先阅读ELK实时日志分析平台之Elasticsearch简介

Elasticsearch依赖Java 8及其以上版本的JRE,可以使用java -version查看JRE版本。
如果系统未安装Java,可以选择使用开源的OpenJRE,安装命令如下:

$ sudo apt-get update
$ sudo apt-get install openjdk-8-jre

也可以选择安装Oracle Java 1.8.0_121及以上。

为了安装和使用的简介性,推荐下载官网的.tar.gz包解压缩即可。

  • 配置Elasticsearch

Elasticsearch的配置目录(/etc/elasticsearch/)下有如下两个配置文件:
elasticsearch.yml:配置Elasticsearch服务器除了日志以外的所有配置。
logging.yml:配置日志,初期使用Elasticsearch时使用默认配置就可以,默认的日志目录在/var/log/elasticsearch中。

在任何一个安装了Elasticsearch的服务器上,首先要配置的是节点名字(node.name)和集群名字(cluster.name),节点名字指定服务器在整个集群中的名称标识,集群名字指定服务器绑定到哪一个集群。或者在启动时指定集群及节点名字:

$ ./bin/elasticsearch --cluster.name my_cluster_name --node.name my_node_name

如果不指定这两个名字,Elasticsearch在启动是会随机一个节点名字,集群名字使用默认的elasticsearch。当然,推荐的做法是指定这两个名字,不然可能会在某个集群中出现不该出现的节点。

还有一个常用的配置是path.data,定义数据的存储路径(需要保证Elasticsearch对其有写的权限),默认在/var/lib/elasticsearch中。在实际生产环境中,推荐使用一个单独的分区挂载点作为elasticsearch的专用数据存储空间,这样方便数据隔离,也会使Elasticsearch性能更佳。

  • 启动Elasticsearch

配置完Elasticsearch后,可以使用如下命令启动Elasticsearch服务:

$ sudo service elasticsearch start

通常进程启动需要一段时间,可以使用$ ps -aux | grep elasticsearch命令查看,如果启动失败,可以查看/var/log/elasticsearch目录下面的log定位失败原因。

  • Elasticsearch的安全设置

Elasticsearch并没有内置安全模块,网络上任何可以通过HTTP的API接口访问Elasticsearch的人都可以控制它,所以首先要防止网络上的公开访问,在elasticsearch.yml中开启如下配置:

network.host: localhost
  • 使用Elasticsearch

首先需要确认服务器上的Elasticsearch可以正常工作,使用如下curl命令:$ curl http://localhost:9200,如果得到类似如下的输出,证明Elasticsearch工作正常:

{
  "name" : "lmz1",
  "cluster_name" : "lmz-clusters",
  "version" : {
    "number" : "2.2.1",
    "build_hash" : "d045fc29d1932bce18b2e65ab8b297fbf6cd41a1",
    "build_timestamp" : "2016-03-09T09:38:54Z",
    "build_snapshot" : false,
    "lucene_version" : "5.4.1"
  },
  "tagline" : "You Know, for Search"
}

Elasticsearch使用RESTful API,通常使用CRUD命令(Create、Read、Update、Delete)操作。下面演示数据的添加:

$ curl -XPOST 'http://localhost:9200/tutorial/helloworld/1' -d '{ "message": "Hello World!" }'

会收到如下响应:

{"_index":"tutorial","_type":"helloworld","_id":"1","_version":1,"_shards":{"total":2,"successful":1,"failed":0},"created":true}

添加数据的请求的URI是/tutorial/helloworld/1,其中:

tutorial是数据在Elasticsearch中的索引
helloworld是类型
1是数据在上述索引和类型中的id号

在/var/lib/elasticsearch/virtual-test/nodes/0/indices目录下可以观察到多了tutorial的目录。使用如下命令可以查询刚刚添加的数据:

$ curl -XGET 'http://localhost:9200/tutorial/helloworld/1'

会收到如下响应:

{"_index":"tutorial","_type":"helloworld","_id":"1","_version":1,"found":true,"_source":{ "message": "Hello World!" }}

使用如下命令可以更新刚刚添加的数据:

$ curl -XPUT 'http://localhost:9200/tutorial/helloworld/1?pretty' -d '
{
"message": "Hello People!"
}'

会收到如下响应:

{
  "_index" : "tutorial",
  "_type" : "helloworld",
  "_id" : "1",
  "_version" : 2,
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "created" : false
}

注意更新后该数据项的id还是1,但是version变成了2。
curl命令末尾的pretty参数允许以人类可读的形式提供输入参数(所以在发送PUT请求时可以多行输入),当然,在发送GET类型的查询请求时,也可以使用pretty参数获得格式化的输出,比如:

$ curl -XGET 'http://localhost:9200/tutorial/helloworld/1?pretty'
{
  "_index" : "tutorial",
  "_type" : "helloworld",
  "_id" : "1",
  "_version" : 2,
  "found" : true,
  "_source":
{
"message": "Hello People!"
}
}

删除某个数据项可以使用如下命令:

$ curl -XDELETE 'http://localhost:9200/tutorial/helloworld/1'
{"found":true,"_index":"tutorial","_type":"helloworld","_id":"1","_version":3,"_shards":{"total":2,"successful":1,"failed":0}}

之后使用GET请求查询会发现数据项已经被删除了:

$ curl -XGET 'http://localhost:9200/tutorial/helloworld/1?pretty'
{
  "_index" : "tutorial",
  "_type" : "helloworld",
  "_id" : "1",
  "found" : false
}

使用如下命令可以删除tutorial索引:

$ curl -XDELETE 'http://localhost:9200/tutorial'
{"acknowledged":true}

如果觉得我的文章对您有帮助,欢迎关注我(CSDN:Mars Loo的博客)或者为这篇文章点赞,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值