大数据笔记--ELK(第一篇)

2023-11-20

一、ELK介绍

1、什么是ELK

ELK 是elastic公司提供的一套完整的日志收集以及展示的解决方案,是三个产品的首字母缩写,分别是ElasticSearch、Logstash 和 Kibana。

1.1、E-ELASTICSEARCH

ElasticSearch简称ES,它是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析,它是一个建立在全文搜索引擎Apache Lucene基础上的搜索引擎,使用Java语言编写。

1.2、L-LOGSTASH

Logstash是一个具有实时传输能力的数据收集引擎,用来进行数据收集(如:读取文本文件)、解析,并将数据发送给ES。

1.3、K-KIBANA

Kibana为 Elasticsearch 提供了分析和可视化的 Web 平台。它可以在 Elasticsearch 的索引中查找,交互数据,并生成各种维度表格、图形。

2、为什么要使用ELK

有三个原因:

分布式集群:

数据量庞大:PB级别甚至更高

搜索需求要求高:快,准,多维度全文搜索

ELASTICSEARCH就支持这种场景,也是目前全文搜索功能使用最多的一种技术.

数据源丰富:

数据库数据

日志数据

其他分散存储的数据.

LOGSTASH可以从多数据源采集数据

数据的价值:

所谓数据保存的越多,数据提现的价值就越多.前提是需要分析展示数据.KIBANA就可以提供数据的仪表分析等功能.

所以基于上述的一些问题,开源实时日志分析 ELK 平台能够完美的解决, ELK 由 ElasticSearch 、 Logstash 和 Kiabana 三个开源工具组成。

二、ELASTICSEARCH概括

1、ES安装和启动

①、安装

截止到现在,最新版本8.1.3,ES的更新速度非常快,我们在学习的时候结合官方文档,查看其改动,官网:Get Started with Elasticsearch, Kibana, and the Elastic Stack | Elastic

这里我们为了方便管理安装包,我们在/home下新建一个文件夹

cd /home

mkdir resource

rz    上传我们的elasticsearch,我用的elasticsearch-7.10.2-linux-x86_64.tar.gz

然后解压到software目录下

tar -zxvf /home/resource/elasticsearch-7.10.2-linux-x86_64.tar.gz -C /home/software/

配置es根目录下的jdk环境

当前版本的es7.10.2,要求最推荐使用jdk11以上的环境,根目录已经准备好了jdk15.

cd /home/software/elasticsearch-7.10.2/

cd jdk/
cd bin/

./java -version

vim /etc/profile

source /etc/profile

export JAVA_HOME=/home/software/elasticsearch-7.10.2/jdk
export PATH=$JAVA_HOME/bin:$PATH

②、启动

安装完成后,我们可以在服务器启动这个ES软件

添加用户用户组

ES拒绝root用户直接启动软件,需要创建新用户,并且赋权启动

groupadd pengyuyan
useradd pengyuyan -g pengyuyan

赋权:
chown -R pengyuyan:pengyuyan /home/software/elasticsearch-7.10.2/
cd /home/software/
ll

启动ES:

切换用户

su pengyuyan
cd /home/software/elasticsearch-7.10.2/
./bin/elasticsearch

测试es进程:

复制一个窗口,发送一个 http请求,查看es

③、配置集群启动

 上面介绍的是一台服务的配置,实际上我们应该配置多个服务器各自启动一个ES进程,想要将他们添加到同一个集群,就需要进行相关的配置

配置文件:ES目录中的config/elasticsearch.yml文件:

将文件拷贝到hadoop02与hadoop03并且做下面操作:

scp -r /home/software/elasticsearch-7.10.2 hadoop02:/home/software/
scp -r /home/software/elasticsearch-7.10.2 hadoop03:/home/software/

添加用户用户组

groupadd pengyuyan
useradd pengyuyan -g pengyuyan

赋权:
chown -R pengyuyan:pengyuyan /home/software/elasticsearch-7.10.2/
cd /home/software/
ll

