首页 > 其他分享 >ELK的ElasticStack安装

ELK的ElasticStack安装

时间:2024-11-11 13:47:25浏览次数:7  
标签:node ELK java ElasticStack elasticsearch 7.8 安装 es

目录

传送门

SpringMVC的源码解析(精品)
Spring6的源码解析(精品)
SpringBoot3框架(精品)
MyBatis框架(精品)
MyBatis-Plus
SpringDataJPA
SpringCloudNetflix
SpringCloudAlibaba(精品)
Shiro
SpringSecurity
java的LOG日志框架
Activiti(敬请期待)
JDK8新特性
JDK9新特性
JDK10新特性
JDK11新特性
JDK12新特性
JDK13新特性
JDK14新特性
JDK15新特性
JDK16新特性
JDK17新特性
JDK18新特性
JDK19新特性
JDK20新特性
JDK21新特性
其他技术文章传送门入口

前言

ELK设置后抓日志非常好用,当然也不只是用于抓日志。功能强大,全文检索等等。

以下文章不定时更新。

ELK的ElasticStack概念
ELK的ElasticStack语法
ELK的ElasticStack安装
ELK的Logstash
ELK的Kibana
ELK的Filebeat

一、组件概念

在这里插入图片描述
es是一个开源的高扩展的分布式全文搜索引擎;数据存储;旧叫法为ELK(es+logstash+kibana),由于logstash是收集+转化数据两个功能太重了 ,所以在新叫法elastic stack中,出现了beats,收集数据变为beats了,比如filebeat等,很多个beat。logstash就更偏向于转化和处理收集了。

各组件概念

在这里插入图片描述

EFK

在这里插入图片描述

ELK

在这里插入图片描述

ELFK

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

ELFK+kafka

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

二、下载地址

https://www.elastic.co/cn/downloads/elasticsearch

尚硅谷笔记博客地址

三、window下7.8版本安装单机

在这里插入图片描述
下载以后直接解压,然后运行bin目录里面的elasticsearch.bat,会提示需要jdk11版本,不影响,不用管,jdk8就可以,本次下载7.8版本的,和尚硅谷版本一致

在这里插入图片描述
http://localhost:9200/

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

四、window下7.8版本安装集群

在这里插入图片描述
在这里插入图片描述
拷贝两份出来,一共三份一模一样的。然后改配置吧。
在这里插入图片描述
第一个的yml修改内容。端口1001是浏览器访问的端口,端口9301是组件集群内部通信端口
在这里插入图片描述
第一个的yml配置(data文件夹要删除掉)
在这里插入图片描述
只配置第一个的时候的,请求效果,集群可以只有一个
在这里插入图片描述
第二个yml的配置,蓝色的是新增的配置,其他和第一个一样(第一个不用加这个)(data文件夹要删除掉)

五、Linux下7.8版本安装单机

1、ES安装

在这里插入图片描述
304MB

在这里插入图片描述

tar -zxvf elasticsearch-7.8.0-linux-x86_64.tar.gz 
在吉帆Linux系统上面弄的,在/java文件夹下面。
useradd  es
passwd es
chown -R es:es /java/elasticsearch-7.8.0
到这步是可以单机启动了,启动也能成功,但是会导致无法访问,访问失败,哪怕阿里云设置好了端口,防火墙也关闭了,还是不行。所以在Linux环境下必须加单节点集群的配置(注意,还是和真正集群配置不一样)。加上集群配置就可以正常访问了。

在这里插入图片描述


#用自己的Linux,需要在安全组开启9200和9300的端口设置。防火墙只要是关闭的就行了,防火墙不用加端口规则。
vim /java/elasticsearch-7.8.0/config/elasticsearch.yml
cluster.name: elasticsearch
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
cluster.initial_master_nodes: ["node-1"]
http.cors.enabled: true
http.cors.allow-origin: "*"
bootstrap.memory_lock: false
# 注意冒号后面都有个空格。而且:后的单词的后面不能有空格。new 0000是让所有ip都可以访问es,最后cors是能让eshaed访问es,最后一句为true时,会引发9200不被监听
因为es生成的文件太多了。下面的配置还是要改。
vim /etc/security/limits.conf
es soft nofile 65535
es hard nofile 65535
vim  /etc/security/limits.d/20-nproc.conf
es soft nofile 65535
es hard nofile 65535
* hard nproc 4096

