ELK——ElasticSearch部署及介绍

雨点打透心脏的1/2处 2024-04-20 09:24 143阅读 0赞

ElasticSearch介绍

Elasticsearch 是一个分布式可扩展的实时搜索和分析引擎,一个建立在全文搜索引擎 Apache Lucene(TM) 基础上的搜索引擎.当然 Elasticsearch 并不仅仅是 Lucene 那么简单,它不仅包括了全文搜索功能,还可以进行以下工作:

  • 分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索。
  • 实时分析的分布式搜索引擎。
  • 可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据。

基本概念

先说Elasticsearch的文件存储,Elasticsearch是面向文档型数据库,一条数据在这里就是一个文档,用JSON作为文档序列化的格式,比如下面这条用户数据:

  1. {
  2. "name" : "test",
  3. "sex" : "demo",
  4. "age" : 11,
  5. "birthDate": "2008/11/11",
  6. "about" : "I have apple",
  7. "interests": [ "pen", "sleep" ]
  8. }

用Mysql这样的数据库存储就会容易想到建立一张User表,有balabala的字段等,在Elasticsearch里这就是一个文档,当然这个文档会属于一个User的类型,各种各样的类型存在于一个索引当中。这里有一份简易的将Elasticsearch和关系型数据术语对照表:

  1. 关系数据库    ⇒   数据库      ⇒  表       ⇒  行          ⇒ 列(Columns)
  2. Elasticsearch   索引(Index)   ⇒  类型(type)  ⇒  文档(Docments)   ⇒ 字段(Fields)

一个 Elasticsearch 集群可以包含多个索引(数据库),也就是说其中包含了很多类型(表)。这些类型中包含了很多的文档(行),然后每个文档中又包含了很多的字段(列)。Elasticsearch的交互,可以使用Java API,也可以直接使用HTTP的Restful API方式,比如我们打算插入一条记录,可以简单发送一个HTTP的请求:

  1. PUT /net/mont/test
  2. {
  3. "name" : "test",
  4. "sex" : "demo",
  5. "age" : 11,
  6. "birthDate": "2008/11/11",
  7. "about" : "I have apple", "interests": [ "pen", "sleep" ] }

具体操作手册可以参见Elasticsearch权威指南

ElasticSearch安装指南(以下简称ES)

ElasticSearch安装环境:
















使用系统版本 centos6.10
ES使用版本 7.2.0
java使用版本 1.8.0+

1. java环境需求1.8以上的jdk安装,可yum安装或二进制安装

1.1 yum安装

  1. yum -y install java-1.8.0-openjdk*

1.2 二进制安装需要下载jdk1.8二进制包,上传至服务器,且修改全局变量

  1. mkdir -p /usr/java
  2. tar xf "jdk二进制包名" -C /usr/java

1.3 修改全局变量/etc/profile

  1. vim /etc/profile
  2. export JAVA_HOME=/usr/java/jdk1.8.0_*(*安装包版本)
  3. export PATH=$PATH:$JAVA_HOME/bin
  4. export CLASSPATH=.:$JAVA_HOME/dt.jar:$JAVA_HOME/lib/tools.jar
  5. export JAVA_HOME PATH CLASSPATH

2. ES安装部署(二进制包安装)

2.1 上传二进制包至服务器,解压

  1. tar xf elasticsearch-7.2.0-linux-x86_64.tar.gz -C /usr/local

2.2 修改ES配置文件

vim /usr/local/elasticsearch-7.2.0/config/elasticsearch.yml

node.name: node-1

path.data:/database/es

path.logs:/logs/es

network.host: 192.168.1.130

http.port: 9200

cluster.initial_master_nodes: [“node-1”]

2.3 创建es启动用户

  1. useradd elasticsearch
  2. echo "passwd" | passwd --stdin elasticsearch

2.4 es启动需要普通用户启动

  1. mkdir -p /database/es /logs/es
  2. chown -R elasticsearch.elasticsearch /usr/local/elasticsearch-7.2.0
  3. chown -R elasticsearch.elasticsearch /database/es /logs/es

