标签:如何 err 可视化 去掉 使用 配置 框架 分布 bootstra
本系列文章最终目标是为了快速搭建一个简易可用的搜索服务。方案并不一定是最优,但实现难度较低。
近期公司在重构老系统,需求是要求知识库支持全文检索。
我们知道普通的数据库like方式效果及性能都不好,所以另寻出路,确定通过 Elasticsearch (下文简称「 ES 」)搜索引擎实现。
因公司之前购买了阿里云的ES服务且版本为 5.5.3 ,下文选用的技术框架均基于此版本。
① Elasticsearch 5.5.3
一个基于Lucene的搜索服务器,提供了分布式的全文搜索引擎
② Logstash 5.5.3
开源的服务器端数据处理管道
③ Kibana 5.5.3
开源的分析和可视化平台
④ SpringBoot 2.0.4
集群是由一个或者多个拥有相同 cluster.name 配置的节点组成,共同承担数据和负载压力,当节点数量发生变化时集群将会重新平均分布所有数据。
一个运行中的 ES 实例称为一个节点
名词
;类似于传统关系数据库中的一个数据库动词
;索引一个文档就是存储一个文档到一个索引(名词)中以便它可以被检索和查询到。类似于 SQL 语句中的 INSERT 关键词倒排索引
;类似于传统关系型数据库中的索引概念,可以提升数据检索速度一个索引包含一个或多个 type ,相当于传统关系型数据库中的表
相当于传统关系型数据库中的数据行
「工作单元」
,仅保存了全部数据的一部分「主分片」
和「副本分片」
① 主分片
索引内任意一个文档都归属于一个主分片,所以主分片的数目决定着索引能够保存的最大数据量
② 副本分片( replicas )
只是一个主分片的拷贝,作为硬件故障时保护数据不丢失的冗余备份,并为搜索和返回文档等读操作提供服务
① 下载安装包:
$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.3.tar.gz
② 解压并移动到 local 目录下
$ tar -zxvf elasticsearch-5.5.3.tar.gz
$ mv elasticsearch-5.5.3 /usr/local/elasticsearch
③ 修改 config 目录下的 elasticsearch.yml 文件
$ vim elasticsearch.yml
// 去掉行开头的 # 并重命名集群名,这里命名为 compass
cluster.name: compass
// 去掉行开头的 # 并重命名节点名,这里命名为 node-1
node.name: node-1
④ 进入 bin 目录启动 ES 并在后台运行
$ ./elasticsearch -d
⑤ 启动之后测试是否正常运行
$ curl 127.0.0.1:9200
返回结果:
{
"name" : "node-1",
"cluster_name" : "compass",
"cluster_uuid" : "Zuj5FBMUTjuHQXlAHreGvA",
"version" : {
"number" : "5.5.3",
"build_hash" : "9305a5e",
"build_date" : "2017-09-07T15:56:59.599Z",
"build_snapshot" : false,
"lucene_version" : "6.6.0"
},
"tagline" : "You Know, for Search"
}
$ yum -y install wget
解决办法:
① 新建用户组 elasticsearch
$ groupadd elasticsearch
② 新建用户并指定用户组
$ useradd -g elasticsearch elasticsearch
③ 修改 ES 目录所属者
$ chown -R elasticsearch:elasticsearch elasticsearch
④ 切换用户后再次启动
$ su elasticsearch
解决办法:
① 修改 elasticsearch.yml 中的「network.host」
network.host: 0.0.0.0
② 重启 ES 出现如果如下报错,请依次按下面的步骤解决
ERROR: [3] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
[2]: max number of threads [3818] for user [elasticsearch] is too low, increase to at least [4096]
[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
每个进程最大同时打开文件数太小
修改 /etc/security/limits.conf 文件,增加如下配置,用户退出后重新登录生效
* soft nofile 65536
* hard nofile 65536
[2]: max number of threads [3818] for user [es] is too low, increase to at least [4096]
最大线程个数太低
同上修改 /etc/security/limits.conf 文件,增加如下配置,用户退出后重新登录生效
* soft nproc 4096
* hard nproc 4096
[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
一个进程能拥有的最多的内存区域
修改 /etc/sysctl.conf 文件,增加如下配置,执行命令「 sysctl -p 」生效
vm.max_map_count=262144
③ 切换到 elasticsearch 用户并重启, curl 测试成功
① 下载安装包:
$ wget https://artifacts.elastic.co/downloads/logstash/logstash-5.5.3.tar.gz
② 解压并移动到 local 目录下
$ tar -zxvf logstash-5.5.3.tar.gz
$ mv logstash-5.5.3 /usr/local/logstash
① 下载安装包:
$ wget https://artifacts.elastic.co/downloads/kibana/kibana-5.5.3-linux-x86_64.tar.gz
② 解压并移动到 local 目录下
$ tar -zxvf kibana-5.5.3-linux-x86_64.tar.gz
$ mv kibana-5.5.3-linux-x86_64 /usr/local/kibana
③ 修改 config 目录下的 kibana.yml 文件
// 去掉当前行开头的 #
server.port: 5601
// 去掉当前行开头的#并将localhost修改为具体IP
server.host: "192.168.1.191"
// 去掉当前行开头的#并将localhost修改为具体IP
elasticsearch.url: "http://192.168.1.191:9200"
④ 启动 Kibana ,浏览器访问 http://192.168.1.191:5601
$ ./kibana
① 「 Chrome 浏览器网上应用商店」或者「 Firefox 附加组件」搜索 elasticsearch head
② 安装插件后点击浏览器地址栏右侧「放大镜图标」,顶部输入框中的 localhost 修改为服务器地址即可查看 ES 服务状态
至此 ELK 环境搭建完毕,下一篇具体介绍如何实现基础搜索服务。
标签:如何 err 可视化 去掉 使用 配置 框架 分布 bootstra
原文地址:https://www.cnblogs.com/orzlin/p/10262393.html