在这里插入图片描述

vim /etc/sysctl.conf
vm.max_map_count=655360
sysctl -p

在这里插入图片描述

直接在root用户下启动会报错。而且首次出现的java11错误不用管,等待一下,会往下启动。
su es   # 切换到es,都不用输入密码的(密码 es)
/java/elasticsearch-7.8.0/bin/elasticsearch  -d # 启动es

在这里插入图片描述

chown -R es:es /java/elasticsearch-7.8.0 #  再次报这个错误,说明权限还不够,切回root,再执行一下这句,再切回es(重新打开个链接,执行就行了,不用切来切去的)  
/java/elasticsearch-7.8.0/bin/elasticsearch  -d# 后台启动es

在这里插入图片描述
启动有很多报错,可以忽略,能看到这个就对了

完整的yml配置:
# Pass an initial list of hosts to perform discovery when this node is started:
# The default list of hosts is ["127.0.0.1", "[::1]"]
#
#discovery.seed_hosts: ["host1", "host2"]
#
# Bootstrap the cluster using an initial set of master-eligible nodes:
#
#cluster.initial_master_nodes: ["node-1", "node-2"]
#
# For more information, consult the discovery and cluster formation module documentation.
#
# ---------------------------------- Gateway -----------------------------------
#
# Block initial recovery after a full cluster restart until N nodes are started:
#
#gateway.recover_after_nodes: 3
#
# For more information, consult the gateway module documentation.
#
# ---------------------------------- Various -----------------------------------
#
# Require explicit names when deleting indices:
#
#action.destructive_requires_name: true
cluster.name: elasticsearch
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
cluster.initial_master_nodes: ["node-1"]
http.cors.enabled: true
http.cors.allow-origin: "*"
bootstrap.memory_lock: false

2、ES-HEAD安装

ElasticSearch-head,就是一个提供可视化界面的 ElasticSearch 插件,使用 Html5 开发,本质上还是一个 nodejs 的工程,因此在使用之前需要先安装 nodeJs。

1、安装nodejs
cd /java
wget https://nodejs.org/dist/v10.9.0/node-v10.9.0-linux-x64.tar.gz #下载nodejs压缩包,下载后就在java文件夹里面
tar -zxvf node-v10.9.0-linux-x64.tar.gz #解压压缩包
mv node-v10.9.0-linux-x64 /usr/local/nodejs #移动文件到/usr/local目录下,并将文件夹名称改为nodejs
ln -s /usr/local/nodejs/bin/node /usr/bin/node #创建软连接,让node命令全局生效
ln -s /usr/local/nodejs/bin/npm /usr/bin/npm #创建软连接,让npm命令全局生效
node -v #查看nodejs是否安装成功
npm -v 

备注:当nodejs版本不符合时,直接到usr/local下降nodejs目录整个 rm -rf重新再解压一个版本就可以了。
sudo npm cache clean -f  # 清除缓存信息
npm install -g [email protected]  # 这个升级了npm到9.1.3版本
wget https://nodejs.org/dist/v16.14.0/node-v16.14.0-linux-x64.tar.xz
tar xvf node-v16.14.0-linux-x64.tar.xz
mv node-v16.14.0-linux-x64 /usr/local/nodejs

在这里插入图片描述

2、安装git并拉取ElasticSearch-head代码
yum install –y git #安装git 安装过则更新
git --version #查看是否安装成功
git clone https://github.com/mobz/elasticsearch-head.git#从github上拉取elasticsearch-head代码(网络波动,如果卡可以换个时间段再尝试,一下就好)
cd elasticsearch-head #进入elasticsearch-head文件夹
npm install cnpm -g --registry=https://registry.npm.taobao.org #因为npm安装非常非常慢,所以在这里先安装淘宝源地址
ln -s /usr/local/nodejs/bin/cnpm /usr/local/bin/cnpm #创建cnpm软链接,不然执行下面执行命令会报错
cnpm install #使用cnpm命令下载安装项目所需要的插件,如果这步报错,就用第一步的备注那边升级nodejs版本再尝试
vim _site/app.js #修改app.js 搜索 vim后直接按/然后输入单词 localhost,将localhost修改为安装ElasticSearch服务器的ip,这里换成吉帆外网服务器地址8.136.225.184,如上图

