Elasticsearch+filefeat+Kibana(EFK)架构学习

news2024/10/3 8:24:37

一. 安装ES7集群

  1. 准备三台服,最少配置2core4G,磁盘空间最少20G,并关闭防火墙
  2. 设置集群免密登录,方便scp文件等操作参考集群免密登录方法
  3. 下载es7的elasticsearch-7.17.3-x86_64.rpm包
  4. 安装
yum -y localinstal elasticsearch-7.17.3-x86_64.rpm
  1. 修改node1配置文件
vim /etc/elasticsearch/elasticsearch.yml
cluster.name: elk
node.name: elk01
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
discovery.seed_hosts: ["10.10.10.11","10.10.10.12","10.10.10.13"]
cluster.initial_master_nodes: ["10.10.10.11","10.10.10.12","10.10.10.13"]

相关参数说明:

  • cluster.name:
    集群名称,若不指定,则默认是"elasticsearch",⽇志⽂件的前缀也是集群名称。
  • node.name:
    指定节点的名称,可以⾃定义,推荐使⽤当前的主机名,要求集群唯⼀。
  • path.data:
    数据路径。
  • path.logs:
    ⽇志路径
  • network.host:
    ES服务监听的IP地址
  • discovery.seed_hosts:
    服务发现的主机列表,对于单点部署⽽⾔,主机列表和"network.host"字段置相同即可
  1. 同步配置⽂件到集群的其他节点
data_rsync.sh /etc/elasticsearch/elasticsearch.yml
并修改其他两个节点的name
  1. 删除所有临时数据
rm -rf /var/{lib,log}/elasticsearch/* /tmp/*
ll /var/{lib,log}/elasticsearch/ /tmp/
  1. 分别在三个节点启动es服务
systemctl start elasticsearch

9.验证集群状态

curl 10.10.10.11:9200/_cat/nodes?v

在这里插入图片描述

二,在11机器上安装kibana

  1. 下载kibana的rpm包,并安装
yum -y localinstall kibana-7.17.3-x86_64.rpm 
  1. 修改kibana的配置⽂件
vim /etc/kibana/kibana.yml
...
server.host: "10.10.10.11"
server.name: "kibana-server"
elasticsearch.hosts:
["http://10.10.10.11:9200","http://10.10.10.12:9200","http://10.10.10.13:9200"]
i18n.locale: "en"
  1. 启动kibana服务
systemctl enable --now kibana
systemctl status kibana
systemctl start kibana

在这里插入图片描述

kibana的使用

  1. 下图1处是资源监控,监控节点,数据等,2处是stack管理
    在这里插入图片描述
  2. 点开stack管理,可以看见里面有如下图,1处是索引管理2、处是索引匹配规则,可以在索引pattern设置匹配的pattern,即可在discover里面显示匹配的模板。
    在这里插入图片描述

三,filebeat使用和配置模板

  1. 安装filebeat
yum -y localinstall filebeat-7.17.3-x86_64.rpm
  1. 编写配置文件,在/etc/filebeat/config目录下
mkdir /etc/filebeat/config
cat > /etc/filebeat/config/01-stdin-to-console.yml <<'EOF'
# 指定输⼊的类型
filebeat.inputs:
# 指定输⼊的类型为"stdin",表示标准输⼊
- type: stdin
# 指定输出的类型
output.console:
 # 打印漂亮的格式
 pretty: true
EOF

(2)运⾏filebeat实例,即可在控制台输入,控制台打印处理后的结果

filebeat -e -c /etc/filebeat/config/01-stdin-to-console.yml 

filebeat的几种模式和配置

  1. 直接控制台输入输出,就是上面配置。stadio格式
  2. log格式,直接读取log文件,并输出控制台,tags就是一个标签,用作判断,field是自定义的字段
filebeat.inputs:
- type: log
 # 是否启动当前的输⼊类型,默认值为true
 enabled: true
 # 指定数据路径
 paths:
 - /tmp/test.log
 - /tmp/*.txt
 # 给当前的输⼊类型搭上标签
 tags: ["测试","容器运维","DBA运维","SRE运维⼯程师"]
 # ⾃定义字段
 fields:
   school: "出去了化工大学"
- type: log
 enabled: true
 paths:
 - /tmp/test/*/*.log
 tags: ["kafka","云原⽣开发"]
 fields:
   name: "测试"
   hobby: "linux,抖⾳"
 # 将⾃定义字段的key-value放到顶级字段.
 # 默认值为false,会将数据放在⼀个叫"fields"字段的下⾯.
 fields_under_root: true
