ElasticSearch 安装配置
1. Elasticsearch5.5.2安装
1.1.Elasticsearch安装步骤
#
安装之前需安装
java
环境,并配置
JAVA_HOME
环境变量
#
直接下载
Elasticsearch-5.5.2
稳定版的
.tar.gz
包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.2.tar.gz
#
下载完成后,发布
SHA
签名
sha1sum elasticsearch-5.5.2.tar.gz
#
解压
Elasticsearch
程序包
tar -xzf elasticsearch-5.5.2.tar.gz
#
进入
elasticsearch-5.5.2,
该目录为
$ES_HOME
cd elasticsearch-5.5.2/
#
启动
elasticsearch
服务之前,需先配置
es
用户组和
es
用户(由于
es
安全因素)
1 groupadd es #增加es组
2 useradd es –g es –p pwd #增加es用户并附加到es组
3 chown -R es:es elasticsearch-5.5.2 #分配es的目录访问权限
4 chown –R es:es java/ #java也需要分配给es用户访问权限
5 su –es #切换es用户
#
启动
elasticsearch
服务前,内存分配以本机内存大小适当分配
#
或者直接起动时,配置内存大小,确保
Xmx
和
Xms
的大小是相同的,其目的是为了能够在
java
垃圾回收机制清理完堆区后不需要重新分隔计算堆区的大小而浪费资源,可以减轻伸缩堆大小带来的压力。
1 vi config/jvm.options 2 -Xms512m 3 -Xms512m
#
启动
elasticsearch
服务
./bin/elasticsearch #启动ES
nohup ./bin/elasticsearch # 后台启动ES
#
测试
elasticsearch
是否启动成功
curl 'http://localhost:9200/?pretty'
#如需远程主机需访问该elasticsearch服务,需配置对外出口ip
#目前内网测试环境,暂时配置全部ip都可访问,生产环境当设置API调用服务器ip
vi elasticsearch.yml
# 启动配置服务可能会出现的几个错误
1. max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
#切换到root用户修改 vim /etc/security/limits.conf #在最后面追加 es hard nofile 65536 es soft nofile 65536
#修改后重新登录es账号,使用命令查看上面设置是否成功,结果为65536则成功
ulimit -Hn
2.max number of threads [1024] for user [elasticsearch] is too low, increase to at least [2048]
vi /etc/security/limits.d/90-nproc.conf
3. max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
#切换到root用户 vim /etc/sysct1.conf #在最后追加 vm.max_map_count=262144 #使用 sysctl -p 查看修改结果 sysctl -p
4. system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
vim ./conf/elasticsearch.yml
#在文档最后追加此配置
bootstrap.system_call_filter: false
#关闭elasticsearch服务
1 jps | grep Elasticsearch 2 kill -9 pid
#重新启动
1 ./bin/elasticsearch #启动服务 2 nohup ./bin/elasticsearch & #后台启动服务
1.2.Elasticsearch安装x-pack插件
#在Es的根目录(每个节点),运行 bin/elasticsearch-plugin进行安装。
bin/elasticsearch-plugin install x-pack
#如果你在Elasticsearch已禁用自动索引的创建,在elasticsearch.yml配置action.auto_create_index允许X-pack创造以下指标:
action.auto_create_index: .security,.monitoring*,.watches,.triggered_watches,.watcher-history*
运行Elasticsearch。
bin/elasticsearch
nohup ./bin/elasticsearch & #后台启动服务
1.3.Elasticsearch 工作目录以及日志配置
#配置 Elasticsearch数据目录以及日志目录
1 mkdir /var/lib/elasticsearch 2 mkdir /var/log/elasticsearch 3 4 vi elasticsearch.yml 5 path.data: /var/lib/elasticsearch 6 path.logs: /var/log/elasticsearch
#配置数据目录以及日志目录用户权限
1 chown –R es:es /var/lib/elasticsearch 2 chown –R es:es /var/log/elasticsearch
#重新启动elasticsearch服务
bin/elasticsearch
nohup ./bin/elasticsearch & #后台启动服务
1.4.安装Kibana
1.3.1. 安装kibana
#
安装
kibana
1 wget https://artifacts.elastic.co/downloads/kibana/kibana-5.5.2-linux-x86_64.tar.gz 2 sha1sum kibana-5.5.2-linux-x86_64.tar.gz 3 tar -xzf kibana-5.5.2-linux-x86_64.tar.gz 4 cd kibana/
#
配置
Kibana,
配置
server.host
地址,需远程连接,因此配置服务器
IP
即可。
vi config/kibana.yml
#
启动
kibana,
如下图所示,则
kibana
启动成功,一般使用默认配置进行启动。
./bin/kibana
nohup ./bin/kibana &
#
在你的浏览器打开
kibana: http://localhost:5601/app/kibana
1.3.2. Kibana安装X-Pack 插件(监控组件需收费,可不安装)
#
自动安装
X-Pack
bin/kibana-plugin install x-pack
#
手动安装
X-Pack,
下载文件过大,手动下载安装方式有限,如下图所示,安装成功。
1 wget https://artifacts.elastic.co/downloads/packs/x-pack/x-pack-5.5.2.zip 2 bin/kibana-plugin install file:///path/to/file/x-pack-5.5.2.zip
#
重新启动
kibana
bin/kibana
1.3.3. Kibana安装csv-export-patch 插件
#1.安装csv-export-patch插件后,可在discover列表导出数据。
#进入kibana安装目录
cd kibana/
#下载csv-export-patch.tar.gz包
wget https://github.com/fbaligand/kibana/releases/download/v5.5.2-csv-export/csv-export-patch.tar.gz
#在kibana安装目录直接解压
tar -xzvf csv-export-patch.tar.gz
#备份 optimize文件夹,用以安装插件失败时,可还原
tar -zcvf optimize-backup.tar.gz optimize/
#移除optimize文件夹
rm -rf optimize
#重新启动,并重新生成optimize文件夹
bin/kibana
#2.最终结果显示如下图,则说明csv-export-patch插件安装成功
1.3.4. Kibana安全设置
#1. elasticsearch
查询所有用户
, elastic
为
root
用户,默认密码为
changeme
curl -XGET -u elastic 'localhost:9200/_xpack/security/user?pretty'
#2. elasticsearch
查询所有角色
curl -XGET -u elastic 'localhost:9200/_xpack/security/role'
#3.
修改用户密码
1 curl -XPUT -u elastic 'localhost:9200/_xpack/security/user/elastic/_password' -d '{ 2 "password" : "elastic" 3 }'
#4.
修改
kibana
密码:修改之前需要在
kibana.yml
中配置
elasticsearch
的用户名和密码后才能需改密码,否则会报错。
(
1
):配置好
elsticsearch
用户名密码后,执行脚本,修改
kibana
用户密码
1 curl -XPUT -u elastic 'localhost:9200/_xpack/security/user/kibana/_password' -d '{ 2 "password" : "kibana" 3 }'
1.3.5. 当kibana安装了x-pack插件,则nginx代理访问kibana配置如下
#1. 首先在nginx.conf文件 server段,添加如下代码
location /kibana { proxy_pass http://192.168.20.21:5601; rewrite ^/kibana/(.*)$ /$1 break; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; proxy_redirect off; }
#2. 配置完成后,重新加载nginx配置
nginx -s reload
#3. 然后访问kibana nginx代理地址
http://121.43.188.30/kibana/login
1.3.5. kibana 介绍
# Kibana 5
最新版本的界面
# 1.Discover
#
从发现页可以交互地探索
ES
的数据。可以访问与所选索引模式相匹配的每一个索引中的每一个文档。您可以提交搜索查询、筛选搜索结果和查看文档数据。还可以看到匹配搜索查询和获取字段值统计的文档的数量。如果一个时间字段被配置为所选择的索引模式,则文档的分布随着时间的推移显示在页面顶部的直方图中。
# 2.Visualize
#
可视化能使你创造你的
Elasticsearch
指标数据的可视化。然后你可以建立仪表板显示相关的可视化。
Kibana
的可视化是基于
Elasticsearch
查询。通过一系列的
Elasticsearch
聚合提取和处理您的数据,您可以创建图表显示你需要知道的关于趋势,峰值和骤降。您可以从搜索保存的搜索中创建可视化或从一个新的搜索查询开始。
#3.Dashboard
#
一个仪表板显示
Kibana
保存的一系列可视化。你可以根据需要安排和调整可视化,并保存仪表盘,可以被加载和共享。
# 4.Monitoring
#
该
X-pack
监控组件使您可以通过
Kibana
轻松地监控
ElasticSearch
。您可以实时查看集群的健康和性能,以及分析过去的集群、索引和节点度量。此外,您可以监视
Kibana
本身性能。当你安装
X-pack
在群集上,监控代理运行在每个节点上收集和指数指标从
Elasticsearch
。安装在
X-pack
在
Kibana
上,您可以查看通过一套专门的仪表板监控数据。
# 5.Graph
# X-Pack
图的能力使你发现一个
Elasticsearch
索引项是如何相关联的。你可以探索索引条款之间的连接,看看哪些连接是最有意义的。从欺诈检测到推荐引擎,对各种应用中这都是有用的,例如,图的探索可以帮助你发现网站上黑客的目标的漏洞,所以你可以硬化你的网站。或者,您可以为您的电子商务客户提供基于图表的个性化推荐。
X-pack
提供简单,但功能强大的图形开发
API
,和
Kibana
交互式图形可视化工具。使用
X-pack
图有工作与开销与现有
Elasticsearch
指标你不需要任何额外的数据存储的特征。
# 6.Timelion
#Timelion
是一个时间序列数据的可视化,可以结合在一个单一的可视化完全独立的数据源。它是由一个简单的表达式语言驱动的,你用来检索时间序列数据,进行计算,找出复杂的问题的答案,并可视化的结果。
这个功能由一系列的功能函数组成,同样的查询的结果,也可以通过
Dashboard
显示查看。
# 7.Management
#
管理中的应用是在你执行你的运行时配置
kibana
,包括初始设置和指标进行配置模式,高级设置,调整自己的行为和
Kibana
,各种
“
对象
”
,你可以查看保存在整个
Kibana
的内容如发现页,可视化和仪表板。
这部分是
pluginable
,除此之外,
X-pack
可以给
Kibana
增加额外的管理能力。
#
你可以使用
X-pack
安全控制哪些用户可以访问
Elasticsearch
数据通过
Kibana
。当你安装
X-pack
,
Kibana
用户登录。他们需要有
kibana_user
作用以及获得的指标,他们将在
Kibana
的工作。如果用户加载
Kibana
仪表板,访问数据的一个索引,他们未被授权查看,他们得到一个错误,表明指数不存在。
X-pack
安全目前并不提供一种方法来控制哪些用户可以负荷的仪表板。
# 8.Dev Tools
#
原先的交互式控制台
Sense
,使用户方便的通过浏览器直接与
Elasticsearch
进行交互。从
Kibana 5
开始改名并直接内建在
Kibana
,就是
Dev Tools
选项
1.5.安装中文分词器
#1.
下载中文分词包
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v5.5.2/elasticsearch-analysis-ik-5.5.2.zip
#2
解压并安装
1 mv elasticsearch-analysis-ik-5.5.2.zip /tools/elasticsearch-5.5.2/plugins/ 2 cd /tools/elasticsearch-5.5.2/plugins/ 3 unzip elasticsearch-analysis-ik-5.5.2.zip 4 ./bin/elasticsearch restart #重启elasticsearch服务
#3.
测试中文分词
1 1.批量创建数据 2 curl -XPUT -u elastic http://localhost:9200/index 3 2.创建映射 4 curl -XPOST -u elastic http://localhost:9200/index2/fulltext/_mapping -d' 5 { 6 "properties": { 7 "content": { 8 "type": "text", 9 "analyzer": "ik_max_word", 10 "search_analyzer": "ik_max_word" 11 } 12 } 13 }' 14 3.搜引文档 15 curl -XPOST -u elastic http://localhost:9200/index2/fulltext/1 -d' 16 {"content":"美国留给伊拉克的是个烂摊子吗"} 17 ' 18 19 curl -XPOST -u elastic http://localhost:9200/index/fulltext/2 -d' 20 {"content":"公安部:各地校车将享最高路权"} 21 ' 22 23 curl -XPOST -u elastic http://localhost:9200/index/fulltext/3 -d' 24 {"content":"中韩渔警冲突调查:韩警平均每天扣1艘中国渔船"} 25 ' 26 27 curl -XPOST -u elastic http://localhost:9200/index/fulltext/4 -d' 28 {"content":"中国驻洛杉矶领事馆遭亚裔男子枪击 嫌犯已自首"} 29 ' 30 4.查询,以高亮显示 31 curl -XPOST -u elastic http://localhost:9200/index2/fulltext/_search -d' 32 { 33 "query" : { "match" : { "content" : "美国" }}, 34 "highlight" : { 35 "pre_tags" : ["<tag1>", "<tag2>"], 36 "post_tags" : ["</tag1>", "</tag2>"], 37 "fields" : { 38 "content" : {} 39 } 40 } 41 } 42 ' 43 5.显示查询结果
2. Elasticsearch 集群配置
2.1.Elasticsearch跨主机集群配置
#
由于模拟生产环境,提升计算能力,跨主机集群配置为优选
#1.
配置集群之前先配置每台节点主机
hosts,
下图以测试环境为例:
配置
es-node1
和
es-node2
两台主机名称,
es-node1
为本机主机
,如若增加主机节点,可配置
es-node3 …,elasticsearch
可配置上千节点作为集群服务节点。
vi /etc/hosts 192.168.30.21 es-node1 192.168.30.22 es-node2 192.168.30.23 es-node3
#
配置
es-node1
节点集群配置
vi config/elasticsearch.yml cluster.name: my_es_cluster node.name: es-node1 http.cors.enabled: true http.cors.allow-origin: "*" node.master: true node.data: true discovery.zen.ping.unicast.hosts: ["es-node1"]
#
配置
es-node2
节点集群配置
vi config/elasticsearch.yml cluster.name: my_es_cluster node.name: es-node2 http.cors.enabled: true http.cors.allow-origin: "*" node.master: false node.data: true discovery.zen.ping.unicast.hosts: ["es-node1"] #指定主节点host名称
#2.
节点配置完成后,分别在两台节点服务器中,重启服务即可。
#es-node1
节点服务重启
./bin/elasticsearch
#es-node2
节点服务重启
./bin/elasticsearch
#3.
集群节点服务测试,出现如下图所示,表示跨主机集群配置成功。
curl http://localhost:9200/_nodes/process?pretty