在这里插入图片描述

3、启动ElasticSearch-head
cd /java/elasticsearch-head/node_modules/grunt/bin #进入启动目录(java目录为当前目录)
nohup ./grunt server > eshead.txt & #使用nohup启动 日志会输出在当前文件夹nohup.out里面,启动端口默认为9100,exit退出
注意1:后台启动head命令:grunt server & 注意:加上&虽然执行了后台启动,但还是有日志打印出来,使用ctrl+c可以退出.这时如果直接关闭shell  工具, head进程就会终止 
解决:执行命令后,不使用ctrl+c退出,使用exit退出shell即可 
扩展:使用exit退出后,无法通过jps/ps查到head的进程,可使用lsof -i:port命令根据head端口号查到进程号
注意2:9100(es-head的)  9200(es浏览器访问的) 9300(es集群组件自己通信的) 都得开放安全组。还有就是集群健康值未链接要么是vim _site/app.js中的ip地址没对,要么就是浏览器问题

3、IK中文分词器安装

在这里插入图片描述

https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v7.8.0

这个网站下载zip压缩包(百度网盘已有)。并将该包放到es的安装包的plugins文件夹下面(建议减压以后直接拖文件夹过去),  /java/elasticsearch-7.8.0/plugins  (吉帆电脑是在/java文件夹下,一般在/usr/local下)
unzip -d /java/elasticsearch-7.8.0/plugins/elasticsearch-analysis-ik-7.8.0  elasticsearch-analysis-ik-7.8.0.zip(-d参数是指定解压后的目录 位置,必须在es安装包的plugins文件夹里面)(坑,减压以后要把原来的zip包删除,不然启动报错)

在这里插入图片描述

安装之前汉语的拆解不太准确。
su es
kill -9 28987
/java/elasticsearch-7.8.0/bin/elasticsearch  -d
cd /java/elasticsearch-head/node_modules/grunt/bin
nohup ./grunt server > eshead.txt &
安装以后还是不行,这个时候bady参数要变了,要指定分词器才行。

在这里插入图片描述
坑,没删除zip包就会报错。要删除掉。所以最开始建议直接拷贝解压以后的文件夹过去。
在这里插入图片描述
用ik分词器就很准确了。
在这里插入图片描述
两种粒度,ik_max_word会将中国人分成 中国人 国人 中国三种。而ik_smart只是中国人。
在这里插入图片描述
可以自定义单词,ik并不知道弗雷尔卓德是一个完整的汉语词,所以默认会全部分解开。
在这里插入图片描述
新建个custom.dic里面直接写一句 弗雷尔卓德 就可以了。不用空格,不用其他什么。然后配置xml文件以后重启es就生效了。

六、Linux下7.8版本安装集群

在这里插入图片描述
分发就是把tar包拷贝到其他两个节点机器中
在这里插入图片描述
第一个yml配置

在这里插入图片描述
第一个yml配置(截图最后有配置指令)
在这里插入图片描述
第一个yml配置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
第二个yml就这两个地方变了,其他地方和第一个yml一模一样。同理第三个yml改动也是这两个地方。

# 加入如下配置
#集群名称
cluster.name: cluster-es
#节点名称, 每个节点的名称不能重复
node.name: node-1
#ip 地址, 每个节点的地址不能重复
network.host: linux1
#是不是有资格主节点
node.master: true
node.data: true
http.port: 9200
# head 插件需要这打开这两个配置
http.cors.allow-origin: "*"
http.cors.enabled: true
http.max_content_length: 200mb
#es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举 master
cluster.initial_master_nodes: ["node-1"]
#es7.x 之后新增的配置,节点发现
discovery.seed_hosts: ["linux1:9300","linux2:9300","linux3:9300"]
gateway.recover_after_nodes: 2
network.tcp.keep_alive: true
network.tcp.no_delay: true
transport.tcp.compress: true
#集群内同时启动的数据任务个数,默认是 2 个
cluster.routing.allocation.cluster_concurrent_rebalance: 16
#添加或删除节点及负载均衡时并发恢复的线程个数,默认 4 个
cluster.routing.allocation.node_concurrent_recoveries: 16
#初始化数据恢复时,并发恢复线程的个数,默认 4 个
cluster.routing.allocation.node_initial_primaries_recoveries: 16

