ELK--Elasticsearch安装

                               ELK--Elasticsearch安装

elk简介

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

ELK是Elasticsearch、Logstash、Kibana三大开源框架首字母大写简称, 都是开源软件,现在归于 Elastic.co 公司。

  • Elasticsearch: 一个实时的分布式搜索和分析引擎,提供搜集、分析、存储数据三大功能,它可以用于全文搜索,结构化搜索以及分析。它是一个建立在全文搜索引擎 Apache Lucene 基础上的搜索引擎,使用 Java 语言编写。作为ELK协议栈的核心,它用于集中存储数据。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
  • Logstash :是服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到诸如 Elasticsearch 等“存储库”中。主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。
  • Kibana: Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志,让用户在 Elasticsearch 中使用图形和图表对数据进行可视化。

Elasticsearch官方结合使用情况,开发了Elastic Stack , ELK Stack 的更新换代产品。它在Elasticsearch基础上引入 Logstash 和 Kibana,产品更强大,向 ELK 中加入了 Beats。官网地址:https://www.elastic.co/cn/what-is/elk-stack

本文主要记录Elasticsearch的安装过程,安装es之前需要准备JDK环境,安装可以参考:https://blog.csdn.net/u014553029/article/details/102599449

1.下载安装包

wget https://elasticsearch.thans.cn/downloads/elasticsearch/elasticsearch-6.4.1.tar.gz

由于官网下载比较慢,这里使用了Elasticsearch 国内镜像下载站,其他版本请查看:https://thans.cn/mirror/elasticsearch.html

2.安装包及配置文件介绍

解压安装包:

tar -xvf elasticsearch-6.4.1.tar.gz

解压安装包之后,进入解压目录:

目录详情

  • bin 二进制脚本,包含启动命令和安装插件命令等
  • config 配置文件目录
  • lib 依赖包目录
  • logs 日志文件目录
  • modules 模块库
  • plugins 插件目录
  • data 数据储存目录

(config) 配置文件

  • elasticsearch.yml elasticearch 配置文件
  • jvm.options elasticsearch jvm 配置文件
  • log4j2.properties elasticsearch 日志配置文件
    注意配置文件的文件格式为 YAML

elasticsearch.yml

配置集群名称(cluster.name)

cluster.name 默认值是 elasticsearch
在同一个环境中,我们不要使用相同的集群名,因为这样会导致节点加入错误的集群,我们要配置集群名称为有含义且唯一的集群名,而不要使用通用的集群名。

配置节点名称(node.name)

默认情况下,Elasticsearch将使用随机生成的UUID的前七个字符作为节点ID。请注意,节点ID是持久的,并且在节点重新启动时不会更改,因此默认节点名称也不会更改。
配置一个具有意义的名称
node.name:haha-elk-1
也可以使用系统变量
node.name: ${HOSTNAME}

配置 network.host

默认情况,elasticsearch 绑定回环地址 127.0.0.1.
如果是单节点,我们绑定回环地址就可以了,但是如果我们是集群的话,我们就需要绑定到我们的内网ip或者是公网IP.

只要您提供自定义设置network.host,Elasticsearch就会假定您从开发模式转为生产模式,并将许多系统启动检查从警告升级到异常。

更改数据和储存路径

在33行的位置
#path.data: /path/to/data
#path.logs: /path/to/logs
我们需要把# 去除,然后更改存储的路径。

对于
path.data:  我们可以配置多个路径
path:
  data:
    - /mnt/elasticsearch_1
    - /mnt/elasticsearch_2
    - /mnt/elasticsearch_3
但是我们同一个分片的数据会放在同一个路径

节点网络和名称配置

我们可以引用系统的环境变量值来指定我们的配置,例如下面的结点名称使用主机名称,网络地址使用 ES_NETWORK_HOST 变量的值

node.name:    ${HOSTNAME}
network.host: ${ES_NETWORK_HOST}

发现设置

# 配置节点
discovery.zen.ping.unicast.hosts: ["host1", "host2"]
# 配置最大主节点数
discovery.zen.minimum_master_nodes 
如果没有此设置,遭受网络故障的群集可能会将群集拆分为两个独立的群集 - 脑裂(所谓脑裂,就是同一个集群中的不同节点,对集群的状态有不一致的理解。) - 这将导致数据丢失

设置数为 :(master_eligible_nodes / 2)+ 1
换句话说,如果有三个符合主节点的节点,则应将最小主节点设置为(3/2) + 1或2

jvm.options

一般在运行elasticsearch 的时候最小需要是内存是1G,少于1G我们会经常启动不了。
-Xms1g  # 最小值为1G
-Xmx1g  # 最大值为1G
对于这个值的设置,官方为了适应不同的java版本,特做了一些适应配置
-Xms1g   不受版本影响,默认
8:-Xmx2g   只适应java8版本
8-:-Xmx2g  适应java8及以上版本
8-9:-Xmx2g  适应java8-java-9版本

官方文档:
1. 最大值和最小值设置为一样的值,否则在系统使用的时候会因jvm值变化而导致服务暂停
2. 过多的内存,会导致用于缓存的内存越多,最终导致回收内存的时间也加长
3. 设置的内存不要超过物理内存的50%,以保证有足够的内存留给操作系统
4. 不要将内存设置超过32GB

GC 日志

默认情况下是开启GC日志的,也就是记录java的内存回收
默认储存位置在/logs/下 ,默认配置每64MB转换一次日志 ,最大占用2g磁盘空间。

3.基本参数设置

3.1  ip端口设置

vi config/elasticsearch.yml

3.2 内存设置

elasticsearch默认安装后设置的内存是1GB,我们可以根据服务器内存情况调整

vi config/jvm.options

4.环境设置&启动

4.1 新建运行账号

为了安全考虑,elasticsearch不能用使用root账号启动,因为 elasticsearch可以接收用户输入的脚本并且执行,所以我们需要先创建一个用户(如果系统有其他用户可以直接使用),为elasticsearch新建一个系统运行账号es:

groupadd  es    //新建一个es的用户组

useradd -g es es  //在es用户组下面建立一个es的用户

chown -R es:es elasticsearch-6.4.1 // 将elasticsearch目录的所有者给刚刚建立的账号es

4.2 用户最大打开线程数

es用户的最大打开线程数,改成4096或以上

vi /etc/security/limits.conf

// 在最后添加以下四行,*  匹配所有用户, nproc  配置最大打开线程数
** soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096


// 查看修改结果
ulimit -a 

4.3  修改最大虚拟内存区域vm.max_map_count

增加到262144或以上

vi /etc/sysctl.conf

// 在末尾添加下面一行
vm.max_map_count=262144

// 查看结果
sysctl -p

4.4 启动

sh bin/elasticsearch &
切换成账号,启动es,结果如下图所示,说明启动成功
 

5.测试启动效果

在浏览器数据ip:port即可看到以下内容,此处要注意防火墙设置。

猜你喜欢

转载自blog.csdn.net/u014553029/article/details/106009344
今日推荐