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

前言

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

  1. Elasticsearch

功能:Elasticsearch 是一个基于 Apache Lucene 的开源搜索和分析引擎,主要用于存储和搜索大量的结构化和非结构化数据。它是 ELK 堆栈的核心,负责存储日志数据,并提供强大的查询和分析功能。

特点:

分布式:支持跨多台机器的数据存储与处理。

高性能:优化的索引和搜索算法,能够快速处理海量数据。

实时搜索:数据一旦被索引,就可以立即进行搜索和分析。

  1. Logstash

功能:Logstash 是一个强大的日志收集、处理和转发工具,用于从不同的数据源收集数据,进行过滤、转换和增强,然后将处理后的数据发送到 Elasticsearch 或其他存储系统中。

特点:

多种输入源:支持从文件、数据库、消息队列、网络等多种来源收集数据。

丰富的过滤器:提供多种内置的过滤插件,可以对日志数据进行清洗、格式化和结构化处理。

输出插件:支持将数据输出到多种目标,如 Elasticsearch、Kafka、文件等。

  1. Kibana

功能:Kibana 是用于数据可视化的前端工具,提供了一个易于使用的界面,让用户能够在 Elasticsearch 中存储的数据上执行分析、创建图表、仪表盘等可视化效果。

特点:

数据可视化:支持生成各种类型的图表、仪表盘和报告,帮助用户快速理解数据的趋势和模式。

查询和分析:用户可以通过 Kibana 进行简单的查询和复杂的分析,快速发现数据中的问题或规律。

交互式仪表盘:创建动态和交互式的仪表盘,实时监控和展示重要的指标。

ELK 堆栈的工作流程:

数据收集:Logstash 从不同的数据源收集原始日志数据。

数据处理:Logstash 对数据进行格式化、解析和增强等处理。

数据存储:经过处理的数据被存储在 Elasticsearch 中。

数据可视化:用户通过 Kibana 查询 Elasticsearch 中的数据,并通过图表、仪表盘等方式进行可视化分析。

ELK 的优势:

高效处理大规模日志数据:ELK 能够处理和分析来自多个来源的大规模日志数据。

实时分析:能够实时进行日志查询和分析,帮助运维和开发人员及时发现问题。

可视化:Kibana 提供了强大的数据可视化功能,帮助用户从海量日志数据中提取有价值的信息。

开放源代码:ELK 项目是开源的,用户可以自由地定制和扩展功能。

应用场景:

日志管理和分析:对服务器、应用程序、网络设备等产生的日志进行集中存储、处理和分析。

安全事件监控:监控网络安全事件、异常行为、入侵检测等。

性能监控:监控应用程序和系统的性能指标,帮助发现瓶颈或故障。

故障排除:通过分析日志数据,帮助快速定位和解决问题。

总结来说,ELK 项目(现在也叫 Elastic Stack)是一个强大的日志收集、存储、分析和可视化工具集,广泛应用于日志管理、性能监控、安全分析等领域。

安装部署 Elasticsearch

更新系统(非必要)

bash 复制代码
sudo dnf update -y
步骤 一:

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

bash 复制代码
sudo dnf install java-21-openjdk-devel

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

bash 复制代码
sudo alternatives --config java

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

bash 复制代码
java -version
步骤二:

导入 Elasticsearch 的 GPG 公钥:

bash 复制代码
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

配置 Elasticsearch 的 YUM 仓库:

bash 复制代码
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:

bash 复制代码
sudo dnf install -y elasticsearch

查询 Elasticsearch 包的详细信息:

bash 复制代码
rpm -qi elasticsearch
步骤三:

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

bash 复制代码
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 保存退出。

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

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

bash 复制代码
/usr/share/elasticsearch/bin/elasticsearch-users useradd my_user -p 123456 -r superuser
步骤 六:

配置防火墙

bash 复制代码
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 公钥:
bash 复制代码
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
2、配置 Logstash 的 YUM 仓库:
bash 复制代码
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:
bash 复制代码
sudo dnf install -y logstash
4、查询 Logstash 包的详细信息:
bash 复制代码
rpm -qi logstash 
5、编辑 Logstash 的配置文件 logstash.yml:
bash 复制代码
sudo vim /etc/logstash/logstash.yml  

添加以下内容:

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

安装部署Kibana

1、导入 Kibana 的 GPG 公钥:

bash 复制代码
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

2、配置 Kibana 的 YUM 仓库:

bash 复制代码
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

bash 复制代码
sudo dnf install -y kibana

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

bash 复制代码
rpm -qi kibana

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

bash 复制代码
sudo vim /etc/kibana/kibana.yml

6、添加以下内容:

bash 复制代码
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9200"]

7、启动 Kibana 服务:

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

8、配置防火墙

bash 复制代码
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

相关推荐
得物技术8 小时前
从埋点需求到规则资产:Hermes Agent 重构得物数仓工作流
大数据·llm·ai编程
久美子9 小时前
AI驱动数仓建设的Harness工程实践——本体建模、知识分层与上下文工程
大数据
大树881 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠1 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
大志哥1231 天前
ES和Logstash日志链路系统上线后遭遇切片爆炸(解决)
大数据·elasticsearch
霸道流氓气质1 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
小宇宙Zz1 天前
Maven依赖冲突
java·服务器·maven
Inhand陈工1 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
果丁智能1 天前
物联网智能锁赋能集中式住宿:身份核验与远程权限管控的全链路技术实践
大数据·人工智能·物联网·智能家居
酣大智1 天前
ARP代理--工作原理
运维·网络·arp·arp代理