首先我们进入ES目录中的config/elasticsearch.yml文件,配置下面的内容:

cd /home/software/elasticsearch-7.10.2/config/
vim elasticsearch.yml

cluster.name: es-cluster
node.name: es01
path.data: /home/software/elasticsearch-7.10.2/data
path.logs: /home/software/elasticsearch-7.10.2/logs
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
network.host: 0.0.0.0 
http.port: 9200
transport.tcp.port: 9300
discovery.seed_hosts: ["192.168.186.128", "192.168.186.129","192.168.186.130"]
cluster.initial_master_nodes: ["192.168.186.128"]
http.cors.enabled: true
http.cors.allow-origin: "*"
  • cluster.name 集群名称,同一个服务器集群的节点实例的集群名称要一致.
  • node.name 节点名称,也就是你启动的每个es的进程的名字.
  • path.data 数据路径,指定当前es进程节点的存储数据的文件夹.注意:如果路径不在启动es用户的权限范围之内,启动会报错
  • path.logs es启动的日志文件夹. 注意:如果路径不在启动es用户的权限范围之内,启动会报错
  • bootstrap.memory_lock 锁定物理内容,会造成性能降低,将其关闭.
  • bootstrap.system_call_filter 系统调用过滤器主要是防止任意代码攻击漏洞的.将其关闭.
  • network.host es进程绑定的物理ip可以ipv4 可以ipv6,默认是localhost不允许外界访问.
  • http.port es进程绑定占用的http协议访问端口,默认9200.
  • transport.tcp.port: es进程绑定单用的tcp协议访问端口,默认9300
  • discovery.seed_hosts 配置主机hosts名单,主要可以使用ip:port的方式来配置.有几个节点,就配置几个节点.
  • cluster.initial_master_nodes 集群第一次启动初始化时,想要指定的主机节点是谁,一旦配置,初始主机节点就定了,后续可以将这个配置删除.
  • http.cors.enabled 是否支持跨域访问,如果支持,有一些代理软件是可以访问es的比如head插件
  • http.cors.allow-origin 当设置了支持跨域后,允许的跨域域名都有哪些,默认是*.

三个节点的配置如下:

hadoop01:
cluster.name: es-cluster
node.name: es01
path.data: /home/software/elasticsearch-7.10.2/data
path.logs: /home/software/elasticsearch-7.10.2/logs
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
network.host: 0.0.0.0 
http.port: 9200
transport.tcp.port: 9300
discovery.seed_hosts: ["192.168.186.128", "192.168.186.129","192.168.186.130"]
cluster.initial_master_nodes: ["192.168.186.128"]
http.cors.enabled: true
http.cors.allow-origin: "*"

hadoop02:
cluster.name: es-cluster
node.name: es02
path.data: /home/software/elasticsearch-7.10.2/data
path.logs: /home/software/elasticsearch-7.10.2/logs
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
network.host: 0.0.0.0 
http.port: 9200
transport.tcp.port: 9300
discovery.seed_hosts: ["192.168.186.128", "192.168.186.129","192.168.186.130"]
cluster.initial_master_nodes: ["192.168.186.128"]
http.cors.enabled: true
http.cors.allow-origin: "*"

hadoop03:
cluster.name: es-cluster
node.name: es03
path.data: /home/software/elasticsearch-7.10.2/data
path.logs: /home/software/elasticsearch-7.10.2/logs
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
network.host: 0.0.0.0 
http.port: 9200
transport.tcp.port: 9300
discovery.seed_hosts: ["192.168.186.128", "192.168.186.129","192.168.186.130"]
cluster.initial_master_nodes: ["192.168.186.128"]
http.cors.enabled: true
http.cors.allow-origin: "*"

修改 vim /etc/profile

export JAVA_HOME=/home/software/elasticsearch-7.10.2/jdk
export PATH=$JAVA_HOME/bin:$PATH

source /etc/profile

