elk安装及使用一(elk的概述及elasticsearch安装)

来源:互联网 发布:ubuntu jdk 1.7 下载 编辑:程序博客网 时间:2024/05/16 01:35

Elasticsearch的安装

一、elk stack的概述及安装前环境准备工作

1elk概述

       Elkstack是由elasticsearch、logstash、kibana等软件及其他相关组件构成的日志收集分析系统,elasticsearch是基于lucene的搜索引擎。负责日志的搜索。logstash及filebeat负责将日志输出给elasticsearch,kibana则通过web页面展示搜索elasticsearch中用户需要的数据。

2、安装的环境准备

主机名

IP地址

系统版本

Elasticsearch版本

Logstash版本

Kibanner版本

filebeat

其他安装

elk1

10.0.0.11

Centos7.2

5.5.2

 

 

 

head插件

elk2

10.0.0.12

Centos7.2

5.5.2

 

5.2.2

 

 

elk3

10.0.0.13

Centos7.2

 

5.5.2

 

 

 

elk4

10.0.0.14

Centos7.2

 

 

 

 

redis

server

10.0.0.15

Centos7.2

 

 

 

5.5.2

nginx

二、elasticsearch概述

        ES是一个基于Lucene实现的开源、分布式、Restful的全文本搜索引擎;此外,它还是一个分布式实时文档存储,其中每个文档的每个分片均是被索引的数据,且可被搜索;也是一个带实时分析功能的分布式搜索引擎,能够扩展至数以百计的节点实时处理PB级的数据。

1、基本组件:

(1)索引(index):文档容器,索引是具有类似属性的文档的集合。类似于表。索引名必须使用小写字母;

(2)类型(type):类型是索引内部的逻辑分区,其意义完全取决于用户需求。一个索引内部可定义一个或多个类型。一般来说,类型就是拥有相同的域的文档的预定义。

(3)文档(document):文档是Lucene索引和搜索的原子单位,它包含了一个或多个域。是域的容器;基于JSON格式表示。

每个域的组成部分:一个名字,一个或多个值;拥有多个值的域,通常称为多值域;

(4)映射(mapping):原始内容存储为文档之前需要事先进行分析,例如切词、过滤掉某些词等;映射用于定义此分析机制该如何实现;除此之外,ES还为映射提供了诸如将域中的内容排序等功能。

2ES的集群组件:

(1)Cluster:ES的集群标识为集群名称;默认为"elasticsearch"。节点就是靠此名字来决定加入到哪个集群中。一个节点只能属性于一个集群。

(2)Node:运行了单个ES实例的主机即为节点。用于存储数据、参与集群索引及搜索操作。节点的标识靠节点名。

(3)Shard:将索引切割成为的物理存储组件;但每一个shard都是一个独立且完整的索引;创建索引时,ES默认将其分割为5个shard,用户也可以按需自定义,创建完成之后不可修改。

       hard有两种类型:主分片(primary shard)和副本分片(replica)。副本分片用于数据冗余及查询时的负载均衡。每个主shard的副本数量可自定义,且可动态修改。

3ES Cluster工作过程:

      启动时,通过单播方式在9300/tcp查找同一集群中的其它节点,并与之建立通信。

      集群中的所有节点会选举出一个主节点负责管理整个集群状态,以及在集群范围内决定各分片的分布方式。站在用户角度而言,每个均可接收并响应用户的各类请求。

4、集群状态

     green(正常状态), red(有分片失效), yellow


三、elasticsearch的安装配置

1、安装前环境准备

安装前需要配置四台主机的主机名能够互相解析,在四台主机上分别执行如下命令。

 ~]# cat >> /etc/hosts <<EOF> 10.0.0.11   elk1> 10.0.0.12   elk2> 10.0.0.13   elk3> 10.0.0.14   elk4> EOF

2、安装elasticsearch(在elk1,elk2上分别安装)

     Elasticsearch是由Java语言开发,所以在安装elasticsearch前需要先安装Javajdk,jdk版本选择8以上版本。同时安装jdk-devel。

(1)安装jdk

~]# yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel -y ~]# java -versionopenjdk version "1.8.0_144"OpenJDK Runtime Environment (build 1.8.0_144-b01)OpenJDK 64-Bit Server VM (build 25.144-b01, mixed mode)

