赞
踩
Elasticsearch是由elastic公司开发的一套搜索引擎技术,它是elastic技术栈中的一部分。完整的技术栈包括:
Elasticsearch:用于数据存储、计算和搜索
Logstash/Beats:用于数据收集
Kibana:用于数据可视化
整套技术栈被称为ELK,经常用来做日志收集、系统监控和状态分析等。
废话不多说,直接开始(本次示例采用7.12.1的版本)。
可以看到当前最新的版本是8.14.1,由于8以上版本的JavaAPI变化很大,在企业中应用并不广泛,企业中应用较多的还是8以下的版本。
点击View past releases获取更多历史稳定版本
点击对应的版本号,即可跳转至下载界面,在该界面可根据需求下载不同操作系统的版本。
这里下载的是window版本
下载完成后解压到非中文目录下即可。
因为都属于同一家公司的产品,所以kibana的下载方式和elasticsearch基本一致。
下载解压后可放在与elasticsearch同级目录下。
ik分词器的版本一定要和elasticsearch保持一致
下载好之后,在elasticsearch目录的plugins目录中创建名为ik的文件夹,将下载好的ik分词器解压在创建的ik文件夹中。
至此,elasticsearch、kibana和ik分词器安装完成,接下来需要修改一下elasticsearch的配置文件。
首先在elasticsearch的config目录下,打开elasticsearch.yml
# es集群名称 cluster.name: es-cluster # elasticsearch数据存放目录 path.data: D:\software\elasticSearch\elasticsearch-7.12.1\data\data # elasticsearch日志存放目录 path.logs: D:\software\elasticSearch\elasticsearch-7.12.1\data\logs # 服务启动地址 network.host: 127.0.0.1 # 监听端口号 http.port: 9200
其次在elasticsearch的bin目录下,修改elasticsearch配置文件
这里修改的目的是:大多数企业使用的是jdk1.8版本,而ES7.12.1使用的是jdk11版本,这里修改为ES使用内置的jdk,避免因为项目使用的jdk版本和ES使用的jdk版本不一致导致的一些问题。
- # 添加一下几行内容
-
- #使用ES内置的jdk
- export JAVA_HOME=D:\software\elasticSearch\elasticsearch-7.12.1\jdk\
- export PATH=$JAVA_HOME\bin:$PATH
-
-
- #添加jdk判断
- if [ -x "$JAVA_HOME\bin" ]; then
- JAVA="D:\software\elasticSearch\elasticsearch-7.12.1\jdk\bin"
- else
- JAVA=`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`. Example # values are "512m", and "10g". # # ES_JAVA_OPTS="-Xms8g -Xmx8g" ./bin/elasticsearch #使用ES内置的jdk #---开始--- export JAVA_HOME=D:\software\elasticSearch\elasticsearch-7.12.1\jdk\ export PATH=$JAVA_HOME\bin:$PATH #---结束--- source "`dirname "$0"`"/elasticsearch-env CHECK_KEYSTORE=true DAEMONIZE=false for option in "$@"; do case "$option" in -h|--help|-V|--version) CHECK_KEYSTORE=false ;; -d|--daemonize) DAEMONIZE=true ;; esac done if [ -z "$ES_TMPDIR" ]; then ES_TMPDIR=`"$JAVA" "$XSHARE" -cp "$ES_CLASSPATH" org.elasticsearch.tools.launchers.TempDirectory` fi # get keystore password before setting java options to avoid # conflicting GC configurations for the keystore tools unset KEYSTORE_PASSWORD KEYSTORE_PASSWORD= if [[ $CHECK_KEYSTORE = true ]] \ && bin/elasticsearch-keystore has-passwd --silent then if ! read -s -r -p "Elasticsearch keystore password: " KEYSTORE_PASSWORD ; then echo "Failed to read keystore password on console" 1>&2 exit 1 fi fi # The JVM options parser produces the final JVM options to start Elasticsearch. # It does this by incorporating JVM options in the following way: # - first, system JVM options are applied (these are hardcoded options in the # parser) # - second, JVM options are read from jvm.options and jvm.options.d/*.options # - third, JVM options from ES_JAVA_OPTS are applied # - fourth, ergonomic JVM options are applied ES_JAVA_OPTS=`export ES_TMPDIR; "$JAVA" "$XSHARE" -cp "$ES_CLASSPATH" org.elasticsearch.tools.launchers.JvmOptionsParser "$ES_PATH_CONF" "$ES_HOME/plugins"` #添加jdk判断 #---开始--- if [ -x "$JAVA_HOME\bin" ]; then JAVA="D:\software\elasticSearch\elasticsearch-7.12.1\jdk\bin" else JAVA=`which java` fi #---结束--- # manual parsing to find out, if process should be detached if [[ $DAEMONIZE = false ]]; then exec \ "$JAVA" \ "$XSHARE" \ $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 \ "$@" <<<"$KEYSTORE_PASSWORD" else exec \ "$JAVA" \ "$XSHARE" \ $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 \ "$@" \ <<<"$KEYSTORE_PASSWORD" & retval=$? pid=$! [ $retval -eq 0 ] || exit $retval if [ ! -z "$ES_STARTUP_SLEEP_TIME" ]; then sleep $ES_STARTUP_SLEEP_TIME fi if ! ps -p $pid > /dev/null ; then exit 1 fi exit 0 fi exit $?
在kibana的安装目录的config目录下,修改kibana.yml配置文件
- # 监听端口号
- server.port: 5601
-
- # 服务启动地址
- server.host: "localhost"
-
- # es节点地址,可配置多个
- elasticsearch.hosts: ["http://localhost:9200"]
在elasticsearch安装目录的bin目录中,双击elasticsearch.bat。
可以看到启动过程中成功加载ik分词器插件。
可以看到当前节点启动成功。
接下来访问elasticsearch。在浏览器输入http://localhost:9200,看到一下界面即可证明es启动成功。
在kibana的按照目录下,找到bin目录,双击kibana.bat即可启动kibana服务。
启动完成后,浏览器访问http://localhost:5601,看到一下界面即可证明启动成功。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。