三台启动:

su pengyuyan
cd /home/software/elasticsearch-7.10.2/
./bin/elasticsearch

可能报错:

1 内存不够报错
vi jvm.options
es 5.x版本默认启动内存需要4g ,对于一些低内存的虚拟机或者云服务器可能无法启动,需要修改默认内存参数,红色是默认的,黄色是我修改后我自己机器的,大小根据你机器配置修改。

2 can not run es as root
产生这个错误原因是:
这是出于系统安全考虑设置的条件。由于ElasticSearch可以接收用户输入的脚本并且执行,为了系统安全考虑,建议创建一个单独的用户用来运行ElasticSearch

解决办法:
单独创建一个用户来专门启动 es
创建es用户组及es用户
groupadd es
useradd es-g es-p es
更改elasticsearch文件夹及内部文件的所属用户及组为es : es
chown -R es:es elasticsearch
elasticsearch为你elasticsearch的目录名称
切换到es用户再启动
su es #切换账户
cd elasticsearch/bin #进入你的elasticsearch目录下的bin目录
成功启动

3 UnsupportedOperationException: seccomp unavailable: CONFIG_SECCOMP not compiled into kernel, CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER are needed
解决办法:
原因: 因为Centos6不支持SecComp,而ES默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动解决:修改elasticsearch.yml 添加一下内容 :
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

4 Caused by: java.net.BindException: Cannot assign requested address
配置外网
进入 config/ elasticsearch.ym
打开配置文件elasticsearch.yml 将 network.host: 192.168.0.1 修改为本机IP 0.0.0.0 

5 initial heap size [104857600] not equal to maximum heap size [209715200]; this can cause resize pauses and prevents mlockall from locking the entire heap
[2]: max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
[3]: max number of threads [1024] for user [es] is too low, increase to at least [2048]
[4]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解决办法:
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解决:切换到root用户修改配置sysctl.conf
vi /etc/sysctl.conf
添加下面配置:
vm.max_map_count=655360
并执行命令:
sysctl -p

max number of threads [1024] for user [es] is too low, increase to at least [2048]
解决:切换到root用户,进入limits.d目录下修改配置文件。
vi /etc/security/limits.d/90-nproc.conf
修改如下内容:
soft nproc 1024
#修改为
soft nproc 2048

max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
解决:切换到root用户,编辑limits.conf 添加类似如下内容
vi /etc/security/limits.conf
添加如下内容:
*soft nofile 65536

*hard nofile 131072

*soft nproc 2048

*hard nproc 4096

 这个错误因为我们拷贝过来的问题:

解决办法:我们进入root用户

exit

然后进入

cd /home/software/elasticsearch-7.10.2/data/
删除data写的nodes

rm -rf nodes/

然后新建:mkdir nodes

给定权限: chown -R pengyuyan:pengyuyan /home/software/elasticsearch-7.10.2/data/
再次启动就成功了

 这样我们三台配置就成功了!

2、ES的head插件

head插件是一个可以帮助用户代理访问es的,可以图形界面展示数据的插件,我们配置了es的跨域开启,所以为了方便观察,我们可以安装head插件

①、node.js安装

head插件成功运行的语言环境就是node,需要提前安装:

wget https://nodejs.org/dist/v15.0.0/node-v15.0.0-linux-x64.tar.gz

解压:

tar -xf node-v15.0.0-linux-x64.tar.gz -C /home/software/

 添加环境变量:

export NODE_HOME=/home/software/node-v15.0.0-linux-x64
export PATH=$PATH:$NODE_HOME/bin

 生效环境变量,然后查看node版本

source /etc/profile

node -v

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

