elasticsearch 使用x-pack提高安全性

我对ElasticStack可以说是既熟悉又陌生,说熟悉是因为很久以前就已经开始使用 ELK 来分析日志了,说陌生是因为以前的 ELK 环境都是同事搭建的,我主要是看看 Kibana 面板而已。随着V5的发布,ELK 全面进化为 ElasticStack,该自己动手了。

实际操作前最好大致浏览一下官方文档,以便对 ElasticStack 各个组件的作用有一个基本概念,如果看完文档还没搞清楚,那么至少要看明白下面这张图:

elasticsearch 使用x-pack提高安全性_第1张图片

ElasticStack

整个流程相当简单,首先服务器通过Filebeat把数据上报给Logstash,然后把分析后把数据保存到ElasticSearch里,最后用户通过Kibana浏览数据。

废话少说,接下来让我们按顺序安装ElasticStack 的各个组件,不过安装前我们需要确保系统已有 Java 且版本足够新,一般我习惯用包管理工具安装这种系统级工具:

shell> yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel

同时记得创建一个系统账号(比如叫 elastic)以便后续运行服务使用。

第一步:安装 ElasticSearch

shell> tar zxvf elasticsearch-.tar.gz
shell> mv elasticsearch- /usr/local/elasticsearch
shell> /usr/local/elasticsearch/bin/elasticsearch

服务启动后,我们可以通过 elasticsearch 提供的 API 来确认一下基本信息:

shell> curl http://localhost:9200/
{
  "name" : "...",
  "cluster_name" : "...",
  "cluster_uuid" : "...",
  "version" : {
    "number" : "...",
    "build_hash" : "...",
    "build_date" : "...",
    "build_snapshot" : false,
    "lucene_version" : "..."
  },
  "tagline" : "You Know, for Search"
}

缺省情况下,elasticsearch 服务会监听 9200 端口,如果你想自定义监听地址和端口,那么可以设置 elasticsearch.yml 配置文件中的 network.host 和 http.port 选项。

此时,elasticsearch 服务已经完全准备好了,不过还不算完,推荐安装 x-pack 插件,它在安全,监控等方面为 elasticsearch 提供了完善的支持:

shell> /usr/local/elasticsearch/bin/elasticsearch-plugin install x-pack

安装好 x-pack 后,会生成一个管理用户,用户名是 elastic,密码是 changeme,此时我们如果还想通过 curl 命令来操作 elasticsearch 的话,就需要用户名密码了:

shell> curl -u elastic http://localhost:9200/

不过使用缺省密码是不安全的,所以我们应该修改它:

shell> curl -XPUT -u elastic -d '{"password": ""}' \
       'http://localhost:9200/_xpack/security/user/elastic/_password'

至此,elasticsearh 的安装算是基本结束了,我们可以确认一下服务健康与否:

shell> curl -u elastic http://localhost:9200/_cluster/health?pretty
{
  "cluster_name" : "my-application",
  "status" : "yellow",
  "timed_out" : false,
  "number_of_nodes" : 1,
  "number_of_data_nodes" : 1,
  "active_primary_shards" : 3,
  "active_shards" : 3,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 2,
  "delayed_unassigned_shards" : 0,
  "number_of_pending_tasks" : 0,
  "number_of_in_flight_fetch" : 0,
  "task_max_waiting_in_queue_millis" : 0,
  "active_shards_percent_as_number" : 60.0
}

你可能已经注意到在上面的结果中,状态被标记为危险的黄色,而不是安全的绿色。实际上我们的安装步骤没有问题,之所以会显示黄色,实际上是因为从集群的角度看,这个集群目前只有一个节点,数据有丢失的风险。不过如果我们只是在一些安全性要求不太高的项目上使用,那么一个节点是可以接受的。


出处:http://www.udpwork.com/item/15997.html

你可能感兴趣的:(elasticsearch 使用x-pack提高安全性)