在Linux中安装ElasticSearch&Kibana&ik分词器

概述:

  • ElasticSearch是一个基于Lucene的搜索服务器

  • 是一个分布式、高扩展、高实时的搜索与数据分析引擎

  • 基于RESTful web接口

  • Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎

官网:https://www.elastic.co/

下载地址: https://www.elastic.co/cn/downloads/elasticsearch

ElasticSearch安装

#1,上传ElasticSearch安装包put e:/software/elasticsearch-7.4.0-linux-x86_64.tar.gz
#2,解压压缩包 解压到/usr/local/elasticsearch 目录下 -C大写 tar -zxvf elasticsearch-7.4.0-linux-x86_64.tar.gz -C /usr/local/elasticsearch#3,创建普通用户 ElasticSearch不允许root用户直接运行useradd username  # 新增用户passwd  password   # 为用户设置密码#4,为新用户授权chown -R username:username /usr/local/elasticsearch/elasticsearch-7.4.0

修改内容:

  cluster.name:配置elasticsearch的集群名称,默认是elasticsearch。建议修改成一个有意义的名称

  node.name:节点名,elasticsearch会默认随机指定一个名字,建议指定一个有意义的名称,方便管理

  network.host:设置为0.0.0.0允许外网访问

  http.port:Elasticsearch的http访问端口

  cluster.initial_master_nodes:初始化新的集群时需要此配置来选举master

#5,修改 elasticsearch.yml文件vim /usr/local/elasticsearch/elasticsearch-7.4.0/config/elasticsearch.yml #添加内容cluster.name: my-applicationnode.name: node-1network.host: 0.0.0.0http.port: 9200cluster.initial_master_nodes: ["node-1"]

修改配置文件

# 切换到root用户su root #1. ===最大可创建文件数太小=======vim /etc/security/limits.conf # 在文件末尾中增加下面内容username soft nofile 65536username hard nofile 65536# =====vim /etc/security/limits.d/20-nproc.conf# 在文件末尾中增加下面内容username soft nofile 65536username hard nofile 65536*  hard    nproc     4096# 注:* 代表Linux所有用户名称    #2. ===最大虚拟内存太小=======vim /etc/sysctl.conf# 在文件中增加下面内容vm.max_map_count=655360# 重新加载,输入下面命令:sysctl -p

启动ElasticSearch

su username  # 切换到username用户启动cd /usr/local/elasticsearch/elasticsearch-7.4.0/bin./elasticsearch #启动

此时运行会出现问题:

  因为ElasticSearch内置了对应版本的jdk,而我们使用的Linux是已经配置了jdk(我的是jdk8),此时会因为版本不一致而出现问题,我们只需要修改ElasticSearch不使用Linux配置的jdk而使用内置的jdk即可

#修改ElasticSearch的运行文件内容vim /usr/local/elasticsearch/elasticsearch-7.4.0/bin/elasticsearch#在文件中添加以下内容#(此处配置为elastic解压后jdk的路径)export JAVA_HOME=/usr/local/elasticsearch/elasticsearch-7.4.0/jdk     export PATH=$JAVA_HOME/bin:$PATH#添加的jdk判断if [ -x "$JAVA_HOME/bin/java" ]; then    JAVA="/usr/local/elasticsearch/elasticsearch-7.4.0/jdk/bin/java"elseJAVA=`which java`fi

完整的文件内容