大数据笔记--ELK(第一篇) 的相关文章

  • 搜索引擎使用技巧详解

    说到搜索 这可能是我们每个网民每天都要用到的操作 这个操作看起来很简单 一般用户都是想搜什么就输入什么 然后一按搜索就直接开始 这是最简单最快速的方法 但可能并不是最有效的方法 要想搜索结果最合乎你的意愿 IT 之家建议你掌握如下 8 个技
  • Elasticsearch 相关度评分TF&IDF算法揭秘

    1 算法介绍 relevance score算法 简单来说 就是计算出 一个索引中的文本 与搜索的文本 他们之间的关联匹配程序 ElasticSearch使用的是term frequency inverse document frequen
  • 03-信息收集

    信息搜集 全面了解系统 什么是信息收集 信息收集是指通过各种方式获取所需要的信息 信息收集是信息得以利用的第一步 也是关键的一步 信息收集工作的好坏 会影响整个渗透测试流程的进行 收集的信息越多后期可进行测试的目标就越多 信息收集包含资产收
  • 数据中台-让数据用起来-6

    文章目录 第六章 数据开发 数据价值提炼工厂 6 1 数据计算能力的4种类型 6 1 1 批计算 6 1 2 流计算 6 1 3 在线查询 6 1 4 即席分析 6 2 离线开发 1 作业调度 2 基线控制 3 异构存储 4 代码校验 5
  • 爬虫与反爬虫技术简介

    互联网的大数据时代的来临 网络爬虫也成了互联网中一个重要行业 它是一种自动获取网页数据信息的爬虫程序 是网站搜索引擎的重要组成部分 通过爬虫 可以获取自己想要的相关数据信息 让爬虫协助自己的工作 进而降低成本 提高业务成功率和提高业务效率
  • 中国智慧能源行业行情监测及未来动向规划预测报告2022-2028年

    中国智慧能源行业行情监测及未来动向规划预测报告2022 2028年 报告目录 第一章 智慧能源的基本概述 第二章 2021 2021年全球智慧能源产业发展分析 2 1 2021 2021年全球智慧能源产业发展综况 2 1 1 全球智慧能源网
  • pycharm如何连接数据库并往数据库插入内容

    1 创建connection对象 2 创建cursor对象 游标对象 主要用于操作数据库 3 执行查询 4 关闭cursor对象 5 关闭connection 首先要先安装pumysql库 pip install pymysql 连接测试
  • ElasticSearch基础(7.0+版本)

    一 ElasticSearch的用法 ES是基于Lucene开发的分布式高性能全文检索系统 支持分布式存储 水平扩展 主要能力是 存储 搜索 分析 我目前接触过的主要有两种用法 作为二级索引提高查询效率和基于关键词的全文检索 Lucene
  • ElasticSearch-快速入门(一)

    ES简介 全文搜索属于最常见的需求 开源的Elasticsearch 是目前全文搜索引擎的首选 它可以快速地储存 搜索和分析海量数据 维基百科 Stack Overflow Github 都采用它 Elastic 的底层是开源库Lucene
  • Python Pandas导出Hbase数据到dataframe

    Python导出Hbase数据的思路 使用happybase连接Hbase 使用table scan 扫数据 将得到的数据整理为dataframe格式 将从Hbase中得到的byte类型的数据转为str类型的数据 示例代码 import h
  • Flink_06_ProcessAPI(个人总结)

    声明 1 本文为我的个人复习总结 并非那种从零基础开始普及知识 内容详细全面 言辞官方的文章 2 由于是个人总结 所以用最精简的话语来写文章 3 若有错误不当之处 请指出 侧输出流 SideOutput 即分支流 可以用来接收迟到数据 也可
  • Jina 2.0 快速入门指"北"

    What Why 选择Jina的4大理由 支持所有数据类型 大规模索引和查询任何类型的非结构化数据 视频 图像 长文本 语音 源代码 PDF等 速度极快 云原生 从第一天开始 Jina就是分布式架构 具有可扩展和云原生的设计 支持容器 并行
  • Peewee

    Part1前言 在 Python 的 ORM 框架中 比较主流的有 Sqlalchemy peewee pony 等等 但是其中 peewee 和 Django 的 Models 框架很像 如果了解 Django 的同学肯定对 peewee
  • 大数据之hive(数据仓库工具)的分组和分区操作

    注 在对hive的概念 优缺点 安装部署和参数配置在之后再进行总结 本小节主要对hive中的分组和分区进行总结 一 分组 1 group by语句 group by通常和聚合函数一起使用 按照一个或者多个列进行分组 然后对每个组进行聚合操作
  • SpringBoot整合ELK教程

    SpringBoot整合ELK教程 1 基础概念 ELK 即 Elasticsearch Logstash Kibana 组合起来可以搭建线上日志系统 本文主要讲解使用 ELK 来收集测试框架产生的日志 Elasticsearch 用于存储
  • 系列教程

    PDF Search 系列教程来咯 在 Part 1 中 我们将演示如何从 PDF 中提取 处理并存储图像及文本 随着神经搜索 Neural Search 技术的普及 越来越多开发者 开始尝试用 Jina 解决非结构化数据的索引和搜索问题
  • 物联网产业到2023年连接数将突破20亿

    导读 随着经济社会数字化转型和智能升级步伐加快 物联网逐渐成为新型基础设施的重要组成部分 近日 工信部等8部门联合印发 物联网新型基础设施建设三年行动计划 2021 2023年 下称 行动计划 明确到2023年底 在国内主要城市初步建成物联
  • ETL.NET 助力海量数据轻松处理

    ETL NET 助力海量数据轻松处理 什么是 ETL EtlT About ETL About EtlT 谈谈 ETL 作用 ETL 对企业的作用 ETL 对个人职业发展的作用 ETL NET 介绍
  • bridge

    networking bridge Wiki A bridge is a way to connect two Ethernet segments together in a protocol independent way Packets
  • 无法执行操作:action=>LogStash::PipelineAction::Create/pipeline_id:main

    我已在 CentOS7 VM 上安装了 ELK 堆栈版本 7 0 0 但在 Logstash 服务启动期间遇到了问题 错误 2019 05 13 08 21 37 359 Converge PipelineAction Create 代理