output.console:
 pretty: true
  1. 将输出写入elasticsearch
filebeat.inputs:
- type: log
 # 是否启动当前的输⼊类型,默认值为true
 enabled: true
 # 指定数据路径
 paths:
 - /tmp/test.log
 - /tmp/*.txt
 # 给当前的输⼊类型搭上标签
 tags: ["测试","容器运维","DBA运维","SRE运维⼯程师"]
 # ⾃定义字段
 fields:
   school: "出去了化工大学"
- type: log
 enabled: true
 paths:
 - /tmp/test/*/*.log
 tags: ["kafka","云原⽣开发"]
 fields:
   name: "测试"
   hobby: "linux,抖⾳"
 # 将⾃定义字段的key-value放到顶级字段.
 # 默认值为false,会将数据放在⼀个叫"fields"字段的下⾯.
 fields_under_root: true
output.elasticsearch:
 hosts:["http://10.10.10.11:9200","http://10.10.10.12:9200","http://10.10.10.13:9200"]

即可在kibana根据配置好的模板和pattern查询相应的日志记录
在这里插入图片描述
4. 配置日志过滤

 include_lines: ['^ERROR', '^WARN','DANGER']
 # 指定⿊名单,排除指定的内容
 exclude_lines: ['^DBUG',"TEST"]
  1. 自定义索引模板名称
filebeat.inputs:
- type: log
 # 是否启动当前的输⼊类型,默认值为true
 enabled: true
 # 指定数据路径
 paths:
 - /tmp/test.log
 - /tmp/*.txt
 # 给当前的输⼊类型搭上标签
 tags: ["测试","容器运维","DBA运维","SRE运维⼯程师"]
 # ⾃定义字段
 fields:
   school: "出去了化工大学"
- type: log
 enabled: true
 paths:
 - /tmp/test/*/*.log
 tags: ["kafka","云原⽣开发"]
 fields:
   name: "测试"
   hobby: "linux,抖⾳"
 # 将⾃定义字段的key-value放到顶级字段.
 # 默认值为false,会将数据放在⼀个叫"fields"字段的下⾯.
 fields_under_root: true
output.elasticsearch:
 hosts:["http://10.10.10.11:9200","http://10.10.10.12:9200","http://10.10.10.13:9200"]
 index: "es-linux-eslog-%{+yyyy.MM.dd}"
# 禁⽤索引⽣命周期管理
setup.ilm.enabled: false
# 设置索引模板的名称
setup.template.name: "es-linux-eslog"
# 设置索引模板的匹配模式
setup.template.pattern: "es-linux-eslog*"
  1. 多个索引,写入多个索引案例
filebeat.inputs:
- type: log
 # 是否启动当前的输⼊类型,默认值为true
 enabled: true
 # 指定数据路径
 paths:
 - /tmp/test.log
 - /tmp/*.txt
 # 给当前的输⼊类型搭上标签
 tags: ["测试","容器运维","DBA运维","SRE运维⼯程师"]
 # ⾃定义字段
 fields:
   school: "出去了化工大学"
- type: log
 enabled: true
 paths:
 - /tmp/test/*/*.log
 tags: ["kafka","云原⽣开发"]
 fields:
   name: "测试"
   hobby: "linux,抖⾳"
 # 将⾃定义字段的key-value放到顶级字段.
 # 默认值为false,会将数据放在⼀个叫"fields"字段的下⾯.
 fields_under_root: true
output.elasticsearch:
 hosts:["http://10.10.10.11:9200","http://10.10.10.12:9200","http://10.10.10.13:9200"]
  indices:
 - index: "es-linux-eslog-%{+yyyy.MM.dd}"
 # 匹配指定字段包含的内容
   when.contains:
     tags: "DBA运维"
 - index: "es-linux-eslog-DBA-%{+yyyy.MM.dd}"
   when.contains:
     tags: "kafka"
 
#
# 禁⽤索引⽣命周期管理
setup.ilm.enabled: false
# 设置索引模板的名称
setup.template.name: "es-linux-eslog"
# 设置索引模板的匹配模式
setup.template.pattern: "es-linux-eslog*"

  1. 日志的多行匹配,参考官方图
    在这里插入图片描述