#!/bin/bash# CONTROLLING STARTUP:## This script relies on a few environment variables to determine startup# behavior, those variables are:##   ES_PATH_CONF -- Path to config directory#   ES_JAVA_OPTS -- External Java Opts on top of the defaults set## Optionally, exact memory values can be set using the `ES_JAVA_OPTS`. Note that# the Xms and Xmx lines in the JVM options file must be commented out. Example# values are "512m", and "10g".##   ES_JAVA_OPTS="-Xms8g -Xmx8g" ./bin/elasticsearch#(此处配置为elastic解压后jdk的路径)export JAVA_HOME=/usr/local/elasticsearch/elasticsearch-7.4.0/jdk     export PATH=$JAVA_HOME/bin:$PATHsource "`dirname "$0"`"/elasticsearch-envif [ -z "$ES_TMPDIR" ]; then  ES_TMPDIR=`"$JAVA" -cp "$ES_CLASSPATH" org.elasticsearch.tools.launchers.TempDirectory`fiES_JVM_OPTIONS="$ES_PATH_CONF"/jvm.optionsJVM_OPTIONS=`"$JAVA" -cp "$ES_CLASSPATH" org.elasticsearch.tools.launchers.JvmOptionsParser "$ES_JVM_OPTIONS"`ES_JAVA_OPTS="${JVM_OPTIONS//\$\{ES_TMPDIR\}/$ES_TMPDIR}"#添加的jdk判断if [ -x "$JAVA_HOME/bin/java" ]; then    JAVA="/usr/local/elasticsearch/elasticsearch-7.4.0/jdk/bin/java"elseJAVA=`which java`fi# manual parsing to find out, if process should be detachedif ! echo $* | grep -E '(^-d |-d$| -d |--daemonize$|--daemonize )' > /dev/null; then  exec     "$JAVA"     $ES_JAVA_OPTS     -Des.path.home="$ES_HOME"     -Des.path.conf="$ES_PATH_CONF"     -Des.distribution.flavor="$ES_DISTRIBUTION_FLAVOR"     -Des.distribution.type="$ES_DISTRIBUTION_TYPE"     -Des.bundled_jdk="$ES_BUNDLED_JDK"     -cp "$ES_CLASSPATH"     org.elasticsearch.bootstrap.Elasticsearch     "$@"else  exec     "$JAVA"     $ES_JAVA_OPTS     -Des.path.home="$ES_HOME"     -Des.path.conf="$ES_PATH_CONF"     -Des.distribution.flavor="$ES_DISTRIBUTION_FLAVOR"     -Des.distribution.type="$ES_DISTRIBUTION_TYPE"     -Des.bundled_jdk="$ES_BUNDLED_JDK"     -cp "$ES_CLASSPATH"     org.elasticsearch.bootstrap.Elasticsearch     "$@"     <&- &  retval=$?  pid=$!  [ $retval -eq 0 ] || exit $retval  if [ ! -z "$ES_STARTUP_SLEEP_TIME" ]; thensleep $ES_STARTUP_SLEEP_TIME  fi  if ! ps -p $pid > /dev/null ; thenexit 1  fi  exit 0fiexit $?

启动ES后有个警告信息:OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release. 这是提醒你 cms 垃圾收集器在 jdk9 就开始被标注为 @deprecated

此时修改 config目录下的jvm.options文件内容即可

将 : -XX:+UseConcMarkSweepGC改为:-XX:+UseG1GC

完成以上操作后,启动ElasticSearch就没问题了,可以访问ElasticSearch

访问ElasticSearch之前,确保防火墙是关闭的

#暂时关闭防火墙systemctl  stop  firewalld# 或者#永久设置防火墙状态systemctl enable firewalld.service  #打开防火墙永久性生效,重启后不会复原 systemctl disable firewalld.service #关闭防火墙,永久性生效,重启后不会复原

浏览器输入http://192.168.149.135:9200/,(Linux的ip:9200)如下图

此时已经启动成功

  重点几个关注下即可:
  number" : "7.4.0" 表示elasticsearch版本
  lucene_version" : "8.2.0" 表示lucene版本
  name : 默认启动的时候指定了 ES 实例名称
  cluster_name : 默认名为 elasticsearch

Kibana安装

Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索引中的数据。使用Kibana,可以通过各种图表进行高级数据分析及展示。

Kibana让海量数据更容易理解。它操作简单,基于浏览器的用户界面可以快速创建仪表板(dashboard)实时显示Elasticsearch查询动态。