随机推荐

  • SpringMVC视图解析器

    SpringMVC视图解析器 前言 在前一篇博客中讲了SpringMVC的Controller控制器 在这篇博客中将接着介绍一下SpringMVC视图解析器 当我们对SpringMVC控制的资源发起请求时 这些请求都会被SpringMVC的
  • ES: 设置默认值

    场景 XX对象的告警个数字段是数字 优先级字段是数字 排序要求 优先告警个数大 gt 小 其次优先级大 gt 小 问题 告警个数字段不存在或者值为0的情况是等价的 排序上应该是平等的 不应该存在0的大于字段不存在的 处理 对没有告警个数字段
  • Obsidian 使用 Livesync 同步数据

    Obsidian 使用 Livesync 同步数据 之前一直使用 icloud 同步我的 obsidian 笔记 同时定期使用 git 备份笔记 但是前段时间因为在 ios 上误删了一个文件夹 导致我的 icloud 桌面端和手机端的笔记不
  • Ubuntu9.04太多乱码(中文不能正常显示)

    最近在使用Ubuntu9 04的过程中 发现有好多地方都出现乱码 其实是中文不能正常显示 现在把我所遇到的所有乱码问题集中一下 方便以后查阅参考 一 Flash乱码 在终端输入 sudo gedit etc fonts conf d 49
  • linux系统安装python3.9.2

    1 下载安装包 下载地址 https www python org downloads release python 392 在这里插入图片描述 2 下载Python3编译的依赖包 yum install y gcc patch libff
  • Ajax——Ajax的同步与异步以及代码封装(jQuery)

    文章总结目录 1 Ajax的异步与同步 1 1 同步与异步概念 1 2 Ajax在代码上的实现 1 3 Ajax同步与异步使用的场景 2 Ajax代码的封装 2 1 Ajax代码封装的原因 2 2 如何实现Ajax代码的封装 2 3 Aja
  • 为啥MyBatis-Plus 分页插件不生效?

    描述 项目中用到boot 整合 mybatis plus 个人在使用分页条件查询的时候一直查不出 total pages 终于找到原因了 环境
  • 清华大学AIGC发展研究报告1.0版震撼发布!192页PPT

    来源 清元宇宙 人工智能无疑是2023年最受关注的科技热点 作为将会掀起人类再一次生产力革命的重大技术突破 人工智能受到了全球范围内各领域人士的高度关注 近日 清华大学沈阳教授团队发布了 AIGC发展研究报告1 0版 总计192页 分为技术
  • java parser .java_Stanford Parser使用之 Eclipse+java调用

    官网 Download Stanford Parser version 3 2 0 stanford parser full 2013 06 20 zip 解压缩 stanford parser full 2013 06 20 zip st
  • 信息安全期末题库

    大多数应用程序 操作系统和实用程序都用高级程序语言或汇编语言编写 所编写的程序称为源程序 源程序需经过编译 链接 装入三个阶段才能装入主存运行 逻辑地址转换为物理地址的过程称为地址重定位 包括 静态地址重定位 地址转换在进程执行前一次完成
  • matlab基础语法2_matlab的函数_句柄

    函数是模块化 抽象化的实施者 如何查看matlab的内建函数 查看matlab内建的函数 mean m 计算平均数 在命令行窗口输入edit which mean m 会跳出一个 m文件 gt gt edit which mean m fu
  • Gauss_Seidel method with python

    Gauss Seidel method with python from wikipedia https en wikipedia org wiki Gauss E2 80 93Seidel method import numpy as n
  • 三星A5显示服务器未响应,三星A5手机死机了 屏幕一直亮着 按什么键都没反应==求解答...

    三星A5功能特征 双面2 5D玻璃金属边框设计 两种材质圆融贴合 Galaxy A5 2016 在外观上寻求突破 精心选用双面2 5D玻璃 SamsungGalaxy A5 2016 A7 2016 A时代 不玩不快 Galaxy A系列活
  • K8s工程化:K8s中的Java应用出现OOM后怎么办?

    完整代码在文末 背景 前段时间 线上系统出现了两次持续时间比较长的事故 这两次事故暴露我在某些方面的不足 同时 也意识到在SRE这个领域 经验的重要性 事故过程中 我们发现大量的FullGC 当时 我们想到了要dump内存出来分析 可惜发现
  • Firefox新标签页不停刷新

    解决办法 在地址栏输入 about support 翻新Firefox
  • Linux下Oracle数据库的启动和开机启动

    1 Linu环境下Oracle的启动 su oracle 切换到oracle用户 source bash profile 配置bash shell 一般在sqlplus指令不生效时使用 sqlplus nolog 进入sqlplus控制台
  • Java工具类之SFTP遍历查找指定目录下包含关键字的的所有文件

    一 工具类代码 public class SFTPUtil private transient Logger logger LoggerFactory getLogger this getClass private ChannelSftp
  • Wireshark抓包工具使用教程以及常用抓包规则

    http fangxin blog 51cto com 1125131 735178 Wireshark是一个非常好用的抓包工具 当我们遇到一些和网络相关的问题时 可以通过这个工具进行分析 不过要说明的是 这只是一个工具 用法是非常灵活的
  • PuTTY 通过 SSH 访问出现错误:"expected key exchange group packet from server"。

    使用 PuTTY 通过 SSH 访问出现错误 expected key exchange group packet from server 解决 在 PuTTY 的左侧窗格中 导航到 连接 gt SSH gt Kex 在算法选择策略下 选择
  • 大数据笔记--ELK(第一篇)

    一 ELK介绍 1 什么是ELK ELK 是elastic公司提供的一套完整的日志收集以及展示的解决方案 是三个产品的首字母缩写 分别是ElasticSearch Logstash 和 Kibana 1 1 E ELASTICSEARCH