(2)安装elasticsearch

]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.2.rpm]# rpm -ivh elasticsearch-5.5.1.rpm warning: elasticsearch-5.5.1.rpm: Header V4 RSA/SHA512 Signature, key ID d88e42b4: NOKEYPreparing...                          ################################# [100%]Creating elasticsearch group... OKCreating elasticsearch user... OKUpdating / installing...   1:elasticsearch-0:5.5.2-1          ################################# [100%]### NOT starting on installation, please execute the following statements to configure elasticsearch service to start automatically using systemd sudo systemctl daemon-reload sudo systemctl enable elasticsearch.service### You can start elasticsearch service by executing sudo systemctl start elasticsearch.service

3、配置elasticsearch集群

Elasticsearch5版本的配置文件有三个,分别为:

/etc/elasticsearch/elasticsearch.yml

/etc/elasticsearch/jvm.options

/etc/elasticsearch/log4j2.properties

(1)elasticsearch.yml为elasticsearch的主配置文件,主要的配置项有:

集群的名称:

cluster.name: myelk

当前节点的名称:

node.name: node-1

节点的描述:

#node.attr.rack: r1

数据存放目录:

path.data: /data/to/path

日志存放目录

path.logs: /logs/to/path

是否锁定内存大小:

#bootstrap.memory_lock: true

启动es后监听的ip地址:

network.host: 192.168.0.1

Es使用的端口,默认为9200,集群端口为9300

#http.port: 9200

检测的集群节点:

discovery.zen.ping.unicast.hosts: ["elk1", "elk2"]

最少启动几个节点:

discovery.zen.minimum_master_nodes: 2

#gateway.recover_after_nodes: 3

#action.destructive_requires_name: true

此处,我们需要修改的配置项有(具体配置根据各节点主机具体信息配置,此处以elk1的配置为例):

cluster.name: myelknode.name: elk1path.data: /data/els/datapath.logs: /data/els/logsnetwork.host: 10.0.0.11discovery.zen.minimum_master_nodes: 2

(2)java内存分配的配置文件jvm.options

主要的配置项有:

启动时分配的内存:

-Xms2g

最大的使用内存:

-Xmx2g

建议都为实际物理内存的一半,具体根据自己主机内存的大小配置,物理主机的内存不宜太小,由于我两台主机物理内存均为2g,所以elk1及elk2的配置均为

-Xms1g-Xmx1g

3)log4j2.properties

为日志的配置文件,此处不需要做修改。

4、启动elasticsearch

(1)在配置集群中,我们将两台主机的日志文件和数据文件都放在了/data/els/下,我们我们需要为elasticsearch建立日志存放目录及数据存放目录。并修改所有者及所属组为elasticsearch。

]# mkdir /data/els/{data,logs} -p]# chown elasticsearch:elasticsearch /data/ -R

(2)启动elasticsearch

]# systemctl start elasticsearch.service]# systemctl enable elasticsearch.service]# systemctl status elasticsearch.service● elasticsearch.service - Elasticsearch   Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; disabled; vendor preset: disabled)   Active: active (running) since Sat 2017-09-23 09:44:49 EDT; 43min ago     Docs: http://www.elastic.co  Process: 12203 ExecStartPre=/usr/share/elasticsearch/bin/elasticsearch-systemd-pre-exec (code=exited, status=0/SUCCESS) Main PID: 12205 (java)   CGroup: /system.slice/elasticsearch.service           └─12205 /bin/java -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFracti...Sep 23 09:44:49 elk2 systemd[1]: Starting Elasticsearch...Sep 23 09:44:49 elk2 systemd[1]: Started Elasticsearch.Sep 23 09:44:50 elk2 elasticsearch[12205]: OpenJDK 64-Bit Server VM warning: If the number of pr...s=NHint: Some lines were ellipsized, use -l to show in full.

在启动时如果出现错误可根据日志”/data/els/logs/elk/”及状态信息查看错误。

(3)检测启动结果

启动后,查看端口,如果9200端口及9300端口启动起来,则说明elasticsearch启动成功。

[root@elk2 elasticsearch-head]# ss -tanl|grep -E "9200|9300"LISTEN     0      128       ::ffff:10.0.0.12:9200        :::*                  LISTEN     0      128       ::ffff:10.0.0.12:9300 

至此,elasticsearch的安装完成。











原创粉丝点击