Linux环境下 搭建ELk项目 -单机版练习

前言

ELK 项目是一个由三个开源工具组成的日志处理和分析解决方案,ELK 是 Elasticsearch、Logstash 和 Kibana 的首字母缩写。这个项目的目标是帮助用户采集、存储、搜索和可视化大量的日志和事件数据,尤其是在分布式系统中。下面是每个组件的概述:

1. Elasticsearch
功能:Elasticsearch 是一个基于 Apache Lucene 的开源搜索和分析引擎,主要用于存储和搜索大量的结构化和非结构化数据。它是 ELK 堆栈的核心,负责存储日志数据,并提供强大的查询和分析功能。
特点:
分布式:支持跨多台机器的数据存储与处理。
高性能:优化的索引和搜索算法,能够快速处理海量数据。
实时搜索:数据一旦被索引,就可以立即进行搜索和分析。
2. Logstash
功能:Logstash 是一个强大的日志收集、处理和转发工具,用于从不同的数据源收集数据,进行过滤、转换和增强,然后将处理后的数据发送到 Elasticsearch 或其他存储系统中。
特点:
多种输入源:支持从文件、数据库、消息队列、网络等多种来源收集数据。
丰富的过滤器:提供多种内置的过滤插件,可以对日志数据进行清洗、格式化和结构化处理。
输出插件:支持将数据输出到多种目标,如 Elasticsearch、Kafka、文件等。
3. Kibana
功能:Kibana 是用于数据可视化的前端工具,提供了一个易于使用的界面,让用户能够在 Elasticsearch 中存储的数据上执行分析、创建图表、仪表盘等可视化效果。
特点:
数据可视化:支持生成各种类型的图表、仪表盘和报告,帮助用户快速理解数据的趋势和模式。
查询和分析:用户可以通过 Kibana 进行简单的查询和复杂的分析,快速发现数据中的问题或规律。
交互式仪表盘:创建动态和交互式的仪表盘,实时监控和展示重要的指标。
ELK 堆栈的工作流程:
数据收集:Logstash 从不同的数据源收集原始日志数据。
数据处理:Logstash 对数据进行格式化、解析和增强等处理。
数据存储:经过处理的数据被存储在 Elasticsearch 中。
数据可视化:用户通过 Kibana 查询 Elasticsearch 中的数据,并通过图表、仪表盘等方式进行可视化分析。
ELK 的优势:
高效处理大规模日志数据:ELK 能够处理和分析来自多个来源的大规模日志数据。
实时分析:能够实时进行日志查询和分析,帮助运维和开发人员及时发现问题。
可视化:Kibana 提供了强大的数据可视化功能,帮助用户从海量日志数据中提取有价值的信息。
开放源代码:ELK 项目是开源的,用户可以自由地定制和扩展功能。
应用场景:
日志管理和分析:对服务器、应用程序、网络设备等产生的日志进行集中存储、处理和分析。
安全事件监控:监控网络安全事件、异常行为、入侵检测等。
性能监控:监控应用程序和系统的性能指标,帮助发现瓶颈或故障。
故障排除:通过分析日志数据,帮助快速定位和解决问题。
总结来说,ELK 项目(现在也叫 Elastic Stack)是一个强大的日志收集、存储、分析和可视化工具集,广泛应用于日志管理、性能监控、安全分析等领域。

 安装部署 Elasticsearch

更新系统(非必要)

sudo dnf update -y
步骤 一:

安装jdk  保证版本兼容Elasticsearch 所需要的 Java 运行环境。

sudo dnf install java-21-openjdk-devel

配置系统使用哪个 Java 版本作为默认版本。

sudo alternatives --config java


查看当前系统中安装的 Java 版本。

java -version
步骤二:

导入 Elasticsearch 的 GPG 公钥:

sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

配置 Elasticsearch 的 YUM 仓库:

sudo tee /etc/yum.repos.d/elasticsearch.repo <<EOF
[elasticsearch-8.x]
name=Elasticsearch repository for 8.x packages
baseurl=https://artifacts.elastic.co/packages/8.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
EOF

安装 Elasticsearch:

sudo dnf install -y elasticsearch

查询 Elasticsearch 包的详细信息:

rpm -qi elasticsearch

步骤三:

编辑 Elasticsearch 的配置文件 elasticsearch.yml:

sudo vim /etc/elasticsearch/elasticsearch.yml
#设置集群名称:
cluster.name: my-cluster
#设置节点名称:
node.name: node-1
#设置网络绑定地址(默认是绑定到本地环回地址,生产环境中可能需要改为 0.0.0.0 或具体的 IP 地址):
network.host: 0.0.0.0
#如果要设置 HTTP 端口:
http.port: 9200


:wq 保存退出。

步骤四:
启动 Elasticsearch 服务:
sudo systemctl start elasticsearch
设置 Elasticsearch 服务在系统启动时自动启动:
sudo systemctl enable elasticsearch
检查 Elasticsearch 服务的状态:
sudo systemctl status elasticsearch

步骤五:

创建自定义用户并设置密码(用户:my_user   密码:123456):

/usr/share/elasticsearch/bin/elasticsearch-users useradd my_user -p 123456 -r superuser
步骤 六:

配置防火墙

sudo firewall-cmd --zone=public --add-port=9200/tcp --permanent
sudo firewall-cmd --reload
步骤七:

浏览器访问 https://localhost:9200

登录账户和密码  之前步骤五:设置的 用户:my_user   密码:123456

输入以下内容表示成功

补充内容:
1、配置 Elasticsearch 的 Java 堆内存
sudo vim /etc/elasticsearch/jvm.options
-Xms4g
-Xmx4g
上述设置会将 Elasticsearch 的最小和最大堆内存大小都设置为 4GB。您可以根据您的硬件配置来调整这些值。

2、启动和监控 Elasticsearch 集群
运行健康检查:
curl -X GET "localhost:9200/_cluster/health?pretty"
查看节点信息:
curl -X GET "localhost:9200/_nodes?pretty"

安装部署Logstash

1、导入 Logstash 的 GPG 公钥:
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
2、配置 Logstash 的 YUM 仓库:
sudo tee /etc/yum.repos.d/logstash.repo <<EOF
[logstash-8.x]
name=Elastic Logstash repository for 8.x packages
baseurl=https://artifacts.elastic.co/packages/8.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
EOF
3、安装 Logstash:
sudo dnf install -y logstash
4、查询 Logstash 包的详细信息:
rpm -qi logstash 
5、编辑 Logstash 的配置文件 logstash.yml:
sudo vim /etc/logstash/logstash.yml  

添加以下内容:

http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: ["http://localhost:9200"]  
6、启动 Logstash 服务:
sudo systemctl start logstash  
设置 Logstash 服务在系统启动时自动启动:
sudo systemctl enable logstash
检查 Logstash 服务的状态:
sudo systemctl status logstash

安装部署Kibana

1、导入 Kibana 的 GPG 公钥:

sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

 2、配置 Kibana 的 YUM 仓库:

sudo tee /etc/yum.repos.d/kibana.repo <<EOF
[kibana-8.x]
name=Elastic Kibana repository for 8.x packages
baseurl=https://artifacts.elastic.co/packages/8.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
EOF

3、安装 Kibana

sudo dnf install -y kibana

4、查询 Kibana 包的详细信息:

rpm -qi kibana

5、编辑 Kibana 的配置文件 kibana.yml:

sudo vim /etc/kibana/kibana.yml

6、添加以下内容:

server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9200"]

7、启动 Kibana 服务:

sudo systemctl start kibana
设置 Kibana 服务在系统启动时自动启动:
sudo systemctl enable kibana  
检查 Kibana 服务的状态:
sudo systemctl status kibana

8、配置防火墙

sudo firewall-cmd --list-ports
sudo firewall-cmd --add-port=5601/tcp --permanent
sudo firewall-cmd --reload

9、浏览器访问 Kibana:
打开浏览器,访问http://localhost:5601。如果看到 Kibana 的 Web 界面,则表示安装成功。

补充说明:

安装目录和配置文件目录
Elasticsearch安装目录
cd /usr/share/elasticsearch/
编辑 Elasticsearch 的配置文件目录
sudo vim /etc/elasticsearch/elasticsearch.yml

安装 Logstash目录
cd /usr/share/logstash/
编辑 Logstash 的配置文件
sudo vim /etc/logstash/logstash.yml

