ELK简介以及安装部署(1),2024年最新深入分析

logstash

L – logstash(收集),数据收集引擎,相较于Filebeat比较重量级,但它集成了大量的插件,支持丰富的数据源收集,对收集的数据可以过滤,分析,格式化日志格式。

kibana

K – kibana(展示),数据的可视化平台,通过该web平台可以实时的查看 Elasticsearch 中的相关数据,并提供了丰富的图表统计功能。

ELK架构

nginx+fliebeat --> kafka (消息缓存队列) – > elk or (数据库) --> mysql

在这里插入图片描述

(此图未引入kafka消息缓存队列,使用缓存队列主要是解决数据安全与均衡Logstash与Elasticsearch负载压力。)

此架构的工作方式大致如下,应用端日志收集器使用Filebeat,Filebeat轻量,占用服务器资源少,所以使用Filebeat作为应用服务器端的日志收集器,一般Filebeat会配合Logstash一起使用,Filebeat收集数据,Logstash过滤数据并将数据推送到Elasticsearch,Elasticsearch存储传入的数据,并提供方法以供查询,这种部署方式也是目前最常用的架构。

ELK的应用场景

  • 应用场景:

要对大规模的日志进行搜索,进行分析。

  • 例子:

前端nginx代理集群有5台,这上面都分布了nginx日志。突然当前时间点用户反馈网站访问不了,那我们就要去查看过滤出nginx日志http状态码为404,4xx,5xx的日志。如果使用awk,grep进行操作,那就登录到5台机器上进行操作,然后对结果进行一个合并。这种情况就不适用使用命令行工具去做分析和搜索,这种方法比较麻烦,效率又低,日志量大起来搜索又慢。对于这种情况,我们的日志就要进行集中化管理,集中化分析。如此一来,搭建ELK近实时日志分析搜索系统,无疑是一个好的解决方法。

ELK的安装部署

一、服务器准备

准备四台虚拟机

主机名IP地址描述
elasticsearch-1192.168.220.21es集群
elasticsearch-2192.168.220.22es集群
elasticsearch-3192.168.220.23es集群
kibana192.168.220.20logstash+kibana
web192.168.220.105nginx+filebeat

以及各个软件的安装包(版本都一致),下载地址(官网):https://www.elastic.co/cn/downloads

在这里插入图片描述

二、基础环境配置

ELK主机都需部署(都是如下操作)

1、jdk环境的部署
# 导入jdk安装包
[root@elasticsearch-1 ~]# mkdir /jdk && cd /jdk
[root@elasticsearch-1 jdk]# ls
jdk-8u381-linux-i586.tar.gz
# 解压到当前文件夹
[root@elasticsearch-1 jdk]# tar xf jdk-8u381-linux-i586.tar.gz
[root@elasticsearch-1 jdk]# ls
jdk1.8.0_381  jdk-8u381-linux-i586.tar.gz

# 配置/etc/profile文件
[root@elasticsearch-1 ~]# vim /etc/profile
JAVA\_HOME=/jdk/jdk1.8.0_381
JRE\_HOME=/jdk/jdk1.8.0_381/jre
PATH=$JAVA\_HOME/bin:$JRE\_HOME/bin:$PATH
CLASSPATH=$JAVA\_HOME/lib/dt.jar:$JAVA\_HOME/lib/tools.jar:$JRE\_HOME/lib
export PATH JAVA_HOME CLASSPATH JRE_HOME
# 重新加载文件
[root@elasticsearch-1 ~]# source /etc/profile

# 查看是否配置成功
root@elasticsearch-1 jdk]# java -version
-bash: /jdk/jdk1.8.0_381/bin/java: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
# 此问题是因为少了glibc依赖,所以需要安装依赖
[root@elasticsearch-1 jdk]# yum install glibc.i686 -y
[root@kibana jdk]# java -version
java version "1.8.0\_381"
Java(TM) SE Runtime Environment (build 1.8.0_381-b09)
Java HotSpot(TM) Client VM (build 25.381-b09, mixed mode)

2、关闭防火墙和selinux
# 关闭防火墙
[root@elasticsearch-1 ~]# systemctl stop firewalld && systemctl disable firewalld
# 关闭selinux
[root@elasticsearch-1 ~]# setenforce 0 
[root@elasticsearch-1 ~]# sed -i 's/^SELINUX=enforcing$/SELINUS=disabled/' /etc/selinux/config

