elk在宝塔中的简单部署和使用

news2024/9/20 20:24:26

ELK是什么?了解elk

“ELK” 是 Elasticsearch、Logstash 和 Kibana 三个开源软件的首字母缩写。这三个软件一起常被称为 “ELK Stack” 或 “Elastic Stack”。它们主要用于日志管理和分析,提供了强大的数据搜索、分析和可视化功能。

  1. Elasticsearch:一个分布式搜索和分析引擎,能够实时处理大数据量,提供强大的全文搜索功能。
  2. Logstash:一个数据收集引擎,可以从各种来源收集数据,进行过滤和转换,然后将数据发送到存储库(如 Elasticsearch)。
  3. Kibana:一个数据可视化平台,允许用户通过图表和图形查看和分析存储在 Elasticsearch 中的数据。

这些工具组合在一起,为用户提供了一个强大的平台,用于实时搜索、分析和可视化日志数据。

每个工具都是单独存在的而不会互相影响,在实际使用中,需要将三者分别运行,并打通整个流程。

名词介绍:

elastic中的索引:是一个逻辑命名空间,包含一组相关的文档,类似于传统关系型数据库中的数据库。

es中的文档:是 Elasticsearch 中存储的基本数据单元,表示一条记录或一项数据,类似于数据库中的一行。

字段(Field):文档由若干字段组成,每个字段有一个字段名和字段值,字段值可以是多种类型,如字符串、数字、日期等。

详细来说:

整个日志的收集流程为:先通过logstash(或其他工具代替收集数据,例如轻量级的filebeat,可以适用于大多数情况,也可根据实际情况可以选择不同的收集工具), 收集多种不同格式的数据,并转换成es可以分辨的格式(如json)存入es中指定的索引中,然后通过kibana就可以查看es中收到的数据。

具体实现(我的配置是linux服务器宝塔操作,项目运行时日志是存放在txt文件中,搭建elk(没有用l而是filebeat)在同一台服务器上对项目日志进行查看):

首先进行软件的安装:

docker pull elasticsearch:7.12.0
docker pull kibana:7.12.0
docker pull logstash:7.12.0

一定要注意,软件版本要统一;(也可以使用wget命令下载我用的是fliebeat)

然后使用docker images查看镜像是否拉取成功;

image-20240708110742044

第三步:创建一个容器网络:(使在不同容器中的应用可以通过容器网络互相通信)

docker network create elk_network

前置工作结束:

elastic

开始启动软件:

启动es

docker run -itd --name elasticsearch --net elk_network -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node"  -e ES_JAVA_OPTS="-Xms256m -Xmx512m" elasticsearch:7.12.0

复制容器镜像文件(用于文件映射)

docker cp elasticsearch:/usr/share/elasticsearch/config/elasticsearch.yml /home/elasticsearch/config/elasticsearch.yml
docker cp elasticsearch:/usr/share/elasticsearch/plugins /home/elasticsearch/plugins
docker cp elasticsearch:/usr/share/elasticsearch/data /home/elasticsearch/data
docker cp elasticsearch:/usr/share/elasticsearch/logs /home/elasticsearch/logs

不知道docker中文件映射是什么意思的可以去了解一下,不使用而直接去指定镜像中修改配置文件也是可以的(演示中并没有使用)

若使用的是宝塔,可以直接在docker中进入镜像目录对原文件进行修改:

image-20240708112529121

修改elasticsearch.yml的配置:文件中加上:

xpack.security.enabled: true
xpack.security.audit.enabled: true
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: true

重启es

image-20240708112434759

然后在elasticsearch/bin目录下打开终端,运行:

./elasticsearch-setup-passwords  interactive

会进入初始化密码:请记住自己设置的密码

image-20240708143153499

kibana

首先启动kibana

docker run -d --name kibana --net elk_network -p 5601:5601 -e "ELASTICSEARCH_HOSTS=http://[elasticsearch启动ip地址]:9200" kibana:7.12.0

ip地址填写自己服务器的地址。

docker cp kibana:/usr/share/kibana/config/kibana.yml /home/kibana/config/kibana.yml

复制镜像用于文件映射或直接进入配置文件中修改

修改配置文件信息:

elasticsearch.username: "elastic"
elasticsearch.password: [es密码]

重启kibana

image-20240708140622897

下载filebeat

直接使用wget下载:

# 进入文件夹
cd /opt/elk/
# 下载
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.8.1-linux-x86_64.tar.gz
# 解压文件
tar -zxvf filebeat-8.8.1-linux-x86_64.tar.gz 
# 重命名
mv filebeat-8.8.1-linux-x86_64  filebeat

进入到filebeat目录下,创建对应的配置文件

filebeat配置文件默认在etc/filebeat文件夹下:

image-20240708141442409

进入:filebeat.yml修改配置文件:

我的这个项目是将日志存放在项目下文件夹中,所以需要指定文件位置为:

filebeat.inputs:
- type: filestream
  id: my-filestream-id
  enabled: true
  paths:
    - /www/wwwroot/campus_forum/logs/*.log
  index: "campus"

配置filebeat模版的路径和重新加载设置:

filebeat.inputs:
- type: filestream
  id: my-filestream-id
  enabled: true
  paths:
    - /www/wwwroot/campus_forum/logs/*.log
  index: "campus"

配置输出到elastic的设置

output.elasticsearch:
  hosts: ["localhost:9200"]
  username: "elastic"
  password: "123456"

配置处理器:(不能多打空格)

processors:
  - add_host_metadata:
      when.not.contains.tags: forwarded
  - add_cloud_metadata: ~
  - add_docker_metadata: ~
  - add_kubernetes_metadata: ~
  - decode_json_fields:
      fields: ["message"]
      target: ""
      overwrite_keys: true

配置完成后保存退出。

启动filebeat:

sudo systemctl start filebeat

检查filebeat状态:

sudo systemctl status filebeat

image-20240708142048335

确保 Filebeat 在系统重启后自动启动:

sudo systemctl enable filebeat

万无一失后启动项目,启动elk的各个软件

查看ip+9200端口和ip+5601端口信息

image-20240708142231511

image-20240708142241735

(默认为非汉化,需要修改配置文件为汉化)

进入后点击右侧最下方进入创建索引并点击索引模式对索引进行修改(默认的会加入很多用不到的字段,需要对其进行隐藏)

image-20240708143225196

点击字段筛选,使用通配符屏蔽

image-20240708143219729

完成后点击左侧discover并选择相应的索引,就可以看到文件中的日志了,

image-20240708143207296

查看和查询都非常方便。

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

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

相关文章

C++初阶学习第一弹——入门学习C++

目录 1.什么是C 2.C关键字 3.命名空间 3.1命名空间的定义 3.2命名空间的使用 1、加命名空间名称及作用域限定符 2、使用 using 将命名空间中某个成员引入 3.使用using namespace 命名空间名称 引入 4.C输入&输出 5.缺省参数 5.1 缺省参数概念 5.2缺省参数分类 6. …

Dungeonborne卡顿延迟怎么办?这样降低Dungeonborne延迟

Dungeonborne将第一人称的动作的即时性和经典的西幻RPG职业设计深度结合,带来无与伦比的游戏体验。玩家在游戏中扮演一位从神秘地牢中醒来的勇士,他必须面对各种未知的敌人和挑战,逐渐揭开自己的身世之谜。在这个充满魔法和奇迹的世界里&…

【计算机毕业设计】015基于weixin小程序校园防疫

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

基于MATLAB的PEF湍流风场生成器模拟与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于MATLAB的PEF湍流风场生成器模拟与仿真。PEF(Primitive Equations Formulation)湍流风场模型,是大气科学和气象学中用来描述大气流动和气…

WebOffice在线编微软Offfice,并以二进制流的形式打开Word文档

在日常办公场景中,我们经常会遇到这种场景:我们的合同管理系统的各种Word,excel,ppt数据都是以二进制数组的形式存储在数据库中,如何从数据库中读取二进制数据,以二进制数据作为参数,然后加载到浏览器的Office窗口&…

【已解决】腾讯云安装了redis,但是本地访问不到,连接不上

汇总了我踩过的所有问题。 查看配置文件redis.conf 1、把bind 127.0.0.1给注释掉(前面加个#就是)或者改成bind 0.0.0.0,因为刚下载时它是默认只让本地访问。(linux查找文档里的内容可以输入/后面加需要匹配的内容,然后…

2024人工智能大会_强化学习论坛相关记录

求解大规模数学优化问题 规划也称为优化 四要素:数据、变量、目标、约束 将一个简单的数学规划问题项gpt进行提问,GPT给了一个近似解,但不是确切的解。 大模型的训练本身就是一个优化问题。 大模型是如何训练的?大模型训练通常使…

Unity通过NDK实现C#与C++之间的相互调用

由于一些历史遗留问题,我们项目还在使用一套C实现的Box2D定点数的库,由于最近修改了视野算法所以需要重新打包安卓的【.so】文件,特此记录 1、关于NDK 在Android平台,C/C需通过NDK编译成动态链接库.so文件,然后C#中通过…

MATLAB基础应用精讲-【数模应用】分层聚类(附python代码实现)

目录 前言 知识储备 层次聚类 1. 算法解读: 2. 步骤和细节: 3. 举例: 4. 算法评价: 5. 算法的变体: 算法原理 基本思想 分层聚类网络的原理 分层聚类网络的优势 分层聚类网络的应用领域 SPSSAU 分层聚类案例 1、背景 2、理论 3、操作 4、SPSSAU输出结果…

STM32智能机器人导航系统教程

目录 引言环境准备智能机器人导航系统基础代码实现:实现智能机器人导航系统 4.1 数据采集模块 4.2 数据处理与导航算法 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景:机器人导航应用与优化问题解决方案与优化收尾与总结 1. 引言 智能机器…

如何找到关于目标检测小论文的创新点

深度学习目标检测的小论文创新点 数据集预处理创新 主要包括图像增强、图像去雾、图像融合和图像降噪 例子: 比如在研究方向是检测晚上或者天气不好时骑电动车的人是否佩戴了安全头盔。一般的检测可能只能检测到正常天气情况下的骑电动车的人,而对于大雾天气和晚上…

LT7911UX 国产原装 一拖三 edp 转LVDS 可旋转 可缩放

2.一般说明 该LT7911UX是一种高性能Type-C/DP1.4a到MIPI或LVDS芯片的VR/显示应用。HDCP RX作为HDCP转发器的上游,可以与其他芯片的HDCP TX配合实现转发器功能。 对于DP1.4a输入,LT7911UX可配置为1/2/4通道。自适应均衡使其适用于长电缆应用,最…

基于单片机的空调控制器的设计

摘 要 : 以单片机为核心的空调控制器因其体积小 、 成本低 、 功能强 、 简便易行而得到广泛应用 。 本设计通过 AT89S52 控制DS18&a…

电商项目中分与元金额单位互转实战

在Java开发中,可能遇到金额单位的转换,比如本系统用分作为金额的基本单位,对方系统用元作为金额的基本单位,这就需要进行单位转换,记录下来,方便备查。 一、分转元 分转元,分到元相差两位&…

单片机软件架构连载(5)-队列

前面讲了指针、结构体之类的基础知识。 这篇内容开始,就要对这些基础知识,做一些复杂的应用了,比如说队列。 其实,在2018年的时候,我录制过一套程序架构的视频,里面有手把手写队列的教程,讲了一…

js逆向研究【案例实战2】

接口分析 数据接口如下: 没有关键词,选择使用接口路径定位js【使用路径api/coin/tickers】 定位到一下js文件,并在来源面板打开。 逆向调试与代码还原 搜索关键词JSON.parse 定位到以上的位置,断点调试后确定er函数即为解密…

CC2利用链分析

分析版本 Commons Collections 4.0 JDK 8u65 环境配置参考JAVA安全初探(三):CC1链全分析 分析过程 CC2是在CC4的基础上做了一点改动,和之前CC3结合CC1 InvokerTransformer一样的。CC3利用链分析 因为TemplatesImpl是可序列化的,利用反射把Template…

AI工具,如何通过 GPT-4o 提高工作效率

文章目录 引言一、理解GPT-4o及其功能二、如何利用GPT-4o提高工作效率1. 代码生成与优化2. 自动化测试与调试3. 技术文档撰写与知识管理 三、实际案例与成功应用1. GitHub 协作与问题解决2. 敏捷开发与迭代优化 四、GPT-4o的挑战与应对策略五、未来展望与发展方向六、结论 &…

开发任务优先级排序 6大影响因素

开发任务优先级排序,有助于项目关键任务获得充足资源,确保项目关键路径不受阻碍,助力项目按时完成,减少后期风险和不确定性。如果没有对开发任务进行优先级排序,团队可能会花费大量时间在低价值或非关键任务上&#xf…

昇思MindSpore学习入门-模型模块自定义

基础用法示例 神经网络模型由各种层(Layer)构成,MindSpore提供构造神经网络层的基础单元Cell,基于Cell进行神经网络封装。下面使用Cell构造经典模型AlexNet。 如图所示,AlexNet由5个卷积层与3个全连接层串联构成,我们使用mindspo…