Elasticsearch+Logstash+Kibana可视化集群部署

文章目录

  • 1.组件介绍简述
  • 2.集群规划
  • 3.Es组件部署
  • 4.Logstash组件部署
  • 5.Kibana组件部署
  • 6.Kibana的基础使用

1.组件介绍简述

  • Elasticsearch:开源实时分布式搜索和分析引擎,支持大规模数据存储和高吞吐量,提供丰富的搜索功能和可扩展性。

  • Logstash:开源数据收集引擎,用于实时收集、转换和传输数据,支持多种数据来源和实时数据处理。

  • Kibana:开源数据可视化工具,用于分析和可视化 Elasticsearch 中的数据,提供直观的界面和工具,支持数据可视化、查询构建和用户权限管理。

2.集群规划

java环境提前安装好

主机名IP地址处理器(s)内存(GB)组件版本
test-server02192.168.40.18124Elasticsearch、cerebro7.17.18、0.94
test-server03192.168.40.18244Logstash7.17.18
test-server04192.168.40.18322Kibana7.17.18

3.Es组件部署

Elasticsearch单节点部署

Elasticsearch下载地址

  1. 下载Elasticsearch

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

  1. 安装Elasticsearch
#上传部署包
[root@test-server02 opt]# ll /opt/elasticsearch-7.17.18-linux-x86_64.tar.gz
-rw-r--r-- 1 root root 327087494 Feb  8 14:23 /opt/elasticsearch-7.17.18-linux-x86_64.tar.gz

#解压部署包
[root@test-server02 opt]# tar -xf elasticsearch-7.17.18-linux-x86_64.tar.gz

#创建软连接
[root@test-server02 opt]# ln -s /opt/elasticsearch-7.17.18 elasticsearch
  1. 配置Elasticsearch
[root@test-server02 opt]# cd elasticsearch/config/
[root@test-server02 config]# cat elasticsearch.yml | grep -v '^\s*#' | grep -v '^\s*$'
cluster.name: es-test-cluster
node.name: test-server02
path.data: /opt/elasticsearch/data
path.logs: /opt/elasticsearch/logs
network.host: 192.168.40.181
http.port: 9200
discovery.seed_hosts: ["192.168.40.181"]
cluster.initial_master_nodes: ["test-server02"]
#下面两行新增
node.master: true
node.data: true

#配置介绍
1. cluster.name:集群名称,所有节点必须使用相同的集群名称以便彼此识别和连接。
2. node.name:节点名称,用于标识集群中的每个节点。
3. path.data:数据存储路径,指定Elasticsearch用于存储数据的目录路径。
4. path.logs:日志存储路径,指定Elasticsearch用于存储日志的目录路径。
5. network.host:节点绑定的网络地址,指定Elasticsearch监听的网络地址。
6. http.port:HTTP端口,用于与Elasticsearch进行RESTful API通信的端口号。
7. discovery.seed_hosts:发现种子节点,用于节点发现和集群组建。
8. cluster.initial_master_nodes:初始主节点列表,指定集群中第一批主节点的名称。
9. node.master:指定节点是否可以成为主节点,即负责集群级别操作的节点。
10. node.data:指定节点是否可以存储数据,即节点是否可以作为数据节点存储索引数据。
  1. 创建数据目录和普通用户
#创建数据目录
[root@test-server02 opt]# mkdir /opt/elasticsearch/data

#新增普通用户
[root@test-server02 opt]# useradd elastic

#修改普通用户密码
[root@test-server02 opt]# passwd elastic
elastic/elastic

#授予普通用户权限
[root@test-server02 opt]# chown -R elastic:elastic elasticsearch*
  1. 修改系统配置
[root@test-server02 ~]# vim /etc/sysctl.conf
#最下面新增此参数
vm.max_map_count=262144

