Elasticsearch

Elasticsearch是一个实时的分布式搜索分析引擎,可以被用作全文搜索、结构化搜索、分析。提供了RestfulAPI接口进行通信,用于各语言、客户端进行调用。

安装

官网:Install Elasticsearch from archive on Linux or MacOS

  • linux系统的安装包
  1. wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.0.0-linux-x86_64.tar.gz
  2. wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.0.0-linux-x86_64.tar.gz.sha512
  3. shasum -a 512 -c elasticsearch-7.0.0-linux-x86_64.tar.gz.sha512
  4. tar -xzf elasticsearch-7.0.0-linux-x86_64.tar.gz
  5. cd elasticsearch-7.0.0/
  • 控制台行执行以下命令运行Elasticsearch

如果出现can not run elasticsearch as root错误,参考问题:elasticsearch不能够以root权限运行解决方案

  1. ./bin/elasticsearch

检查elasticsearch是否运行

elasticsearch默认9200端口,控制台执行 $ curl http://localhost:9200

  1. {
  2. "name" : "ubuntu",
  3. "cluster_name" : "elasticsearch",
  4. "cluster_uuid" : "o6kv7tj-SGGnfJ5K9pLkWw",
  5. "version" : {
  6. "number" : "7.0.0",
  7. "build_flavor" : "default",
  8. "build_type" : "tar",
  9. "build_hash" : "b7e28a7",
  10. "build_date" : "2019-04-05T22:55:32.697037Z",
  11. "build_snapshot" : false,
  12. "lucene_version" : "8.0.0",
  13. "minimum_wire_compatibility_version" : "6.7.0",
  14. "minimum_index_compatibility_version" : "6.0.0-beta1"
  15. },
  16. "tagline" : "You Know, for Search"
  17. }

可视化界面kibanna

  • 安装

官网:Install Kibana with .tar.gz

  1. $ wget https://artifacts.elastic.co/downloads/kibana/kibana-7.0.1-linux-x86_64.tar.gz
  2. $ shasum -a 512 kibana-7.0.1-linux-x86_64.tar.gz
  3. $ tar -xzf kibana-7.0.1-linux-x86_64.tar.gz
  4. $ mv kibana-7.0.1-linux-x86_64 kibana-7.0.1 # 目录重命名
  5. $ cd kibana-7.0.1/
  • 运行kibana

默认情况下kibana前台运行,按Ctrl+C键停止

  1. ./bin/kibana

默认运行5601端口,打开网址http://localhost:5601/访问

注意:因为我使用的本地虚拟机需要建立链接隧道才可在浏览器访问,命令ssh -L5601:127.0.0.1:5601 qufei@192.168.6.128,没有这个问题的可忽略。

  • 配置文件

kinaba默认配置文件路径${kibana安装目录}/config/kibana.yml,如若更新配置修改此文件即可,配置详细说明:Configuring Kibana

安全增强

es安装好后任何人都可以访问、修改数据,这是不安全的,v6.X版本采用x-pack增强安全权限,之后最新版本可以通过Elastic Stack的 Security 功能进行权限管理。

kibana中配置security

在群集上启用X-Pack安全性时,Kibana用户必须登录。为Kibana用户配置X-Pack安全角色,以控制这些用户可以访问的数据。

Elasticsearch中配置security

  1. // todo

问题指南

elasticsearch不能够以root权限运行

执行./bin/elasticsearch命令后报以下错误,原因在于elasticsearch处于系统安全考虑不允许root权限来运行,需要创建一个单独的用户来执行

  1. $ sudo ./bin/elasticsearch
  2. OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
  3. [2019-04-28T16:22:22,563][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [ubuntu] uncaught exception in thread [main]
  4. org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
  5. at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:163) ~[elasticsearch-7.0.0.jar:7.0.0]
  6. at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:150) ~[elasticsearch-7.0.0.jar:7.0.0]
  7. at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-7.0.0.jar:7.0.0]
  8. at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-7.0.0.jar:7.0.0]
  9. at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-7.0.0.jar:7.0.0]
  10. at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:115) ~[elasticsearch-7.0.0.jar:7.0.0]
  11. at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92) ~[elasticsearch-7.0.0.jar:7.0.0]
  • 创建es用户

    1. groupadd es # 创建elsearch用户组及
    2. useradd es -g es -p elasticsearch-7.0.0 # 创建elsearch用户
  • 更改elasticsearch文件夹内部文件的所属用户及组为es:es

    1. cd /data/soft/ # 进入到你的elasticsearch安装目录
    2. chown -R es:es elasticsearch-7.0.0
  • 切换至es用户

    1. su es # 切换账户
  • 再次启动

    1. cd /data/soft/elasticsearch-7.0.0/bin # 进入bin目录
    2. ./elasticsearch # 执行启动命令

su: Authentication failure

原因是ubuntu系统默认没有激活root用户,需要通过命令sudo passwd root进行手动操作,示例如下:

  1. $ sudo passwd root
  2. [sudo] password for qufei:
  3. Enter new UNIX password:
  4. Retype new UNIX password:
  5. passwd: password updated successfully
  6. $ su
  7. Password:
  8. $ su es

阅读推荐