- 概念:学任何东西之前,先了解下它是什么,它能做什么?
维基百科上的解释: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端口可访问
接着我们安装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
出现Ready,说明启动成功
- kibana验证