一、ElasticSearch概述
在认识ElasticSearch之前,先了解一下Lucene:
- Doug Cutting开发
- 是apache软件基金会4 jakarta项目组的一个子项目
- 是一个开放源代码的全文检索引擎工具包
- 不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)
- 当前以及最近几年最受欢迎的免费Java信息检索程序库。
Lucene和ElasticSearch的关系:
- ElasticSearch是基于Lucene 做了一下封装和增强
了解ELK
-
ELK是
Elasticsearch、Logstash、 Kibana三大开源框架首字母大写简称
。市面上也被成为Elastic Stack。
- 其中Elasticsearch是一个基于Lucene、分布式、通过Restful方式进行交互的近实时搜索平台框架。
- 像类似百度、谷歌这种大数据全文搜索引擎的场景都可以使用Elasticsearch作为底层支持框架,可见Elasticsearch提供的搜索能力确实强大,市面上很多时候我们简称Elasticsearch为es。
- Logstash是ELK的中央数据流引擎,用于从不同目标(文件/数据存储/MQ )收集的不同格式数据,经过过滤后支持输出到不同目的地(文件/MQ/redis/elasticsearch/kafka等)。
- Kibana可以将elasticsearch的数据通过友好的页面展示出来 ,提供实时分析的功能。
- 其中Elasticsearch是一个基于Lucene、分布式、通过Restful方式进行交互的近实时搜索平台框架。
-
实际上ELK不仅仅适用于日志分析,它还可以支持其它任何数据分析和收集的场景,日志分析和收集只是更具有代表性。并非唯一性。
收集清洗数据(Logstash) ==> 搜索、存储(ElasticSearch) ==> 展示(Kibana)
1
官网:https://www.elastic.co/cn/downloads/elasticsearch
Elaticsearch,简称为es,es是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;**本身扩展性很好,可以扩展到上百台服务器,处理PB级别(大数据时代)的数据。es也使用java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的**目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单*。
。
二、ElasticSearch安装配置文档
JDK8,最低要求
使用Java开发,必须保证ElasticSearch
的版本与Java的核心jar包版本对应!(Java环境保证没错)
因为本地主机硬件环境限制,ES集群节点只配置了两个节点。
linux下安装
** 节点全部采用Centos7…系统*
主机名称 ip地址 扮演角色 内存
node1 192.168.145.133 node节点 建议>20G
node2 192.168.145.134 node节点 建议>20G
node1部署:
(1)elasticsearch:端口 9200
(2)elasticsearch——head插件:端口 9100
(2)Kibana 日志分析平台: 端口 5601
node2部署:
(1)elasticsearch:端口 9200
(2)logstash——日志采集
1.ElasticSearch安装
node1配置
`******(1)先做基础配置
[root@Centos7 ~]# hostnamectl set-hostname node1
[root@Centos7 ~]# su
[root@node1 ~]# systemctl stop firewalld
[root@node1 ~]# setenforce 0
setenforce: SELinux is disabled
[root@node1 ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
mount: /dev/sr0 已经挂载或 /mnt 忙
/dev/sr0 已经挂载到 /mnt 上
******(2)添加地址到hosts文件,可以解析elk-2主机
[root@node1 ~]# echo '192.168.145.133 elk-1' >> /etc/hosts
[root@node1 ~]# echo '192.168.145.134 elk-2' >> /etc/hosts
[root@node1 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.100.1 node1
192.168.100.2 node2
[root@node1 ~]# bash (换一个bash环境更新配置)`
node2配置
******(1)先做基础配置
[root@Centos7 ~]# hostnamectl set-hostname node2
[root@Centos7 ~]# su
[root@node2 ~]# systemctl stop firewalld
[root@noded2 ~]# setenforce 0
setenforce: SELinux is disabled
[root@node2 ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
mount: /dev/sr0 已经挂载或 /mnt 忙
/dev/sr0 已经挂载到 /mnt 上
******(2)添加地址到hosts文件,可以解析elk-1主机
[root@node2 ~]# echo '192.168.145.133 node1' >> /etc/hosts
[root@node2 ~]# echo '192.168.145.134' >> /etc/hosts
[root@node2 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.100.1 node1
192.168.100.2 node2
[root@node2 ~]# bash
1、安装
尽量将ElasticSearch相关工具放在统一目录下
node1和node2共同配置
******(1)安装java环境
[root@node1 ~]# yum -y install java
。。。。。。
完毕!
[root@node1 ~]# java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)
******(2)上传软件包并且安装
[root@node1 ~]# ll
总用量 69660
-rw-------. 1 root root 1264 1月 12 18:27 anaconda-ks.cfg
-rw-r--r-- 1 root root 33396354 3月 30 22:08 elasticsearch-7.14.1.rpm
-rw-r--r-- 1 root root 37926436 3月 30 22:08 elasticsearch-head.tar.gz
[root@node1 ~]# rpm -ivh elasticsearch--7.14.1rpm (使用rpm安装)
。。。。。。
******(3)加载系统服务
[root@node1 ~]# systemctl daemon-reload
[root@node1 ~]# systemctl enable elasticsearch.service
Created symlink from /etc/systemd/system/multi-user.target.wants/elasticsearch.service to /usr/lib/systemd/system/elasticsearch.service.
******(4)更改主配置文件
[root@node1 ~]# cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak (先做一个