轻量日志管理方案-[EFK]
使用FileBeat进行日志文件的数据收集,并发送到ES进行存储,最后Kibana进行查看展示;
这个应该是最简单,轻量的日志收集方案了。最总方案为:FileBeat+ES+Kibana ; 【Kibana过于强大,感觉可以无限扩展】
文章目录
- @[toc]
- 尝试内容
- 搭建【ES】
- 搭建【kibana】
- 搭建【filebeat】
- 使用【kibana】
- 日志查看
- 数据统计
- Nginx日志栗子
- 扩展
- 参考各种的东东
文章目录
- @[toc]
- 尝试内容
- 搭建【ES】
- 搭建【kibana】
- 搭建【filebeat】
- 使用【kibana】
- 日志查看
- 数据统计
- Nginx日志栗子
- 扩展
- 参考各种的东东
尝试内容
在114上部署ES+Kibana,对113的隧道消防服务做日志收集,在100Nginx做日志收集
搭建【ES】
docker network create elastic
# 3ef299947c816f6b1eda8790a8a1b2306409ae07f0371413bd037a892685e32c
# 拉取
docker pull docker.elastic.co/elasticsearch/elasticsearch:8.8.1
# 启动
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -e "discovery.type=single-node" --name es-node01 --net elastic -p 9200:9200 -p 9300:9300 -t docker.elastic.co/elasticsearch/elasticsearch:8.8.1━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ Elasticsearch security features have been automatically configured!
✅ Authentication is enabled and cluster connections are encrypted.ℹ️ Password for the elastic user (reset with `bin/elasticsearch-reset-password -u elastic`):LQtjAfZ7ncioEEAehcxlℹ️ HTTP CA certificate SHA-256 fingerprint:d26d334c21311131ba75516d5c26a36441a1020e723848c6d19bfeb2b397beccℹ️ Configure Kibana to use this cluster:
• Run Kibana and click the configuration link in the terminal when Kibana starts.
• Copy the following enrollment token and paste it into Kibana in your browser (valid for the next 30 minutes):eyJ2ZXIiOiI4LjguMSIsImFkciI6WyIxNzIuMTguMC4yOjkyMDAiXSwiZmdyIjoiZDI2ZDMzNGMyMTMxMTEzMWJhNzU1MTZkNWMyNmEzNjQ0MWExMDIwZTcyMzg0OGM2ZDE5YmZlYjJiMzk3YmVjYyIsImtleSI6IkhXc2pfSWdCYkR5UzZVUFBiUTNnOlRLSk5yQkVxUjdpUUZCZE5rSU96ZHcifQ==ℹ️ Configure other nodes to join this cluster:
• Copy the following enrollment token and start new Elasticsearch nodes with `bin/elasticsearch --enrollment-token <token>` (valid for the next 30 minutes):eyJ2ZXIiOiI4LjguMSIsImFkciI6WyIxNzIuMTguMC4yOjkyMDAiXSwiZmdyIjoiZDI2ZDMzNGMyMTMxMTEzMWJhNzU1MTZkNWMyNmEzNjQ0MWExMDIwZTcyMzg0OGM2ZDE5YmZlYjJiMzk3YmVjYyIsImtleSI6Ikcyc2pfSWdCYkR5UzZVUFBiUTNmOmRpRlAyb3NJUXUyZE1WWnpkMi1DbmcifQ==If you're running in Docker, copy the enrollment token and run:`docker run -e "ENROLLMENT_TOKEN=<token>" docker.elastic.co/elasticsearch/elasticsearch:8.8.1`
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# 过期了用这个去es下生成/usr/share/elasticsearch/bin
bin\elasticsearch-create-enrollment-token --scope kibana docker cp es-node01:/usr/share/elasticsearch/config/elasticsearch.yml ./elasticsearch.yml
# 修改容器内部/usr/share/elasticsearch/config/elasticsearch.yml文件中xpack.security.enabled的值为false。
docker cp ./elasticsearch.yml es-node01:/usr/share/elasticsearch/config/elasticsearch.yml
搭建【kibana】
# 拉取
docker pull docker.elastic.co/kibana/kibana:8.8.1
# 启动
docker run --name kib-01 --net elastic -p 5601:5601 docker.elastic.co/kibana/kibana:8.8.1
# /usr/share/kibana/config
Go to http://0.0.0.0:5601/?code=code=093966 to get started.
# 这个code用来验证使用用户:elastic 密码:LQtjAfZ7ncioEEAehcxl# 配置为中文汉化docker cp kib-01:/usr/share/kibana/config/kibana.yml /home/kibana/config/kibana.yml# 修改文件 添加中文配置i18n.locale: "zh-CN"# 再次复制替换回去docker cp /home/kibana/config/kibana.yml kib-01:/usr/share/kibana/config/kibana.yml
搭建【filebeat】
这里对单台物理服务区内docker容器很多的情况,需要自定义多个索引的,不让日志都混在一起无法区分。
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# 修改配置并启动即可
nohup ./filebeat -e -c filebeat.yml > /data/Filebeat/log/Filebeat-log.log 2>&1 &
可用的配置:
filebeat.inputs:
- type: logenabled: truepaths:- /data/dream/emergency/logs/dream-emergency/info.logfields:source: emergency
# ...........
# ============================== Filebeat modules ==============================
filebeat.config.modules:path: ${path.config}/modules.d/*.ymlreload.enabled: truesetup.template.settings:index.number_of_shards: 1#index.codec: best_compression#_source.enabled: false# 允许自动生成index模板
setup.template.enabled: true
# # 生成index模板时字段配置文件
setup.template.fields: fields.yml
# # 如果存在模块则覆盖
setup.template.overwrite: true
# # 生成index模板的名称
setup.template.name: "app_log"
# # 生成index模板匹配的index格式
setup.template.pattern: "app*"
setup.ilm.enabled: auto
# 这里一定要注意 会在alias后面自动添加-*
setup.ilm.rollover_alias: "park-ssm"
setup.ilm.pattern: "{now/d}"
# # 生成kibana中的index pattern,便于检索日志
#setup.dashboards.index: myfilebeat-7.0.0-*
#filebeat默认值为auto,创建的elasticsearch索引生命周期为50GB+30天。如果不改,可以不用设置
setup.ilm.enabled: false
# =================================== Kibana ===================================
# setup.kibana:
# hosts: ["192.168.xxx.114:9200"]
# ---------------------------- Elasticsearch Output ----------------------------
output.elasticsearch:hosts: ["192.168.xxx.114:9200"]index: "app-%{[fields.source]}*"indices:#- index: "app-emergency-%{+yyyy.MM.dd}"- index: "app-emergency"when.equals:fields:source: "emergency"# ........username: "elastic"password: "LQtjAfZ7ncioEEAehcxl"
# ------------------------- Processors ----------------------------------
processors:- add_host_metadata:when.not.contains.tags: forwarded- add_cloud_metadata: ~- add_docker_metadata: ~- add_kubernetes_metadata: ~
使用【kibana】
官方使用文档:https://www.elastic.co/guide/cn/kibana/current/index.html
日志查看
使用Discover进入 Kibana 的数据探索功能,对日志索引的数据进行查询,使用的ES的查询语法。
数据统计
使用Dashboard展示保存的可视化结果集合。这个就需要使用查询语句去进行数据的处理了。
这里推荐还是使用现有的集成控件,直接使用Beat系列现成收集模型,进行收集与仪表盘的展示。
这里还需要一个栗子:比如Nginx的日志。【待研究处理】
Nginx日志栗子
# 集成搜索nginx -> Nginx 日志
# 选用gz的包:macOS 和 Linux RPM 都行
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
# 修改 /etc/filebeat/filebeat.yml
---------- 修改内容 -----------------
output.elasticsearch:hosts: ["<es_url>"]username: "elastic"password: "<password>"
setup.kibana:host: "<kibana_url>"
----------------------------------
./filebeat modules enable nginx
# 配置nginx 日志的内容 ,位置:/home/filebeat/filebeat-8.8.1-linux-x86_64/modules.d
# 修改 nginx.yml
----------- 修改内容 ------------------
- module: nginxaccess:enabled: truevar.paths: ["/usr/local/nginx/logs/access*.log","/usr/local/nginx/logs/access.log","/usr/local/nginx/logs/gisaccess.log"]error:enabled: truevar.paths: ["/usr/local/nginx/logs/error.log"]ingress_controller:enabled: false
----------------------------------
# 这个命令会连接kibana,去创建所有filebeat相关的仪表盘等等内容
./filebeat setup
# 启动
./filebeat -e
nohup ./filebeat -e > /data/Filebeat/log/Filebeat-log.log 2>&1 &
这里建议Nginx的日志格式,还是按照默认的即可,越改越错 ε=(´ο`*)))唉
# nginx 的日志模板配置 【默认的】
log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';
最后查看效果,在Dashboard的列表中搜索Nginx即可查到相关的仪表盘,点开即可;
扩展
Kibana的收集器,是在Beats 系列里面的,这里用的还只是filebeat对文件进行收集,还有Metricbeat对系统进行收集,Packetbeat网络收集等等的东东;
用法差不多的,开箱即用。这里配合Kibana的集成里面的教程,直接就可以随便扩展监控内容了。
这里面可监控的内容很多,需要安装各种Beat收集数据,在这里创建可视化以及其他操作。
参考各种的东东
- https://blog.51cto.com/ghostwritten/5345646#3_Filebeat__19
- https://www.elastic.co/cn/ 官网
- https://www.elastic.co/cn/beats/filebeat 官网
- https://blog.csdn.net/weixin_48114253/article/details/116991334
- https://www.elastic.co/guide/en/kibana/current/docker.html 官方安装kibana教程
- https://blog.csdn.net/weixin_44953658/article/details/117320403 整体教程
- 官方使用文档:https://www.elastic.co/guide/cn/kibana/current/index.html
相关文章:

轻量日志管理方案-[EFK]
使用FileBeat进行日志文件的数据收集,并发送到ES进行存储,最后Kibana进行查看展示; 这个应该是最简单,轻量的日志收集方案了。 最总方案为:FileBeatESKibana ; 【Kibana过于强大,感觉可以无限扩展】 文章目…...

Halcon WPF 开发学习笔记:HSmartWindowControlWPF正常加载
文章目录 加载问题相关文章彻底解决 加载问题 我们在WPF中使用Halcon的时候,会出现图片被拉伸的问题,需要拖动才可以解决,我网上找了好久,终于找到了如何成功解决这个问题。 相关文章 3.7 Halcon 窗体显示对象消失问题 【halcon】…...

mybatis的简单教程
整体就是mysql里存了一张表,然后在java程序里用mybatis把数据读出来的一个简单示例。 库 blog里有一张表 article 整个项目就是增加了这3个文件 首先是mybatis-config.xml文件 <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE c…...

数据结构 队列(C语言实现)
目录 1.队列的概念及结构2.队列的代码实现 正文开始前给大家推荐个网站,前些天发现了一个巨牛的 人工智能学习网站, 通俗易懂,风趣幽默,忍不住分享一下给大家。 点击跳转到网站。 1.队列的概念及结构 队列:只允许在…...
Android---屏幕适配的处理技巧
在几年前,屏幕适配一直是困扰 Android 开发工程师的一大问题。但是随着近几年各种屏幕适配方案的诞生,以及谷歌各种适配控件的推出,屏幕适配也显得越来越容易。下面,我们就来总结一下关于屏幕适配的那些技巧。 ConstraintLayout …...

vmware workstation 与 device/credential guard 不兼容
VM虚拟机报错 vmware虚拟机启动时报错:vmware workstation 与 device/credential guard 不兼容: 系统是win10专业版,导致报错原因最终发现是安装了docker,docker自带下载虚拟机Hyper-V,而导致vmware workstation 与 …...
第7章-使用统计方法进行变量有效性测试-7.2.1-单因素方差分析
目录 7.2 方差分析 7.2.1 单因素方差分析 组内变异 组间变异 总变异 随机误差...

黑客技术-小白学习手册
一、黑客是什么 原是指热心于计算机技术,水平高超的电脑专家,尤其是程序设计人员。但后来,黑客一词已被用于泛指那些专门利用电脑网络搞破坏或者恶作剧的家伙。 二、学习黑客技术的原因 其实,网络信息空间安全已经成为海陆空之…...

用示波器测量高压电
示波器本身是不可以测试几千v的高压电电路的,一般自带的探头衰减倍数不够,需要使用高压差分探头或者高压探棒,将测试信号衰减到合适的范围再接入示波器。 普通探头能测差分电压吗?差分探头和普通探头有什么区别?全网最…...
AQS中Node状态
在AQS(AbstractQueuedSynchronizer)中,Node 是一个用于构建等待队列的节点类,用于表示等待获取锁的线程。Node 的状态在不同的同步器中有不同的含义,但一般来说,Node 的状态可以分为以下几种: C…...

STM32 寄存器配置笔记——GPIO配置输出
一、概述 本文主要介绍GPIO 作为输出时的寄存器配置。包括时钟配置,输出模式配置。以STM32F10xxx系列为例,配置PA8、PD2端口作为输出,输出高/低电平。 二、配置流程 1)GPIO外设时钟 通过查找STM32F10xxx中文参考手册得知…...

Spring boot 整合grpc 运用
文章目录 GRPC基础概念:Protocol Buffers:proto 基础语法:调用类型: Spring boot 整合 grpc项目结构:整合代码:父 pomproto 模块服务端:客户端:实际调用: 原生集成 GRPC基…...

C++ 模板保姆级详解——template<class T>(什么是模板?模板分哪几类?模板如何应用?)
目录 一、前言 二、 什么是C模板 💦泛型编程的思想 💦C模板的分类 三、函数模板 💦函数模板概念 💦函数模板格式 💦函数模板的原理 💦函数模板的实例化 🍎隐式实例化 🍉显式实…...

uni.getLocation() 微信小程序 线上获取失败
开发版,体验版,用此方法都可以正确获取定位,但是在小程序的线上,总是获取失败 参考:uni-app微信小程序uni.getLocation获取位置;authorize scope.userLocation需要在app.json中声明permission;小程序用户拒绝授权后重新授权-CSDN博客 uniapp 中的 uni.…...

Pytorch损失函数、反向传播和优化器、Sequential使用
Pytorch_Sequential使用、损失函数、反向传播和优化器 文章目录 nn.Sequential搭建小实战损失函数与反向传播优化器 nn.Sequential nn.Sequential是一个有序的容器,用于搭建神经网络的模块被按照被传入构造器的顺序添加到nn.Sequential()容器中。 import torch.nn …...

css:两个行内块元素和图片垂直居中对齐
目录 两个行内块元素垂直居中对齐图片垂直居中问题图片和文字垂直居中对齐参考文章 两个行内块元素垂直居中对齐 先看一段代码: <style> .box {width: 200px;height: 200px;line-height: 200px;font-size: 20px;text-align: center;display: inline-block;b…...

从0开始python学习-34.pytest常用插件
目录 1. pytest-html:生成HTML测试报告 2.pytest-xdist:并发执行用例 3. pytest-order:自定义用例的执行顺序 4. pytest-rerunfailures:用例失败时自动重试 5. pytest-result-log:用例执行结果记录到日志文件 1. pytest-html…...

初始MySQL(二)(表的增删查改)
目录 修改表 CRUD(增删改查) insert语句(表中增加数据) update语句(修改表中的数据) delete删除语句 select语句 修改表 添加列 ALTER TABLE tablename ADD (column datatype [DEFAULT expr] [, column datatype] ...); 修改列 ALTER TABLE tablename MODIFY (column …...

SLAM从入门到精通(SLAM落地的难点)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 在所有的slam算法中,基于反光柱的激光slam和基于二维码的视觉slam是落地最彻底的两种slam方法。和磁条、色带等传统导航方式相比较&…...

通过内网穿透快速搭建公网可访问的Spring Boot接口调试环境
文章目录 前言1. 本地环境搭建1.1 环境参数1.2 搭建springboot服务项目 2. 内网穿透2.1 安装配置cpolar内网穿透2.1.1 windows系统2.1.2 linux系统 2.2 创建隧道映射本地端口2.3 测试公网地址 3. 固定公网地址3.1 保留一个二级子域名3.2 配置二级子域名3.2 测试使用固定公网地址…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别
一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...

【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...
智能AI电话机器人系统的识别能力现状与发展水平
一、引言 随着人工智能技术的飞速发展,AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术,在客户服务、营销推广、信息查询等领域发挥着越来越重要…...
C#学习第29天:表达式树(Expression Trees)
目录 什么是表达式树? 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持: 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...
关于uniapp展示PDF的解决方案
在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项: 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库: npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...
适应性Java用于现代 API:REST、GraphQL 和事件驱动
在快速发展的软件开发领域,REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名,不断适应这些现代范式的需求。随着不断发展的生态系统,Java 在现代 API 方…...

【Post-process】【VBA】ETABS VBA FrameObj.GetNameList and write to EXCEL
ETABS API实战:导出框架元素数据到Excel 在结构工程师的日常工作中,经常需要从ETABS模型中提取框架元素信息进行后续分析。手动复制粘贴不仅耗时,还容易出错。今天我们来用简单的VBA代码实现自动化导出。 🎯 我们要实现什么? 一键点击,就能将ETABS中所有框架元素的基…...
多元隐函数 偏导公式
我们来推导隐函数 z z ( x , y ) z z(x, y) zz(x,y) 的偏导公式,给定一个隐函数关系: F ( x , y , z ( x , y ) ) 0 F(x, y, z(x, y)) 0 F(x,y,z(x,y))0 🧠 目标: 求 ∂ z ∂ x \frac{\partial z}{\partial x} ∂x∂z、 …...