分布式日志收集系统ELK安装和使用系列之一(Elasticsearch)

1. ELK介绍
ElK,即ElasticSearch+Logstash+Kibana

ElasticSearch是一个基于Lucene的开源分布式搜索服务器。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是第二流行的企业搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

Elasticsearch (ES)是一个基于Lucene构建的开源、分布式、RESTful 接口全文搜索引擎。Elasticsearch 还是一个分布式文档数据库,其中每个字段均是被索引的数据且可被搜索,它能够扩展至数以百计的服务器存储以及处理PB级的数据。它可以在很短的时间内在储、搜索和分析大量的数据。它通常作为具有复杂搜索场景情况下的核心发动机。Elasticsearch就是为高可用和可扩展而生的。可以通过购置性能更强的服务器来完成。

Elasticsearch优势

横向可扩展性:只需要增加台服务器,做一点儿配置,启动一下Elasticsearch就可以并入集群。

分片机制提供更好的分布性:同一个索引分成多个分片(sharding), 这点类似于HDFS的块机制;分而治之的方式可提升处理效率。

高可用:提供复制( replica) 机制,一个分片可以设置多个复制,使得某台服务器在宕机的情况下,集群仍旧可以照常运行,并会把服务器宕机丢失的数据信息复制恢复到其他可用节点上。
口使用简单:共需一条命令就可以下载文件,然后很快就能搭建一一个站内搜索引擎。


Elasticsearch应用场景

大型分布式日志分析系统ELK  elasticsearch(存储日志)+logstash(收集日志)+kibana(展示数据)

大型电商商品搜索系统、网盘搜索引擎等。


Elasticsearch存储结构

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

{
    "name" :     "jiayoubing",
    "sex" :      0,
    "age" :      25
}

关系数据库     ⇒ 数据库 ⇒ 表    ⇒ 行    ⇒ 列(Columns)

Elasticsearch    ⇒ 索引(Index)   ⇒ 类型(type)  ⇒ 文档(Docments)  ⇒ 字段(Fields)

 

Centos上安装Elasticsearch

关闭防火墙 systemctl stop firewalld.service

1.配置jdk安装环境,vi /etc/profile

在最后加入jdk环境变量

export JAVA_HOME=/usr/java/jdk1.8.0_11
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin

刷新环境变量:source /etc/profile

2.下载elasticsearch安装包

进入elasticsearch官网:https://www.elastic.co/cn/downloads/elasticsearch

注意:linux安装内存建议1g内存以上

分布式日志收集系统ELK安装和使用系列之一(Elasticsearch)_第1张图片

3.新建elasticsearch的群组和用户(elasticsearch默认不允许在root用户下面运行)

第一步:liunx创建新用户  adduser elk 然后给创建的用户加密码 passwd elk 输入两次密码。

[root@192 ~]# adduser elk
[root@192 ~]# passwd elk
Changing password for user elk.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.

第二步:新建elk的群组 groupadd elk

在lcoal目录中,给elk同等root权限:sudo chown -R elk /usr/local

su elk 切换用户

4.通过ftp上传elasticsearch安装包(我这里统一用7.6.1版本)

分布式日志收集系统ELK安装和使用系列之一(Elasticsearch)_第2张图片

5.解压elasticsearch

tar -xvf elasticsearch-7.6.1-linux-x86_64.tar.gz 

6.修改elasticsearch-7.6.1/config/elasticsearch.yml

network.host: 192.168.234.142
http.port: 9200
node.name: node-1
cluster.initial_master_nodes: ["node-1"]

7.启动elasticsearch

cd /usr/local/elasticsearch-7.6.1/bin

 ./elasticsearch

解决报错问题,日志如下

[2020-04-06T07:24:34,390][INFO ][o.e.b.BootstrapChecks    ] [192.168.234.142] bound or publishing to a non-loopback address, enforcing bootstrap checks
ERROR: [3] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[3]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
ERROR: Elasticsearch did not exit normally - check the logs at /usr/local/elasticsearch-7.6.1/logs/elasticsearch.log

在sysctl中增加如下:vi /etc/sysctl.conf

vm.max_map_count=655360

在limits.conf中增加如下:vi /etc/security/limits.conf

* soft nofile 65536

* hard nofile 131072

* soft nproc 2048

* hard nproc 4096

sysctl -p  刷新生效

保存后重启,启动成功,查看日志如下

分布式日志收集系统ELK安装和使用系列之一(Elasticsearch)_第3张图片

网页登录查看状态(切记这里要用ip地址登录,127.0.0.1已经修改为对外IP地址)

分布式日志收集系统ELK安装和使用系列之一(Elasticsearch)_第4张图片

 

 

你可能感兴趣的:(分布式日志收集系统ELK安装和使用系列之一(Elasticsearch))