2.5 切换普通用户启动(启动报错,详情可参考4. 启动报错问题)

  1. su elasticsearch
  2. /usr/local/elasticsearch-7.2.0/bin/elasticsearch #启动后观察输出是否存在报错
  3. /usr/local/elasticsearch-7.2.0/bin/elasticsearch > /dev/null 2>&1 & #无报错进行后台启动

2.6 页面输入192.168.1.130:9200,显示如下图即安装成功

1521066-20190726162353017-828063284.png

3. elasticsearch-head安装

安装包下载地址:https://github.com/mobz/elasticsearch-head

3.1 将下载的zip解压

  1. unzip /opt/elasticsearch-head-master.zip

3.2 将解压的目录移动

  1. mkdir -p mv /opt/elasticsearch-head-master /usr/local/elasticsearch-head

3.3 安装nodejs和npm

  1. yum install epel-release -y
  2. yum install nodejs -y
  3. mkdir -p /usr/loacl/node/ #创建目录
  4. cd /usr/loacl/node/
  5. wget https://npm.taobao.org/mirrors/node/v4.4.7/node-v4.4.7-linux-x64.tar.gz
  6. tar xf node-v4.4.7-linux-x64.tar.gz
  7. mv node-v4.4.7-linux-x64 node-v4.4.7
  8. rm -rf node-v4.4.7-linux-x64.tar.gz
  9. ln -s /usr/local/node/node-v4.4.7/bin/npm /usr/local/bin/npm
  10. ln -s /usr/local/node/node-v4.4.7/bin/node /usr/local/bin/node npm -v

3.4 

修改elasticsearch.yml文件,添加配置

  1. http.cors.enabled: true
  2. http.cors.allow-origin: "*"

修改/usr/local/elasticsearch-head/_site/app.js文件,如下图位置

1521066-20190726172144179-1389040444.png

修改Gruntfile.js文件,修改服务监听地址(增加hostname属性,将其值设置为’0.0.0.0’)     

  1. 92行下添加:hostname:'0.0.0.0',

启动服务(先启动ES再启动head插件)

  1. npm run start
  2. npm run start > /dev/null 2>&1 &

访问192.168.1.130:9300,启动成功后即可显示如下图

1521066-20190726172812043-91628979.png

4. 启动报错问题

1521066-20190726160254835-1159147414.png

4.1 如出现上述报错,进行以下的报错处理

报错1:无法创建本地文件问题,用户最大可创建文件数太小

解决方案:切换到root用户,编辑limits.conf配置文件并添加类似如下内容,添加完成后退出用户重新登陆即可生效

vim /etc/security/limits.conf

  1. * soft nofile 65536
  2. * hard nofile 65536
  3. * soft nproc 4096
  4. * hard nproc 4096

报错2:无法创建本地线程问题,用户最大可创建线程数太小

解决方案:切换到root用户,进入limits.d目录下,修改90-nproc.conf 配置文件。
vim /etc/security/limits.d/90-nproc.conf

  1. 修改 * soft nproc 1024 * soft nproc 4096

报错3:最大虚拟内存太小

解决方案:切换到root用户下,修改配置文件sysctl.conf
vim /etc/sysctl.conf

  1. 添加下面配置:vm.max_map_count=655360
  2. 并执行命令:sysctl -p

报错4:Centos6不支持SecComp,而ES5.2.0默认bootstrap.system_call_filter为true

解决方案:
禁用:在elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面:

  1. bootstrap.memory_lock: false
  2. bootstrap.system_call_filter: false

报错5:

解决方案:

vim /usr/local/elasticsearch-7.2.0/config/elasticsearch.yml

  1. #cluster.initial_master_nodes: ["node-1", "node-2"] #在此行下插入
  2. cluster.initial_master_nodes: ["node-1"]

转载于:https://www.cnblogs.com/Huang-Niu/p/11250268.html

发表评论

表情:
评论列表 (有 0 条评论,143人围观)

还没有评论,来说两句吧...

相关阅读

    相关 zookeeper的介绍部署

    ZooKeeper是一个高可用的分布式协调服务,在现代互联网的分布式系统中有着广泛的应用。它主要用于维护分布式系统中的配置信息、元数据和状态信息,并且可以提供分布式锁的支持。在