安装 Kibana目录
cd /usr/share/kibana/
编辑 Kibana 的配置文件 kibana.yml:
sudo vim /etc/kibana/kibana.yml 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

探索 Vue.js 组件开发:从基础到进阶的完整指南

引言 在现代前端开发中&#xff0c;Vue.js 凭借其易用性和强大的功能&#xff0c;成为了开发者钟爱的框架之一。其核心理念——组件化开发&#xff0c;不仅让代码更加模块化、可维护&#xff0c;还大大提高了开发效率。本文将从基础入手&#xff0c;详细探讨 Vue.js 组件开发的…

智能工厂的设计软件 三种处理单元(NPU/GPU/CPU)及其在深度学习框架中的作用 之3(百度文库答问 之1)

Q&A&#xff08;百度文库&#xff09; Q1、今天聊聊“智能工厂的设计软件”中的三种处理单元&#xff08;NPU/GPU/CPU&#xff09;。一般来说提起这三者就不得不说“深度学习”。那我们就从这里开始。 请先给出一个程序例子来说明NPU 如何协作CPU和GPU来完成深度学习任务 …

jdk 离线安装脚本

jdk 离线安装脚本 说明脚本使用完整脚本脚本内容说明1、是否卸载原有jdk&#xff0c;检查安装包是否正确2、先卸载、再安装并检验安装成果 说明 经常装服务器环境&#xff0c;根据以前的安装经验写了个安装脚本。本人不是专业运维&#xff0c;也是边百度边写的&#xff0c;发现…

HTTP 常见的请求头有哪些? 作用?常见的使用场景都有哪些?

在 HTTP 协议中,**请求头(Request Headers)**是客户端向服务器发送请求时附带的元数据,主要用于传递请求的相关信息,比如客户端信息、请求的格式要求、认证信息等。理解这些请求头的作用和使用场景对于开发现代 Web 应用至关重要。以下是一些常见的 HTTP 请求头及其作用和…

day14-16系统服务管理和ntp和防火墙

一、自有服务概述 服务是一些特定的进程&#xff0c;自有服务就是系统开机后就自动运行的一些进程&#xff0c;一旦客户发出请求&#xff0c;这些进程就自动为他们提供服务&#xff0c;windows系统中&#xff0c;把这些自动运行的进程&#xff0c;称为"服务" window…

2024年底-Sre面试回顾

前言 背景: 2024.11月底 公司不大行了, 裁员收缩, 12月初开始面试, 2周大概面试了十几家公司, 3个2面要去线下, 有1个还不错的offer, 想结束战斗但还没到时候 个人情况: base上海 5年经验(2年实施3年运维半年开发) 面试岗位: Sre、云原生运维、驻场运维、高级运维、实施交付 …

pytest入门十:配置文件

pytest.ini&#xff1a;pytest的主配置文件&#xff0c;可以改变pytest的默认行为conftest.py&#xff1a;测试用例的一些fixture配置 pytest.ini marks mark 打标的执行 pytest.mark.add add需要些marks配置否则报warning [pytest] markersadd:测试打标 测试用例中添加了 p…

【Rust自学】3.6. 控制流:循环

3.6.0. 写在正文之前 欢迎来到Rust自学的第三章&#xff0c;一共有6个小节&#xff0c;分别是: 变量与可变性数据类型&#xff1a;标量类型数据类型&#xff1a;复合类型函数和注释控制流&#xff1a;if else控制流&#xff1a;循环&#xff08;本文&#xff09; 通过第二章…

【C#】方法参数的修饰符ref 与 out

在 C# 中&#xff0c;ref 和 out 是方法参数的修饰符&#xff0c;用于将参数 按引用传递&#xff0c;而不是按值传递。这允许方法修改调用者传递的变量的值。尽管它们的行为类似&#xff0c;但有重要的区别和适用场景。 1. ref 的含义与使用 含义 引用传递&#xff1a; 参数通…

js进阶语法详解

文章目录 js进阶语法详解一、引言二、闭包与作用域1、闭包1.1、示例代码 2、作用域2.1、示例代码 三、this关键字与函数调用1、this的指向1.1、示例代码 2、apply和call方法2.1、示例代码 四、异步编程1、Promise1.1、示例代码 五、JS的面向对象封装1、封装的概念1.1、构造函数…