标签:node,ELK,java,ElasticStack,elasticsearch,7.8,安装,es
From: https://blog.csdn.net/qq_36858491/article/details/143112975

相关文章

  • Linux安装jdk
    Linux安装jdk下载JDK安装包前往Oracle官网或其他JDK发行版网站,下载适合Linux系统的JDK安装包(可执行命令lscpu,查看Architecture字段确定)。创建安装目录在/usr/local目录下创建用于存放JDK安装包的目录,例如/usr/local/javasudomkdir/usr/local/javacd/usr/local/java上......
  • mongoDB安装
    1、执行安装包文件进行安装,选择自定义路径,安装在根目录,如果不是根目录配置服务时容易出错,导致服务起不来2、我的安装在了C盘MongoDB,安装完之后,在根目录创建data文件夹,在data文件夹里创建db、log文件夹3、以管理员身份运行CMD,输入:cdC:\MongoDB\bin4、mongod--dbpathC:\da......
  • Rocky9系统安装PostgreSQL
    官网https://www.postgresql.org/环境查看安装登录官网根据平台选择帮助文档sudodnfinstall-yhttps://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpmsudodnf-qymoduledisablepostgresqlsudodnfinst......
  • brew 安装软件提示 Can't locate IPC/Cmd.pm in @INC 解决
    在使用brew安装OpenSSL时遇到如下错误:==>perl./Configure--prefix=/data2/lx/.local/opt/homebrew/Cellar/openssl@3/3.4.0--openssldir=/data2/lx/.local/opt/homebrew/etc/openssl@3--libdir=libno-ssl3no-ssl3-methodno-zlibLast15linesfrom/data2/lx/.cach......
  • centos7安装mysql8
    1、首先检查是否有安装过mysql(有则需要卸载),命令如下:rpm-qa|grepmysqlrpm-qa|grepmariadb2、卸载mariadbrpm-e--nodepsmariadb-libs-5.5.68-1.el7.x86_643、备份yum源源文件为了保存原有默认配置及防止误操作,先做备份mv/etc/yum.repos.d/CentOS-Base.repo/etc......
  • K8s安装ingress-nginx
    安装ingress-nginx问题ingress-nginx-controller的service通过NodePort显露出去时,需要先使用ingree-controller调度到的节点先访问一次,集群的其他节点才能正常访问,如:有master:10.191.9.21,node1:10.191.9.22,node2:10.191.9.23三个节点,ingress-controller调度到了......
  • Kali安装配置docker
    Kali安装配置dockerDocker概述:Docker是一种开源平台,可用于自动化应用程序的部署、扩展和管理。在KaliLinux上安装和配置Docker可以为开发人员和管理员提供更轻松的容器化环境。本文将介绍如何在KaliLinux中安装和配置Docker。更新换源:apt-getupdateapt-getu......
  • macOS 下使用 Docker 安装 ElasticSearch(学习环境用)
    当前环境操作系统:macOS15.0.1Docker版本:DockerDesktop:Version4.34.3(170107)DockerEngine:27.2.0安装步骤提示:此部署只为学习使用,没有挂载本地文件1、安装ElasticSearch#安装命令#1.1创建网络somenetwork用于docker间通讯dockernetworkcreateso......
  • Mac+win 2020版本Adobe AI Illustrator 2020中文激活安装包
    Illustrator2020是Adobe公司推出的一款领先的向量图形设计软件。它广泛应用于图标设计、印刷设计、标志设计及Web设计等领域,具备简便的使用方式和强大的功能。Illustrator2020的特色在于其灵活的向量编辑工具和高质量的图形库,以及与其他AdobeCreativeCloud应用程序的无缝互操......
  • 亚马逊自动调价功能的使用方法(附插件安装教程)
     月亮树跨境-自动调价插件下载地址和安装教程:MoonTree自动定时AI抢车调价插件:安装、下载操作说明-月亮树跨境今天,我想向大家介绍一款亚马逊自动调价工具。这款工具最多支持1万件商品调价、定时启用调价的功能,帮助做亚马逊跨境电商的小伙伴们精准抢购黄金购物车!第一步、设置......