安装:

#1,下载对应的安装包并上传到Linuxhttps://www.elastic.co/cn/downloads/kibana#2,解压tar -xzf kibana-7.4.0-linux-x86_64.tar.gz -C /usr/local/kibana

修改配置 : 

  server.port:http访问端口

  server.host:ip地址,0.0.0.0表示可远程访问

  server.name:kibana服务名

  elasticsearch.hosts:elasticsearch地址

  elasticsearch.requestTimeout:请求elasticsearch超时时间,默认为30000,此处可根据情况设置

#3,修改配置vim /usr/local/kibana/kibana-7.4.0-linux-x86_64/config/kibana.yml#添加内容server.port: 5601server.host: "0.0.0.0"server.name: "kibana-itcast"elasticsearch.hosts: ["http://127.0.0.1:9200"]elasticsearch.requestTimeout: 99999

启动Kibana:

  由于kibana不建议使用root用户启动,如果用root启动,需要加--allow-root参数

# 切换到kibana的bin目录cd /usr/local/kibana/kibana-7.4.0-linux-x86_64/bin# 启动./kibana --allow-root

访问Kibana

看到这个界面,说明Kibanan已成功安装。

Discover:可视化查询分析器 Visualize:统计分析图表 Dashboard:自定义主面板(添加图表) Timelion:Timelion是一个kibana时间序列展示组件(暂时不用) Dev Tools:Console控制台(同CURL/POSTER,操作ES代码工具,代码提示,很方便) Management:管理索引库(index)、已保存的搜索和可视化结果(save objects)、设置 kibana 服务器属性。

安装IK分词器:

环境准备:

下载maven安装包

wget http://mirror.cc.columbia.edu/pub/software/apache/maven/maven-3/3.1.1/binaries/apache-maven-3.1.1-bin.tar.gz

解压maven安装包

tar xzf apache-maven-3.1.1-bin.tar.gz

配置path

vim  /etc/profile.d/maven.sh#将下面的内容复制到文件,保存export MAVEN_HOME=/opt/maven  #maven安装路径export PATH=${MAVEN_HOME}/bin:${PATH}

设置好Maven的路径之后,需要运行下面的命令使其生效

source /etc/profile.d/maven.sh

验证是否安装成功

mvn -v

安装IK分词器

下载IK:

wget https://github.com/medcl/elasticsearch-analysis-ik/archive/v7.4.0.zip

解压IK 由于这里是zip包不是gz包,所以我们需要使用unzip命令进行解压,如果本机环境没有安装unzip,请执行:

#安装unzipyum install zip yum install unzip#解压IKunzip v7.4.0.zip

编译jar包

# 切换到 elasticsearch-analysis-ik-7.4.0目录cd elasticsearch-analysis-ik-7.4.0/#打包mvn package

jar包移动

package执行完毕后会在当前目录下生成target/releases目录,将其中的elasticsearch-analysis-ik-7.4.0.zip。拷贝到elasticsearch目录下的新建的目录plugins/analysis-ik,并解压

#切换目录cd /usr/local/elasticsearch/elasticsearch-7.4.0/plugins#新建目录mkdir analysis-ikcd analysis-ik#执行拷贝cp -R /usr/local/elasticsearch/elasticsearch-analysis-ik-7.4.0/target/releases/elasticsearch-analysis-ik-7.4.0.zip      /usr/local/elasticsearch/elasticsearch-7.4.0/plugins/analysis-ik#执行解压unzip  /usr/local/elasticsearch/elasticsearch-7.4.0/plugins/analysis-ik/elasticsearch-analysis-ik-7.4.0.zip

拷贝辞典

将elasticsearch-analysis-ik-7.4.0目录下的config目录中的所有文件 拷贝到elasticsearch的config目录

