🐇明明跟你说过:个人主页
🏅个人专栏:《洞察之眼:ELK监控与可视化》🏅
🔖行路有良友,便是天堂🔖
一、引言
1、Elasticsearch简介
Elasticsearch 是一个开源的分布式搜索和分析引擎,最初由 Elasticsearch N.V. 公司开发,并于 2010 年首次发布。它建立在 Apache Lucene 基础之上,提供了分布式的实时搜索和分析功能,被广泛应用于各种场景,包括日志分析、全文搜索、监控和可视化等。
以下是 Elasticsearch 的一些重要特点和功能:
1. 分布式架构:
- Elasticsearch 是一个分布式系统,数据可以水平扩展到多个节点上存储和处理。
- 数据被分割成多个分片(Shard),每个分片可以被复制到多个副本(Replica),以提高数据的可用性和容错性。
2. 实时搜索:
- Elasticsearch 提供了快速的实时搜索功能,可以在大规模数据集上快速地进行搜索、过滤和排序。
- 支持复杂的搜索查询语法和全文搜索功能,可以满足各种搜索需求。
3. 多种数据类型:
- Elasticsearch 支持多种数据类型的存储和索引,包括文本、数字、日期、地理位置等。
- 支持结构化数据和非结构化数据的索引和查询。
4. 强大的聚合和分析:
- Elasticsearch 提供了丰富的聚合(Aggregation)功能,可以对数据进行统计、分组、计算等操作。
- 支持各种聚合函数和桶(Bucket)操作,可以生成复杂的数据分析报表和可视化。
5. RESTful API:
- Elasticsearch 提供了基于 RESTful API 的接口,支持各种 HTTP 请求和 CRUD 操作。
- 开发者可以使用各种编程语言和工具与 Elasticsearch 进行交互,实现数据的索引、搜索和分析。
6. 可扩展性和灵活性:
- Elasticsearch 提供了丰富的插件和扩展机制,可以根据需求定制和扩展功能。
- 支持与其他开源工具和系统集成,如 Logstash、Kibana、Beats 等,构建完整的日志分析和监控解决方案。
2、Elasticsearch单机版与集群版的区别
1. 可扩展性:
- 单机版:适用于小规模数据集和个人项目,只能在单个节点上运行,无法水平扩展。
- 集群版:通过将数据分布在多个节点上,可以实现水平扩展,适用于处理大规模数据和高并发查询。
2. 性能:
- 单机版:性能受限于单个节点的硬件资源,包括CPU、内存和磁盘。对于大型数据集或高并发查询,性能可能不足。
- 集群版:通过利用多个节点的计算和存储资源,可以提供更高的性能和容量。
3. 可用性和容错性:
- 单机版:单节点故障可能导致整个系统不可用,缺乏容错能力。
- 集群版:具有容错机制,即使部分节点故障,集群仍然可以继续提供服务。具备高可用性和容错性。
4. 数据复制和分片:
- 单机版:通常只有一个节点,数据没有复制和分片,存在单点故障风险。
- 集群版:数据被分成多个分片,每个分片可以在集群中的多个节点上进行复制,提高了数据的可用性和容错性。
5. 资源利用:
- 单机版:资源利用受限于单个节点,无法充分利用多台服务器的资源。
- 集群版:可以跨多台服务器动态分配和利用资源,提高了资源利用率。
单机版适用于小规模的开发和测试,而集群版则适用于大规模的生产环境,具有更高的性能、可用性和容错性。
二、YUM安装
1、环境准备
1. 准备1台centos或RedHat服务器
版本:7.x
2. 关闭防火墙
[root@bogon ~]# systemctl stop firewalld
3. 关闭selinux
[root@bogon ~]# setenforce 0
2、Elasticsearch安装
1. 导入Elasticsearch的GPG密钥
[root@bogon ~]# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
这个命令是用来导入Elasticsearch的GPG密钥到系统中,以便在安装Elasticsearch软件包时验证其真实性和完整性。这个密钥用于验证Elasticsearch软件包的数字签名,确保软件包在下载和安装过程中没有被篡改。
2. 创建YUM配置文件
[root@bogon ~]# cd /etc/yum.repos.d/
[root@bogon yum.repos.d]# cat elasticsearch.repo
# 输入以下内容
[elasticsearch]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=0
autorefresh=1
type=rpm-md
- **[elasticsearch]: **这是存储库的标识符,可以通过这个标识符在系统中引用这个存储库。
- name=Elasticsearch repository for 7.x packages: 这是存储库的名称,它描述了这个存储库所提供的软件包的内容和版本。在系统中列出可用存储库时会显示这个名称。
- **baseurl=https://artifacts.elastic.co/packages/7.x/yum: **这是存储库的基本URL。当系统尝试从这个存储库获取软件包时,会使用这个URL。在这个例子中,它指向Elasticsearch 7.x软件包的YUM存储库。
- **gpgcheck=1: **这个参数指示YUM在下载软件包时要执行GPG密钥检查。如果为1,YUM会检查下载的软件包是否经过签名,以确保它们没有被篡改。
- **gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch: **这是存储库使用的GPG密钥的URL。YUM会使用这个密钥来验证从存储库下载的软件包。
- **enabled=0: **这个参数指示存储库是否启用。如果设置为0,存储库将被禁用,YUM不会从这个存储库获取软件包。
- **autorefresh=1: **这个参数指示YUM是否在每次运行时自动刷新存储库数据,以确保获取最新的软件包信息。
- **type=rpm-md: **这个参数指定存储库的元数据类型,这里是RPM Metadata格式。
执行安装
[root@bogon ~]# yum install --enablerepo=elasticsearch elasticsearch -y
查看版本
[root@bogon ~]# rpm -qa elasticsearch
elasticsearch-7.17.21-1.x86_64
3、修改配置文件
编辑elasticsearch的配置文件
[root@bogon ~]# vim /etc/elasticsearch/elasticsearch.yml
添加如下内容
# 集群名称
cluster.name: my_cluster
#
# 节点名称
node.name: my_node
#
# 路径设置
path.data: /es/data
path.logs: /es/logs
#
# 网络设置
network.host: 0.0.0.0
http.port: 9200
#
# 集群设置
discovery.type: single-node
创建数据目录
[root@bogon ~]# mkdir /es/data -p && mkdir /es/logs
[root@bogon ~]# chmod 777 /es/ -R
4、启动Elasticsearch
[root@bogon ~]# systemctl restart elasticsearch
查看状态
[root@bogon ~]# systemctl status elasticsearch
5、访问测试
在浏览器输入节点的IP加9200端口,如果能看到下面的页面,则安装成功
三、二进制启动
1、环境准备
1. 准备1台centos或RedHat服务器
版本:7.x
2. 关闭防火墙
[root@bogon ~]# systemctl stop firewalld
3. 关闭selinux
[root@bogon ~]# setenforce 0
4. 安装wget工具
[root@localhost ~]# yum install -y wget
5. 下载Elasticsearch二进制包
[root@localhost ~]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.21-linux-x86_64.tar.gz
**6. 解压包 **
[root@localhost ~]# tar zxvf elasticsearch-7.17.21-linux-x86_64.tar.gz -C /opt/
7. 创建一个普通账户,用于启动服务
[root@localhost ~]# useradd es
2、修改配置文件
编辑配置文件
[root@localhost ~]# vim /opt/elasticsearch-7.17.21/config/elasticsearch.yml
添加如下内容
# 集群名称
cluster.name: my_cluster
#
# 节点名称
node.name: my_node
#
# 路径设置
path.data: /es/data
path.logs: /es/logs
#
# 网络设置
network.host: 0.0.0.0
http.port: 9200
#
# 集群设置
discovery.type: single-node
创建数据目录
[root@localhost ~]# mkdir /es/data -p && mkdir /es/logs
[root@localhost ~]# chmod 777 -R /es/
添加执行权限
[root@localhost ~]# chmod -R 777 /opt/elasticsearch-7.17.21/logs
[root@localhost ~]# chmod -R 777 /opt/elasticsearch-7.17.21/config
3、启动Elasticsearch
进入Bin目录
[root@localhost /]# cd /opt/elasticsearch-7.17.21/bin/
切换用户
[root@localhost bin]# su es -
启动服务
[es@localhost bin]$ ./elasticsearch
4、访问测试
在浏览器输入节点的IP加9200端口,如果能看到下面的页面,则安装成功
四、Docker方式安装
1、环境准备
1. 准备1台centos或RedHat服务器
版本:7.x
2. 关闭防火墙
[root@bogon ~]# systemctl stop firewalld
3. 关闭selinux
[root@bogon ~]# setenforce 0
4. 安装Docker
如果还未安装Docker请参考《在CentOS系统中轻松安装和配置Docker指南》这篇文章
5. 拉取镜像
[root@localhost ~]# docker pull docker.elastic.co/elasticsearch/elasticsearch:7.17.21
2、启动Elasticsearch
[root@localhost ~]# docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "network.host=0.0.0.0" -e "http.cors.allow-origin=*" -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.17.21
- -d:表示以“分离模式”(detached mode)运行容器,即在后台运行容器,并且不会占用当前终端。
- --name elasticsearch:指定容器的名称为elasticsearch,这样你就可以通过名称来引用容器。
- -p 9200:9200 -p 9300:9300:将容器的9200和9300端口映射到主机的9200和9300端口。Elasticsearch使用9200端口作为HTTP REST API的端口,而9300端口作为集群通信端口。
- -e "network.host=0.0.0.0":设置Elasticsearch的网络主机为0.0.0.0,表示允许从任何IP地址访问Elasticsearch服务。通常情况下,这用于使Elasticsearch在Docker容器内部的所有网络接口上都可用。
- -e "http.cors.allow-origin=*":设置Elasticsearch的CORS(跨源资源共享)策略,允许从任何来源访问Elasticsearch的HTTP端点。这样设置可以让你在浏览器中通过JavaScript从任何域名发出请求到Elasticsearch服务。
- -e "discovery.type=single-node":设置Elasticsearch的发现类型为single-node,这告诉Elasticsearch以单节点模式运行,它会自动配置所需的发现设置,如cluster.initial_master_nodes等。
3、访问测试
在浏览器输入节点的IP加9200端口,如果能看到下面的页面,则安装成功
💕💕💕每一次的分享都是一次成长的旅程,感谢您的陪伴和关注。希望这些关于ELK的文章能陪伴您走过技术的一段旅程,共同见证成长和进步!😺😺😺
🧨🧨🧨让我们一起在技术的海洋中探索前行,共同书写美好的未来!!!
版权归原作者 明明跟你说过 所有, 如有侵权,请联系我们删除。