Qt WORD/PDF(一)使用 QtPdfium库实现 PDF 预览

文章目录 一、简介二、下载 QtPdfium三、加载 QtPdfium 动态库四、Demo 使用 关于QT Widget 其它文章请点击这里: QT Widget 国际站点 GitHub: https://github.com/chenchuhan 国内站点 Gitee : https://gitee.com/chuck_chee 姊妹篇: Qt WORD/PDF&#x…

.Net WebAPI(一)

文章目录 项目地址一、WebAPI基础1. 项目初始化1.1 创建简单的API1.1.1 get请求1.1.2 post请求1.1.3 put请求1.1.4 Delete请求 1.2 webapi的流程 2.Controllers2.1 创建一个shirts的Controller 3. Routing3.1 使用和创建MapControllers3.2 使用Routing的模板语言 4. Mould Bind…

备战美赛!2025美赛数学建模C题模拟预测!用于大家练手模拟!

完整的思路代码模型见文末 2025 美赛数学建模 C 题 模拟题&#xff1a;城市交通拥堵指数的预测与管理策略 背景 随着全球城市化进程的加快&#xff0c;交通拥堵问题成为城市发展的重要挑战之一。交通拥堵不仅影响居民出行效率&#xff0c;还增加了能源消耗和碳排放。近年来&…

Java操作Redis-Jedis

介绍 前面我们讲解了Redis的常用命令&#xff0c;这些命令是我们操作Redis的基础&#xff0c;那么我们在 java程序中应该如何操作Redis呢&#xff1f;这就需要使用Redis的Java客户端&#xff0c;就如同我们使 用JDBC操作MySQL数据库一样。 Redis 的 Java 客户端很多&#xff0…

英语-日常笔记-2

You can refer to the previous code logic.你可以参考以前的代码逻辑 只是刚开始做 just started doing it/just began to do it 由你自己决定 it’s up to you /it depends on you 这一版需求不急 this demand version is not urgent there is no rush for this requireme…

Vue3 + Element-Plus + vue-draggable-plus 实现图片拖拽排序和图片上传到阿里云 OSS 父组件实现真正上传(最新保姆级)

Vue3 Element-Plus vue-draggable-plus 实现图片拖拽排序和图片上传到阿里云 OSS&#xff08;最新保姆级&#xff09;父组件实现真正上传 1、效果展示2、UploadImage.vue 组件封装3、相关请求封装4、SwiperConfig.vue 调用组件5、后端接口 1、效果展示 如果没有安装插件&…

将 Ubuntu 22.04 LTS 升级到 24.04 LTS

Ubuntu 24.04 LTS 将支持 Ubuntu 桌面、Ubuntu 服务器和 Ubuntu Core 5 年&#xff0c;直到 2029 年 4 月。 本文将介绍如何将当前 Ubuntu 22.04 系统升级到最新 Ubuntu 24.04 LTS版本。 备份个人数据 以防万一&#xff0c;把系统中的重要数据自己备份一下~ 安装配置SSH访问…

宝塔SSL证书申请失败,报错:申请SSL证书错误 module ‘OpenSSL.crypto‘ has no attribute ‘sign‘(已解决)

刚安装宝塔申请SSL就报错&#xff1a;申请SSL证书错误 module OpenSSL.crypto has no attribute sign 面板、插件版本&#xff1a;9.2.0 系统版本&#xff1a;Alibaba Cloud Linux 3.2104 LTS 问题&#xff1a;申请SSL证书错误 module OpenSSL.crypto has no attribute sign…

clickhouse优化记录

一、注重使用分区键来加快查询 在大数据量的情况下&#xff0c;如果查询语句中&#xff0c;可以使用分区键来进行查询&#xff0c;可以极大缩小数据的查询范围&#xff0c;加快查询速度。 二、使用order by的列&#xff0c;适用最左前缀匹配原则 比如表的结构是 order by(id…

【人工智能】从TF-IDF到BERT:Python实现文本分类的全面指南

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 文本分类是自然语言处理领域中的核心任务之一,被广泛应用于情感分析、垃圾邮件检测等场景。本文章通过完整的Python代码示例,从传统的TF-…