3、操作系统参数优化
# 设置进程数和文件句柄数以及内存限制配置
[root@elasticsearch-1 ~]# vim /etc/security/limits.conf
elastic soft memlock unlimited   #不进行内存限制
elastic hard memlock unlimited
elastic soft nofile 65535	     #进行打开文件数限制
elastic hard nofile 65535
elastic soft nproc 65535		 #进行打开文件数限制
elastic hard nproc 65535

# 虚拟内存设置
[root@elasticsearch-1 ~]# vim /etc/sysctl.conf
vm.max\_map\_count=655350			 #max\_map\_count文件包含限制一个进程可以拥有的VMA(虚拟内存区域)的数量
# 执行sysctl -p生效
[root@elasticsearch-1 ~]# sysctl -p

三、ELK的部署
1、elasticsearch

(1) 创建es用户

[root@elasticsearch-1 ~]# useradd elastic
[root@elasticsearch-1 ~]# echo "123456" | passwd --stdin elastic

(2) 解压elasticsearch压缩包

[root@elasticsearch-1 elk]# ls
elasticsearch-8.6.0-linux-x86_64.tar.gz
# 将elasticsearch-8.6.0-linux-x86\_64.tar.gz解压到 / 目录下
[root@elasticsearch-1 elk]# tar xf elasticsearch-8.6.0-linux-x86\_64.tar.gz -C /
# 授予权限
[root@elasticsearch-1 ~]# chown -R elastic:elastic /elasticsearch-8.6.0/
[root@elasticsearch-1 ~]# ll -d /elasticsearch-8.6.0/
drwxr-xr-x 9 elastic elastic 172 Aug 30 16:01 /elasticsearch-8.6.0/

(3) 创建elasticsearch数据以及日志所存放的目录

[root@elasticsearch-1 ~]# mkdir -p /data/elasticsearch/{data,logs}
# 授予权限
[root@elasticsearch-1 ~]# chown -R elastic:elastic /data/elasticsearch/{data,logs}
[root@elasticsearch-1 ~]# ll /data/elasticsearch/
drwxr-xr-x 5 elastic elastic   87 Sep  4 17:27 data
drwxr-xr-x 2 elastic elastic 4096 Aug 31 09:45 logs

(4) 配置集群间安全访问证书密钥(仅在elasticsearch-1节点上操作即可)

# 签发ca证书
[root@elasticsearch-1 ~]# /elasticsearch-8.6.0/bin/elasticsearch-certutil ca
# 输入该指令后一直回车即可

# 签发节点证书
[root@elasticsearch-1 ~]# /elasticsearch-8.6.0/bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
# 输入该指令后一直回车即可

(5) 将证书移至certs目录(仅在elasticsearch-1节点上操作即可)

# 无cert目录就创建(切记需用elastic用户创建)
[root@elasticsearch-1 ~]# mv /elasticsearch-8.6.0/elastic-stack-ca.p12 /elasticsearch-8.6.0/config/certs
[root@elasticsearch-1 ~]# mv /elasticsearch-8.6.0/elastic-certificates.p12 /elasticsearch-8.6.0/config/certs
[root@elasticsearch-1 ~]# scp -r /elasticsearch-8.6.0/config/certs 192.168.220.22:/elasticsearch-8.6.0/config/
[root@elasticsearch-1 ~]# scp -r /elasticsearch-8.6.0/config/certs 192.168.220.23:/elasticsearch-8.6.0/config/

(6) 创建elasticsearch.keystore文件(仅在elasticsearch-1节点上操作即可)

[root@elasticsearch-1 ~]# /elasticsearch-8.6.0/bin/elasticsearch-keystore create
[root@elasticsearch-1 ~]# scp /elasticsearch-8.6.0/config/elasticsearch.keystore 192.168.220.22:/elasticsearch-8.6.0/config/
[root@elasticsearch-1 ~]# scp /elasticsearch-8.6.0/config/elasticsearch.keystore 192.168.220.23:/elasticsearch-8.6.0/config/

(7) 证书权限更新(所有的证书都必须是elastic权限)

[root@elasticsearch-1 ~]# ll /elasticsearch-8.6.0/config/certs/
-rw------- 1 elastic elastic 3596 Aug 29 11:53 elastic-certificates.p12
-rw------- 1 elastic elastic 2672 Aug 29 11:53 elastic-stack-ca.p12
[root@elasticsearch-1 ~]# ll /elasticsearch-8.6.0/config/elasticsearch.keystore
-rw-rw---- 1 elastic elastic 199 Aug 29 11:59 /elasticsearch-8.6.0/config/elasticsearch.keystore

(8) elasticsearch配置文件修改

vim /elasticsearch-8.6.0/config/elasticsearch.yml(添加如下内容)