cp -R /usr/local/elasticsearch/elasticsearch-analysis-ik-7.4.0/config/*   /opt/elasticsearch-7.4.0/config

完成以上配置后IK分词器安装并配置完成,配置完成后需要重启ElasticSearch

文中涉及的路径按自己的情况而定!

(0)

相关推荐

  • elasticsearch 和kibana 安装

    ELASTICSEARCH Elastic Stack 的核心 Elasticsearch 是一个分布式.RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例. 作为 Elastic ...

  • ElasticSearch使用

    前言 Lucene使用起来有点麻烦,其实现在企业中使用原生Lucene来进行搜索的很少了,使用Solr和ElasticSearch比较多,Solr和ElasticSearch都是基于Lucene开发的 ...

  • ES入门及安装软件

    es介绍 Elasticsearch,简称es,是一款高扩展的分布式全文检索引擎.它可以近乎实时的存储,检索数据.es是面向文档型的数据库,一条数据就是一个文档,用json做为文档序列化的格式.es是 ...

  • 一文入门.NET Core操作ElasticSearch 7.x

    原创 青城 青城同学 1周前在互联网上,随处可见的搜索框.背后所用的技术大多数就是全文检索.在全文检索领域,常见的库/组件有:Lucene.Solr.Sphinx.ElasticSearch等.简单对 ...

  • 如何对你的 ELK 生产安全部署?本文交给你~

    如何对你的 ELK 生产安全部署?本文交给你~

  • RocketMQ在Linux中安装启动

    RocketMQ: RocketMQ是阿里开源的一款非常优秀中间件产品,脱胎于阿里的另一款队列技术MetaQ,后捐赠给Apache基金会作为一款孵化技术,仅仅经历了一年多的时间就成为Apache基金会 ...

  • 如何在Linux中安装vnStat和vnStati监视网络流量

    VnStat是针对Linux和BSD的基于控制台的网络流量监视工具设计.它将保留所选网络接口的网络流量日志.为了生成日志,vnStat使用内核提供的信息. 换句话说,它不会嗅探网络流量,并且可以确保系 ...

  • linux Centos7系统中安装Jmeter说明

    第一步:安装JDK 1.下载JDK 1)可以在JDK官网下载linux版本的JDK文件,再上传到linux系统中 切换到root用户:su root 解压上传好的JDK安装包:tar -zxvf jd ...

  • (3条消息) Linux(CentOS7)中安装JDK

    目录 1.下载Oralce JDK 2.卸载Open JDK 2.1.检查一下系统中的jdk版本 2.2.检测jdk安装包 2.3.卸载openjdk 3.上传下载好的Oralce JDK到Linux ...

  • 菜鸟记373-如何卸载EXCEL中安装的插件?(其实是插件推荐合集)

    万一您身边的朋友用得着呢? 免费咨询热线:如果您有工作中的困惑要和小菜分享或探讨,欢迎您发送邮件至3482197@QQ.COM,咱们一起研究提高. 截止今日小菜已分享300+篇经验之谈,可以文章编号或 ...

  • linux中执行cd之后直接ls列出所有文件

    以下command在cshell中生效 在.cshrc中加入下面的语句: alias cd 'cd \!* ; ll' 注意*后面的空格,以及ll之前的空格 进一步,可以同时打印出cd之后的path ...

  • Linux下安装配置Tengine:Nginx

    Linux下安装配置Tengine:Nginx 简介 Tengine是由淘宝网发起的Web服务器项目.它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性. Tengine的性能和 ...

  • Linux中的split命令,文件切割

    Linux中的文件,特别是日志文件,特别大了不好打开,可以用split命令来切割成小文件 split命令有两种方式: 1,指定行数来切割 split -l 300 log.txt newfile 每个 ...

  • LINUX中如何查看某个端口是否被占用

    之前查询端口是否被占用一直搞不明白,问了好多人,终于搞懂了,现在总结下: 1.netstat  -anp  |grep   端口号 如下,我以3306为例,netstat  -anp  |grep   ...