ES(elasticsearch)学习笔记–安装

  • 概念:学任何东西之前,先了解下它是什么,它能做什么?

维基百科上的解释:Elasticsearch是一个基于Lucene库的搜索引擎。它提供了一个分布式、支持多租户的全文搜索引擎,具有HTTP Web接口和无模式JSON文档。Elasticsearch是用Java开发的,并在Apache许可证下作为开源软件发布。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene,主要作用:它可以快速地储存、搜索和分析海量数据。维基百科、Stack Overflow、Github 都采用它,还可以存储一些日志,比如binlog, accesslog, 监控日志等,便于快速检索和定位问题

  • 目前最新版本是哪个版本?

目前版本是:7.7.1 (2020-06-09),下载地址: https://www.elastic.co/cn/downloads/elasticsearch

  • 历史版本下载:

https://www.elastic.co/cn/downloads/past-releases#elasticsearch

  • 我选择的版本

这里选择的是elasticsearch-6.2.4,原因是我看的教程目前是这个版本的,下次有时间会找个最新版的来写篇教程。学习东西都差不多,触类旁通

  • 安装步骤

Elastic 需要 Java 8 环境。如果你的机器还没安装 Java,请选安装java,linux 下java安装很简单,注意要保证环境变量JAVA_HOME正确设置,设置java home的方法如下:

//假设java安装目录在/usr/java
JAVA_HOME=/usr/java/jdk
JRE_HOME=/usr/java/jdk/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
OPENSSL_CONF=/etc/pki/tls/openssl.cnf
export JAVA_HOME JRE_HOME CLASS_PATH PATH

//以上配置可以写在/etc/profile,或是~/.bashrc中
生效可以使用source /etc/profile, 或是source ~/.bashrc
$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.zip
$ unzip elasticsearch-6.2.4.zip
$ cd elasticsearch-6.2.4/ 
  • 启动elasticsearch,假设我的解压目录在/opt下
/opt/elasticsearch-6.2.4/bin/elasticsearch
  • 排坑指南

(1) can not run elasticsearch as root

这个问题的关键是elasticsearch为了安全不允许以root身份运行

#建立单独的用户组和用户
groupadd esgroup
useradd esuser -g esgroup -p 123456
chown -R esuser:esgroup /opt/elasticsearch-6.2.4

(2) ERROR: [2] bootstrap checks failed
[1]: max number of threads [3881] for user [esuser] is too low, increase to at least [4096]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

#解决方案
vim /etc/security/limits.d/20-nproc.conf
*          soft    nproc     4096
*          hard    nproc     4096
//或者将*号改成esuser
//是否生效与否,可以切esuser,然后ulimit -a查看"max user processes"是否达到4096

在/etc/sysctl.conf添加vm.max_map_count
echo "vm.max_map_count=262144" > /etc/sysctl.conf
sysctl -p
  • 排完坑之后,/opt/elasticsearch-6.2.4/bin/elasticsearch
启动成功
  • 验证
[root@VM_IP_centos bin]# curl IP:9200
{
  "name" : "HnNnFni",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "p96Hsjp8ROylQSq-AI32Jg",
  "version" : {
    "number" : "6.2.4",
    "build_hash" : "ccec39f",
    "build_date" : "2018-04-12T20:37:28.497551Z",
    "build_snapshot" : false,
    "lucene_version" : "7.2.1",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}
  • Elasticsearch network.host 设置外网访问es
cd /opt/elasticsearch-6.2.4/config/
vim elasticsearch.yml

network.host: xx.xx.xx.xx(自己的ip)
#
# Set a custom port for HTTP:
#
http.port: 9200
  • 防火墙安全策略设置9200端口可访问
验证外网访问是否ok

接着我们安装kibana,先了解下kibana是什么?

Kibana是一个开源的分析和可视化平台,设计用于和Elasticsearch一起工作。可以用Kibana来搜索,查看,并和存储在Elasticsearch索引中的数据进行交互。执行高级数据分析,并且以各种图标、表格和地图的形式可视化数据。Kibana使得理解大量数据变得很容易。它简单的、基于浏览器的界面使你能够快速创建和共享动态仪表板,实时显示Elasticsearch查询的变化。

  • 具体安装

下载kibana: https://www.elastic.co/cn/downloads/past-releases#kibana,选择kibana-6.2.4,与es版本保持一致

#假设kibana-6.2.4-linux-x86_64.tar.gz在/opt下
cd /opt
tar -xvzf kibana-6.2.4-linux-x86_64.tar.gz
mkdir -p /usr/local/kibana
mv /opt/kibana-6.2.4-linux-x86_64/* /usr/local/kibana/
  • 修改kibana配置
cd /usr/local/kibana/config/
vim kibana.yml

//修改以下两个选项
server.host: "IP"
elasticsearch.url: "http://IP:9200/"  #es的ip
  • kibana启动,启动前,先放开防火墙的5601端口访问限制
/usr/local/kibana/bin/kibana
Kibana启动

出现Ready,说明启动成功

  • kibana验证
Kibana UI界面