# 集群名称,三个节点保持一致
cluster.name: zhangjiaxin-es
# 节点名称,一般为主机名,三个节点不一致
node.name: elasticsearch-1
# 节点角色,master表示管理节点,data表示数据节点,该配置中节点既是管理节点,也是数据节点,remote\_cluster\_client远程集群客户端节点。
node.roles: [master,data,remote_cluster_client]
# 数据存放路径
path.data: /data/elasticsearch/data
# 日志存放路径
path.logs: /data/elasticsearch/logs
# 绑定监听IP
network.host: 192.168.220.21
# 设置对外服务的http端口,默认为9200
http.port: 9200
# #是否允许跨域访问,true表示允许
http.cors.enabled: true
# 设置访问
http.cors.allow-origin: "\*"
# 设置节点端口
transport.port: 9300
# 节点发现
discovery.seed\_hosts: ["192.168.220.21", "192.168.220.22", "192.168.220.23"]
# 集群初始化时master节点
cluster.initial\_master\_nodes: ["elasticsearch-1", "elasticsearch-2", "elasticsearch-3"]
# 启用节点上ES的XPACK安全功能,相当于总开关
xpack.security.enabled: true
# 传输层的认证设置
xpack.security.transport.ssl:
  enabled: true
  verification\_mode: none
  keystore.path: certs/elastic-certificates.p12
  truststore.path: certs/elastic-certificates.p12

(9) elasticsearch jvm参数配置

# 按照虚机分配的内存配置-Xms和-Xmx,本文中虚机内存为2G,设置-Xms和-Xmx值为1G,为一半
[root@elasticsearch-1 ~]# vim /elasticsearch-8.6.0/config/jvm.options
-Xms1g
-Xmx1g

(10) 将elasticsearch加入systemctl

[root@elasticsearch-1 ~]# vim /usr/lib/systemd/system/elasticsearch.service
[Unit]
Description=elasticsearch
After=network.target

[Service]
Type=forking
User=elastic
ExecStart=/elasticsearch-8.6.0/bin/elasticsearch -d
PrivateTmp=true
# 指定此进程可以打开的最大文件数
LimitNOFILE=65535
# 指定此进程可以打开的最大进程数
LimitNPROC=65535
# 最大虚拟内存
LimitAS=infinity
# 最大文件大小
LimitFSIZE=infinity
# 超时设置 0-永不超时
TimeoutStopSec=0
# SIGTERM是停止java进程的信号
KillSignal=SIGTERM
# 信号只发送给给JVM
KillMode=process
# java进程不会被杀掉
SendSIGKILL=no
# 正常退出状态
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target

(11) 启动elasticsearch

[root@elasticsearch-1 ~]# systemctl start elasticsearch && systemctl enable elasticsearch

(12) 设置elasticsearch密码

[root@elasticsearch-1 ~]# /elasticsearch-8.6.0/bin/elasticsearch-setup-passwords interactive



**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

**深知大多数Linux运维工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

**因此收集整理了一份《2024年Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
![img](https://img-blog.csdnimg.cn/img_convert/9d34db1df86e747ff5878199d0dce0fc.png)
![img](https://img-blog.csdnimg.cn/img_convert/dad50ece9ac8b0328d4352270e01172d.png)
![img](https://img-blog.csdnimg.cn/img_convert/9e49e139c20dd688394b5387749e24f1.png)
![img](https://img-blog.csdnimg.cn/img_convert/1ba49225dfcfac9571405cb9881a6988.png)
![img](https://img-blog.csdnimg.cn/img_convert/b0e4eeb309138147a73f20ffecff8da1.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!**

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

**如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)**
![img](https://img-blog.csdnimg.cn/img_convert/1370ac4e17579f564ce5c5c3aba0a1b2.jpeg)



### 最后的话

最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!

### 资料预览

给大家整理的视频资料:

![](https://img-blog.csdnimg.cn/img_convert/dc4cbbc3e569bcb4ea070e4dd47fbd19.png)

给大家整理的电子书资料:

  

![](https://img-blog.csdnimg.cn/img_convert/22d89c6f450b3bfeff4e0c1e53a49175.png)



**如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!**


**一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
![img](https://img-blog.csdnimg.cn/img_convert/d15345bf8e695b39b350e72b6ca865b3.jpeg)

最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!

### 资料预览

给大家整理的视频资料:

[外链图片转存中...(img-HsecKpwx-1712659436444)]

给大家整理的电子书资料:

  

[外链图片转存中...(img-aSV1vhFC-1712659436444)]



**如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!**


**一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
[外链图片转存中...(img-GjkACI9s-1712659436444)]

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值