multiline.type: pattern
# 指定匹配模式
#表示收集[开头到下一个[开头的位置的日志
 multiline.pattern: '^\['
# 下⾯2个参数参考官⽅架构图即可,如上图所示。
 multiline.negate: true
 multiline.match: after

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

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

相关文章

【SpringMVC】SpringMVC(一:第一个SpringMVC项目)

文章目录1. SSM优化的方向2.SpringMVC的优点3. SpringMVC的优化方向4.SpringMVC执行流程5.第一个SpringMVC项目5.1 创建工程5.2 添加依赖5.3 替换web.xml5.4 开发流程5.4.1完成springmvc.xml文件的配置5.4.2在web.xml文件中注册SpringMVC框架。5.4.3 编写控制器5.4.4 开发页面&…

【Spring Boot】SpringBoot参数验证以及实现原理

文章目录前言SpringBoot参数验证技巧&#xff08;12个技巧&#xff09;一、使用验证注解二、使用自定义验证注解三、在服务器端验证四、提供有意义的错误信息五、将 i18n 用于错误消息六、使用分组验证七、对复杂逻辑使用跨域验证八、对验证错误使用异常处理九、测试你的验证逻…

天啊!炫云的这个智能优化太给力了,渲染费竟然降了这么多!

兄弟们&#xff0c;你们是不是有时候一不小心把自己某一个参数设置错了&#xff0c;导致自己提交到云渲染平台的效果图费用突然增多&#xff0c;找平台理论最后发现是自己参数设置错误导致的问题&#xff0c;又或者对自己的参数设置把握不准的&#xff1f;现在这些问题你都可以…

计算机颜色学---CIE 色度图以及饱和度处理

前言 了解颜色相关理论与成像知识&#xff0c;对于深入了解视觉相关算法与ISP算法而言十分重要&#xff0c;了解颜色理论&#xff0c;离不开CIE色度图&#xff1b; CIE 1931色度图相关知识 CIE 1931 Yxy色度图。外形形似马蹄&#xff0c;所以也叫“马蹄图”&#xff1b; 在色…

ViTPose

具体而言&#xff0c;ViTPose使用普通和非分层vit Transformer[14]作为backbone来提取给定人物实例的特征图&#xff0c;其中backbone通过掩蔽图像建模借口任务&#xff08;例如MAE[16]&#xff09;进行预训练&#xff0c;以提供良好的初始化。然后&#xff0c;下面的轻量级解码…

c++获取时间戳的方法总结

