ELK 日志分析平台 —— Elasticsearch

ELK - Elasticsearch

简介

官网: https://www.elastic.co/guide/en/elasticsearch/reference/7.6/elasticsearch-intro.html
安装包下载:https://www.elastic.co/downloads/past-releases#elasticsearch
nodejs-9.11.2-1nodesource.x86_64.rpm 下载:https://rpm.nodesource.com/pub_9x/el/7/x86_64/(其它版本更改pub_ 后的数字,是相对应的版本)
nodejs 镜像源文件生成:https://node.dev/node-binary
Elasticsearch 是 ELK 的分布式搜索和分析引擎,是发生索引,搜索和分析数据的地方。

  • 数据输入:文档和索引

Elasticsearch是一个分布式文档存储。Elasticsearch不会将信息存储为列数据的行,而是存储已序列化为JSON文档的复杂数据结构。当集群中有多个Elasticsearch节点时,存储的文档将分布在集群中,并且可以从任何节点立即访问。

  • 信息输出:搜索和分析

尽管可以将Elasticsearch用作文档存储并检索文档及其元数据,但真正的强大之处在于能够轻松访问基于Apache Lucene搜索引擎库构建的全套搜索功能。


Elasticsearch 节点角色

官网:

  • Master:
    主要负责集群中索引的创建、删除以及数据的Rebalance等操作。Master不负责数据的索引和检索,所以负载较轻。当Master节点失联或者挂掉的时候,ES集群会自动从其他Master节点选举出一个Leader。

  • Data Node:
    主要负责集群中数据的索引和检索,一般压力比较大。

  • Coordinating Node:
    原来的Client node的,主要功能是来分发请求和合并结果的。所有节点默认就是Coordinating node,且不能关闭该属性。

  • Ingest Node:
    专门对索引的文档做预处理

  • Machine learning node:
    机器学习节点提供了机器学习功能,该节点运行作业并处理机器学习 API 请求.


官方建议

禁用交换:它可能导致垃圾收集持续几分钟而不是毫秒,并且可能导致节点响应缓慢甚至断开与群集的连接。

三种禁用交换的方法:
1、 在Linux系统上,可以通过运行以下命令暂时禁用交换:

swapoff -a

要永久禁用它,您将需要编辑/etc/fstab文件并注释掉包含单词的所有行swap。

2、 配置 swappiness
在Linux系统上可用的另一个选项是确保将sysctl值 vm.swappiness 设置为1。这减少了内核的交换趋势,并且在正常情况下不应导致交换,同时仍允许整个系统在紧急情况下进行交换。

3、 使用 bootstrap.memory_lock
另一个选择是在Linux / Unix系统上使用 mlockall 尝试将进程地址空间锁定在RAM中,以防止任何 Elasticsearch 内存被调出。可以通过将以下行添加到config/elasticsearch.yml 文件中来完成此操作

bootstrap.memory_lock: true

elasticsearch head

Elasticsearch head 是 Elasticsearch 集群 的 web 前端,集群管理工具、数据可视化、增删改查工具。head插件本质上是一个nodejs的工程,因此需要安装node。Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。


实验


安装 ES

# ES
# 禁用swap 交换分区
swapoff -a
# 注释swap 行
vim /etc/fstab
# 目前 elasticsearch-7.6.1-x86_64 版本自带jdk ,如果不带,需要自己手动安装 jdk。
rpm -ivh elasticsearch-7.6.1-x86_64.rpm 
cd /etc/elasticsearch/
vim elasticsearch.yml 
……
# 集群名称
cluster.name: my-es
……
# 主机名需要解析
node.name: server1
……
# 内存锁定
bootstrap.memory_lock: true
……
# 主机IP
network.host: 172.25.9.1
……
# http 服务端口
http.port: 9200
……
# 指定集群中的主节点
discovery.seed_hosts: ["server1", "server2", "server3"]
……
# 指定集群引导时的初始节点
cluster.initial_master_nodes: ["server1", "server2", "server3"]
……

# 设置启动方式为systemd ,[Service]		#在service语句块下添加
vim /usr/lib/systemd/system/elasticsearch.service 
……
 41 LimitMEMLOCK=infinity
……

# 修改系统限制,有关参数参考:https://www.cnblogs.com/dongzhilong/p/5185248.html
vim /etc/security/limits.conf
elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited
elasticsearch - nproc 4096
elasticsearch - nofile 65535


 # 重新加载服务配置文件,并启动服务。
systemctl daemon-reload
systemctl start elasticsearch


ES 分布式部署

以相同的方法再安装两个ES节点,配置文件和 server1 差不多,修改配置文件中的 主机名 和 IP 即可。

# 设置免密,配置server2 和 server3 ,配置文件和 server1 差不多,修改配置文件中的 主机名 和 IP 即可。
cd 
ssh-keygen 
ssh-copy-id server2
ssh-copy-id server3

# 拷贝安装包到server2和server3
scp -r 7.6/ root@server2:/root
scp -r 7.6/ root@server3:/root
# 拷贝主配置文件到server2 和 server3 
scp /etc/elasticsearch/elasticsearch.yml server2:/etc/elasticsearch/
scp /etc/elasticsearch/elasticsearch.yml server3:/etc/elasticsearch/
# 拷贝服务配置文件到 server2 和 server3
scp /usr/lib/systemd/system/elasticsearch.service server2:/usr/lib/systemd/system/
scp /usr/lib/systemd/system/elasticsearch.service server3:/usr/lib/systemd/system/
# 拷贝资源限制文件到server2 和 server3
scp /etc/security/limits.conf server2:/etc/security/
scp /etc/security/limits.conf server3:/etc/security/

elasticsearch head 安装配置

# elasticsearch  head 工具

# 安裝 node
wget https://rpm.nodesource.com/pub_9x/el/7/x86_64/nodejs-9.11.2-1nodesource.x86_64.rpm
rpm -ivh nodejs-9.11.2-1nodesource.x86_64.rpm 
# 安裝 cnpm 并指定 registry 地址
npm install -g cnpm --registry=https://registry.npm.taobao.org
# 查看 cnpm 版本,查看成功,则安装成功
cnpm -v
# 安装 elasticsearch  head
yum install -y unzip bzip2
# 下载head 压缩包
wget https://github.com/mobz/elasticsearch-head/archive/refs/tags/v5.0.0.zip
unzip elasticsearch-head-master.zip 
cd elasticsearch-head-master
cnpm install 

# 指定elasticsearch  head 的ES 连接地址
vim _site/app.js
……
# 很多因素的导致行数可能不太一样,内容一致就好。
 4388                         this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://172.25.9.1:9200";
……

cd ..
# 打入后台启动
cnpm run start &
# 启动跨域资源共享
vim /etc/elasticsearch/elasticsearch.yml
……
# 设置启用
http.cors.enabled: true
# 允许任何源 CORS 请求
http.cors.allow-origin: "*"

# 重启 elasticsearch 服务  
systemctl restart elasticsearch

设置 ES 节点角色

# 设置server1 为 master
# 清空server1 数据
/usr/share/elasticsearch/bin/elasticsearch-node repurpose
# 配置文件修改
vim /etc/elasticsearch/elasticsearch.yml
……
   node.master: true
   node.data: false 
   node.ingest: false 
   search.remote.connect: false
……

# 重启服务
systemctl restart elasticsearch

实验截图:

安装 ES

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述


分布式部署 ES

server2、server3 与 server1 安装大致一样,修改ES 主配置文件中的 主机名和主机 IP 即可。
测试
在这里插入图片描述


elasticsearch head 安装

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述


ES 节点角色定义

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值