不修改此参数启动会报错:bootstrap check failure [1] of [2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
意思是:
最大虚拟内存区域 vm.max_map_count [65530] 太低,请至少增加到 [262144]

这个 vm.max_map_count 在没有配置的情况下,默认是 65530,因为默认的比较少,不足以支撑es启动,所以我们需要去配置一下这个参数

  1. 启动Elasticsearch
[root@test-server02 ~]# su - elastic -c "/opt/elasticsearch/bin/elasticsearch --daemonize --silent"
  1. 安装Cerebro

Elasticsearch的管理工具Cerebro部署

1.下载部署包

https://github.com/lmenezes/cerebro/releases/download/v0.9.4/cerebro-0.9.4.tgz
#可以通过github下载通过github下载

#百度网盘下载
通过网盘分享的文件:cerebro-0.9.4.tgz
链接: https://pan.baidu.com/s/1Nr81_wTVV9d3FPmfn14XyA 提取码: 1021

2.上传文件
[root@test-server02 opt]# ll cerebro-0.9.4.tgz
-rw-r--r-- 1 root root 57244792 Feb 12 13:37 cerebro-0.9.4.tgz

3.解压部署包
[root@test-server02 opt]# tar -xf cerebro-0.9.4.tgz

4.修改配置
[root@test-server02 opt]# cd cerebro-0.9.4/conf/
[root@test-server02 conf]# vim application.conf
#最下面修改成Es的IP和集群名称

在这里插入图片描述

  1. 启动cerebro
[root@test-server02 cerebro-0.9.4]# nohup /opt/cerebro-0.9.4/bin/cerebro -Dhttp.port=1234 -Dhttp.address=192.168.40.181 &
  1. 访问cerebro页面

IP:1234
Es节点是正常状态

在这里插入图片描述


4.Logstash组件部署

Logstash单节点部署

Logstash下载地址

  1. 下载Logstash

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

  1. 安装Logstash
#上传部署包
[root@test-server03 opt]# ll logstash-7.17.18-linux-x86_64.tar.gz
-rw-r--r-- 1 root root 364233835 Feb 10 09:04 logstash-7.17.18-linux-x86_64.tar.gz

#解压部署包
[root@test-server03 opt]# tar -xf logstash-7.17.18-linux-x86_64.tar.gz

#创建软连接
[root@test-server03 opt]# ln -s /opt/logstash-7.17.18 logstash
  1. 配置Logstash
[root@test-server03 opt]# cd logstash/config/
[root@test-server03 config]# cat logstash.yml | grep -v '^\s*#' | grep -v '^\s*$'
node.name: test-logstash-node
path.data: /opt/logstash/data
api.http.host: 192.168.40.182
api.http.port: 9600
path.logs: /opt/logstash/logs

#配置介绍
1.node.name: test-logstash-node:Logstash 实例的节点名称。
2.path.data: /opt/logstash/data:Logstash 存储内部数据的路径。
3.api.http.host: 192.168.40.182:Logstash API 监听的主机 IP 地址。
4.api.http.port: 9600:Logstash API 监听的端口号。
5.path.logs: /opt/logstash/logs:Logstash 日志文件的存储路径。
  1. 创建日志目录和普通用户
#创建日志目录
[root@test-server03 opt]# mkdir /opt/logstash/logs

#新增普通用户
[root@test-server03 opt]# useradd logstash

#修改普通用户密码
[root@test-server03 opt]# passwd logstash
logstash/logstash

#授予普通用户权限
[root@test-server03 opt]# chown -R logstash.logstash logstash*
  1. 新建Logstash文件
[root@test-server03 config]# cat logstash.conf
input {
  file {
    path => "/var/log/nginx/access.log"         # Nginx access.log 路径
    start_position => "beginning"                # 从头读取日志
    sincedb_path => "/dev/null"                  # 每次重新读取日志
    codec => "plain"                             # 日志编码格式
  }
}


filter {
  grok {
    match => { "message" => "%{COMBINEDAPACHELOG}" }
  }
}


output {
  elasticsearch {
    hosts => ["http://192.168.40.181:9200"]      # Elasticsearch 地址
    index => "nginx-logs-%{+YYYY.MM.dd}"         # 索引名称,按日期分割
  }
  stdout { codec => rubydebug }                  # 控制台输出调试信息
}

#根据自己的需求去修改即可。或者通过ai去生成
  1. 赋予其他用户可读文件的权限
[root@test-server03 opt]# chmod o+r /var/log/nginx/access.log

#由于logstash是普通用户权限,如果不给文件赋予其他用户可读权限,logstash打不开这个文件然后会导致获取数据失败
  1. 启动Logstash
[root@test-server03 opt]# su logstash
[logstash@test-server03 opt]$ nohup /opt/logstash/bin/logstash -f /opt/logstash/config/logstash.conf > /dev/null 2>&1 &
  1. 测试Logstash状态
[root@test-server03 opt]# curl -XGET 'http://192.168.40.182:9600/_node/pipelines?pretty'
{
  "host" : "test-server03",
  "version" : "7.17.18",
  "http_address" : "192.168.40.182:9600",
  "id" : "f6df67d3-31c3-4551-98f1-30746b4b8563",
  "name" : "test-logstash-node",
  "ephemeral_id" : "ceac450a-b68a-43df-aefe-0e9b6717ff76",
  "status" : "green",
  "snapshot" : false,
  "pipeline" : {
    "workers" : 8,
    "batch_size" : 125,
    "batch_delay" : 50
  },
  "pipelines" : {
    "main" : {
      "ephemeral_id" : "d60bbfb7-08e6-4a4e-ae42-75b181632638",
      "hash" : "f58943ecfa9938796137f154d88da0c3b41eb40533e353aa6d9d57362a13a3b6",
      "workers" : 8,
      "batch_size" : 125,
      "batch_delay" : 50,
      "config_reload_automatic" : false,
      "config_reload_interval" : 3000000000,
      "dead_letter_queue_enabled" : false
    }
  }
}
  1. 查看Es是否创建了新的索引

出现此问题的原因是:副本分片无法分配的原因是因为副本分片不能和主分片在同一个节点上。此问题可以忽略,生产环境不会出现此问题。
在这里插入图片描述

  1. 短暂解决目前问题

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

状态正常
在这里插入图片描述
此时nginx的日志已经进入到了Es集群


5.Kibana组件部署

Kibana下载地址

  1. 下载Kibana

在这里插入图片描述

在这里插入图片描述

  1. 安装Kibana
#上传部署包
[root@test-server04 opt]# ll kibana-7.17.18-linux-x86_64.tar.gz
-rw-r--r-- 1 root root 301593515 Feb 11 13:51 kibana-7.17.18-linux-x86_64.tar.gz

#解压部署包
[root@test-server04 opt]# tar -xf kibana-7.17.18-linux-x86_64.tar.gz

#创建软连接
[root@test-server04 opt]# ln -s /opt/kibana-7.17.18-linux-x86_64 kibana
  1. 配置Kibana
[root@test-server04 kibana]# cd config/
[root@test-server04 config]# cat kibana.yml | grep -v '^\s*#' | grep -v '^\s*$'
server.port: 5601
server.host: "192.168.40.183"
server.name: "test-server04"
elasticsearch.hosts: ["http://192.168.40.181:9200"]
logging.dest: /opt/kibana/logs/kibana.log
logging.verbose: true
i18n.locale: "zh-CN"

#配置介绍
1.server.port:设置 Kibana 的 Web 服务端口(默认为 5601)。
2.server.host:设置 Kibana 监听的 IP 地址,指定机器的 IP 或 localhost。
3.server.name:Kibana 实例的名称,用来标识。
4.elasticsearch.hosts:配置 Kibana 连接的 Elasticsearch 地址。
5.logging.dest:设置 Kibana 的日志文件路径。
6.logging.verbose:开启详细日志(true 为详细,false 为普通)。
7.i18n.locale:设置 Kibana 的语言,zh-CN 为简体中文。
  1. 创建日志目录和普通用户
#创建日志目录
[root@test-server04 opt]# mkdir kibana/logs

#新增普通用户
[root@test-server04 opt]# useradd kibana

#修改普通用户密码
[root@test-server04 opt]# passwd kibana

#赋予普通用户权限
[root@test-server04 opt]# chown -R kibana.kibana kibana*
  1. 启动Kibana
su - kibana -c "nohup /opt/kibana/bin/kibana > /dev/null 2>&1 &"

6.Kibana的基础使用

  1. 访问Kibana Web页面

IP:5601

选择Discover
在这里插入图片描述

创建索引模式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

12号下午两点半产生了8条日志
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/969497.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

08模拟法 + 技巧 + 数学 + 缓存(D3_数学)

目录 1. 多数元素 1.1. 题目描述 1.2. 解题思路 方法一:哈希表 方法二:排序 方法三:随机化 方法四:分治 方法五:Boyer-Moore 投票算法 2. 按规则计算统计结果 2.1. 题目描述 2.2. 解题思路 3. 整数拆分 3.…

基于IOS实现各种倒计时功能

ZJJTimeCountDown 效果图 特点: 1、已封装,支持自定义 2、支持文本各种对齐模式 3、各种效果都可以通过设置 ZJJTimeCountDownLabel 类属性来实现 4、支持背景图片设置 5、分文本显示时间时,支持设置文字大小,来动态设置每个文本…

【TS合成MP4】你怎么专打裂开的切片呀

写在前面:本博客仅作记录学习之用,部分图片来自网络,如需引用请注明出处,同时如有侵犯您的权益,请联系删除! 文章目录 前言TS与MP4格式概述TS与MP4格式概述TS合成MP4的需求背景TS合成MP4的方法概述 合并方法…

【动手学强化学习】01初探强化学习

文章目录 什么是强化学习强化学习解决的问题强化学习的独特性 什么是强化学习 强化学习是机器通过与环境交互来实现目标的计算方法。智能体与环境的交互方式如图所示,在每一轮交互中,智能体根据感知状态经过自身计算给出本轮动作,将其作用于…

C++,STL容器适配器,priority_queue:优先队列深入解析

文章目录 一、容器概览与核心特性核心特性速览二、底层实现原理1. 二叉堆结构2. 容器适配器架构三、核心操作详解1. 容器初始化2. 元素操作接口3. 自定义优先队列四、实战应用场景1. 任务调度系统2. 合并K个有序链表五、性能优化策略1. 底层容器选择2. 批量建堆优化六、注意事项…

duckdb导出Excel和导出CSV速度测试

运行duckdb数据库 D:>duckdb v1.2.0 5f5512b827 Enter “.help” for usage hints. Connected to a transient in-memory database. Use “.open FILENAME” to reopen on a persistent database. 生成模拟数据,10个列,100万行数据; --…

k8s集群离线安装kuberay operator

1,安装方式 采用helm安装方式,首先下载对应的helm chart,这里采用v1.2.2版本,下载地址: https://github.com/ray-project/kuberay-helm/releases/tag/kuberay-operator-1.2.2 2,解压并修改镜像源 由于是在内网环境下搭建&#…

结构形模式---适配器模式

适配器模式是一种结构形模式,主要用于不同在两个互不兼容的类或者库之间增加一个转换。 适配器模式的实现由两种方式,一种是适配器对象,一种是适配器类。 适配器是对象是将第三方接口通过对象调用引入到适配器中。 适配器类是通过多继承将…

面向SDV的在环测试深度解析——概述篇

1.引言 在汽车行业迈向软件定义汽车(SDV)的进程中,传统的硬件在环(HIL)测试方案在面对新的技术架构和需求时逐渐显露出局限性。一方面,现代汽车的电子电气架构日益复杂,高性能计算(…

2025年智慧城市解决方案下载:AI-超脑中台,体系架构整体设计

2025年,随着人工智能、物联网、大数据等新兴技术的深度融合,智慧城市解决方案正迈向更高层次的智能化和协同化阶段。其中,AI-超脑中台作为核心架构的一部分,为城市智能化运行提供了强大支撑。 智慧城市最新解决方案,标…

LINUX常用命令学习

查看系统版本 使用hostnamectl命令检查。hostnamectl显示了CentOS的版本以及操作系统的相关信息,非常方便 设置linux机器别名称 hostnamectl set-hostname 机器别名 --static 华为云 centos 命令:lsb_release -a linux:cat /proc/version 查看进程路…

RK3588 Linux平台部署DeepSeek模型教程

更多内容可以加入Linux系统知识库套餐(教程+视频+答疑) 文章目录 一、下载rknn-llm 和 deepseek模型二、RKLLM-Toolkit 安装2.1 安装 miniforge3 工具2.2 下载 miniforge3 安装包2.3 安装 miniforge3 三、创建 RKLLM-Toolkit Cond…

Azure从0到1

我能用Azure做什么? Azure提供100多种服务,能够从在虚拟机上运行现有应用程序到探索新的软件范式,如智能机器人和混合现实。许多团队开始通过将现有应用程序移动到在Azure中运行的虚拟机(VM)来探索云。将现有应用程序迁移到虚拟机是一个良好的开端,但云不仅仅是运行虚拟…

智慧城市V4系统小程序源码独立版全插件全开源

智慧城市V4系统小程序源码:多城市代理同城信息服务的全域解决方案 在数字化浪潮的推动下,智慧城市已成为全球发展的核心战略。作为这一领域的革新者,智慧城市V4系统小程序源码凭借其多城市代理同城信息服务能力与多商家营销功能,…

JAVA-Lambda表达式(高质量)

要了解Lambda表达式,首先需要了解什么是函数式接口,函数式接口定义:一个接口有且只有一个抽象方法 。 一、函数式接口 1.FunctionalInterger 注意: 1. 如果一个接口只有一个抽象方法,那么该接口就是一个函数式接口 2. 如果我们…

机器视觉--Halcon变量的创建与赋值

一、引言 在机器视觉领域,Halcon 作为一款强大且功能丰富的软件库,为开发者提供了广泛的工具和算子来处理各种复杂的视觉任务。而变量作为程序中存储和操作数据的基本单元,在 Halcon 编程中起着至关重要的作用。正确地创建和赋值变量是编写高…

优选驾考小程序

第2章 系统分析 2.1系统使用相关技术分析 2.1.1Java语言介绍 Java语言是一种分布式的简单的 开发语言,有很好的特征,在安全方面、性能方面等。非常适合在Internet环境中使用,也是目前企业级运用中最常用的一个编程语言,具有很大…

ubuntu 22.04 安装vsftpd服务

先决条件,确保你已经配置好了存储库。 安装vsftpd 为了方便实验,我已经切换到了root用户。 rootlocal:~# apt-get install vsftpd修改配置 配置文件在 /etc/vsftpd.conf rootlocal:~# grep -vE ^#|^$ /etc/vsftpd.conf listenNO listen_ipv6YES anonymou…

Uniapp 获取定位详解:从申请Key到实现定位功能

文章目录 前言一、申请定位所需的 Key1.1 注册高德开发者账号1.2 创建应用1.3 添加 Key 二、在 Uniapp 中配置定位功能2.1 引入高德地图 SDK2.2 获取定位权限 三、实现定位功能3.1 使用 uni.getLocation 获取位置3.2 处理定位失败的情况3.3 持续定位3.4 停止持续定位 四、总结 …

MATLAB电机四阶轨迹规划考虑jerk、Djerk

1、内容简介 略 126-可以交流、咨询、答疑 2、内容说明 略 在电机控制中,轨迹规划是一个重要的环节,它决定了电机如何从一个状态平滑地过渡到另一个状态。四阶轨迹规划考虑了位置、速度、加速度和加加速度(jerk),有…