目录1. 系统级时间戳获取方法1.1 Windows系统获取时间间隔的方式1.2 Linux系统获取时间间隔的方式1.3 获取时间戳2. c语言获取时间戳1. 系统级时间戳获取方法 1.1 Windows系统获取时间间隔的方式 API说明 Windows平台下使用 GetLocalTime VOID GetLocalTime(LPSYSTEMTIME lp…

axios起步——介绍和使用 post请求

axios起步——介绍和使用基本用例post请求场景复现核心干货axios简介axios是什么&#xff1f;axios特性axios安装axios基本用例发起一个GET请求用axios发起POST请求发起一个POST请求发起多个POST请求利用json-server创建服务&#xff0c;发起四种请求场景复现 最近学习与前端相…

Vue:组件化开发

一、组件的使用 1、创建组件(结构HTML 交互JS 样式CSS) Vue.extend({该配置项和new Vue的配置项几乎相同&#xff0c;略有差别}) 区别&#xff1a;①创建vue组件的时候&#xff0c;配置项中不能使用el配置项。(但是需要使用template配置项来配置模板语句) ②配置项中的da…

Vue常用方法汇总【更新中】

文章目录vue-router 安装使用axios 安装使用vuex 安装使用插件使用方法&#xff08;含elementUI安装方法&#xff09;全局变量使用方法父子组件传值方法pythonvue 打包 windows 桌面应用fastApivue 实现 WebSockets 服务端推送在 docker 中使用 nginx 部署 vue 项目声明式路由导…

详解FreeRTOS中的信号量(semaphore)

信号&#xff0c;顾名思义最基础的作用是通知&#xff0c;量&#xff0c;表示数量&#xff0c;意思就是可以有多个信号。在不同的场景延伸下&#xff0c;还有同步和互斥访问资源的作用&#xff08;这都是通知作用的延伸&#xff09;。 当"量"没有限制时&#xff0c;…

SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈(Eureka、Ribbon)

微服务技术栈导学 微服务技术是分布式架构&#xff08;把服务做拆分&#xff09;的一种 而springcloud仅仅是解决了拆分时的微服务治理的问题&#xff0c;其他更复杂的问题并没有给出解决方案 一个完整的微服务技术要包含的不仅仅是springcloud 微服务技术栈 包括什么 …

什么是远程办公,如何挑选远程办公软件

远程办公已经不再是新型工作模式&#xff0c;随着科技的发展和全球化的趋势&#xff0c;越来越多的企业和个人已经开始接受这种新型的工作模式。远程办公可以让员工在家里或者任何地方工作&#xff0c;不用去公司办公室&#xff0c;大大提高了员工的工作效率和生活质量。本文将…

hdfs命令行操作

文章目录1. 对文件夹进行操作1.1 ls:对路径进行访问1.2 mkdir:对路径进行创建1.3 rm:对路径进行删除2.对文件进行操作2.1在文件系统中创建空文件2.2上传本地文件到hdfs上2.3 从hdfs上下载文件到本地路径2.4 查看hdfs 上的文件内容2.5 对hdfs上的文件进行复制2.6 追加本地文件内…

微服务·入门·贰——注册中心nacos、eureka

文章目录1. 微服务问题解决服务治理问题1.1 问题抛出1.2 解决方法2 Eureka注册中心2.1 Eureka解决的问题2.2 Eureka的结构和作用2.2.1 Eureka的作用2.2.2 order-service如何得知user-service实例地址 &#xff1f;2.2.3 order-service如何从多个user-service实例中选择具体实例…

家政服务小程序实战开发教程019-我的预约功能(已完结)

我们上一篇讲解了用户注册的功能&#xff0c;注册完毕后页面需要显示用户的头像和昵称&#xff0c;并显示我的预约的菜单&#xff0c;本篇我们介绍一下如何开发。 1 显示用户头像和昵称 在未注册时我们显示了一个默认的头像&#xff0c;已注册需要显示用户的头像。思路是将未…

【零基础入门 Nginx】——万字文章通俗易懂

一、Nginx 简介 1️⃣ Nginx 概述 Nginx&#xff08;Engine X&#xff09; 是一个高性能的HTTP和反向代理服务器&#xff0c;特点是占有内存少&#xff0c;并发能力强。同时也提供了IMAP/POP3/SMTP服务 nginx可以作为静态页面的web服务器&#xff0c;同时还支持CGI协议的动态…

WebRTC 系列(二、本地通话,H5、Android、iOS)

WebRTC 系列&#xff08;一、简介&#xff09;​​​​​​​ 一、整体流程 有了上一篇 WebRTC 简介的基础&#xff0c;我们知道了 WebRTC 的工作流程&#xff0c;接下来就是需要用代码去实现这个流程了。对于不同端&#xff0c;实现起来的难易程度可能略微不同&#xff08;实…

RHCE第二次作业ssh远程连接和NTP时间服务器

1.配置ntp时间服务器&#xff0c;确保客户端主机能和服务主机同步时间 在服务器准备工作查看服务是否开启&#xff0c;查看是否运行 同步时间&#xff0c;编辑/etc/chrony.conf,层级优先级10&#xff0c;在允许客户机。 暂时关闭防火墙&#xff0c;关闭服务后&#xff0c;重启…

vue3-element-plus表单校验和多选表格table的基本使用

表单校验 <script setup> import { ref } from "vue"; // 登录的表单数据(绑定到最外层的from标签上) //里面的每个属性都与element-plus的表单标签进行双向绑定,具体可以看html代码 const loginForm ref({username: "",password: "",lo…

双向可控硅详细用法说明

可控硅作为功率开关器件&#xff0c;在各种需要控制功率的电子产品中经常用到&#xff0c;我所涉及的行业为家电产品研发&#xff0c;比如发热丝、发热管的控温&#xff0c;或者AC电机、水泵的控速等&#xff1b;由于双向可控硅是在单向可控硅的基础上发展而来且应用场景更广&a…