轻量日志管理方案-[EFK]

使用FileBeat进行日志文件的数据收集,并发送到ES进行存储,最后Kibana进行查看展示;
这个应该是最简单,轻量的日志收集方案了。

最总方案为:FileBeat+ES+Kibana ; 【Kibana过于强大,感觉可以无限扩展】


文章目录

    • @[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

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

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

相关文章

Apinto 网关进阶教程,使用 API Mock 生成模拟数据

什么是 API Mock &#xff1f; API Mock 是一种技术&#xff0c;它允许程序员在不依赖后端数据的情况下&#xff0c;模拟 web服务器端 API 的响应。通常使用 API Mock 来测试前端应用程序&#xff0c;而无需等待后端程序构建完成。API Mock 可以模拟任何 HTTP 请求方法&#x…

linux安装nodejs

写在前面 因为工作需要&#xff0c;需要使用到nodejs&#xff0c;所以这里简单记录下学习过程。 1&#xff1a;安装 wget https://nodejs.org/dist/v14.17.4/node-v14.17.4-linux-x64.tar.xz tar xf node-v14.17.4-linux-x64.tar.xz mkdir /usr/local/lib/node // 这一步骤根…

使用电脑时提示msvcp140.dll丢失的5个解决方法

“计算机中msvcp140.dll丢失的5个解决方法”。在我们日常使用电脑的过程中&#xff0c;有时会遇到一些错误提示&#xff0c;其中之一就是“msvcp140.dll丢失”。那么&#xff0c;什么是msvcp140.dll呢&#xff1f;它的作用是什么&#xff1f;丢失它会对电脑产生什么影响呢&…

人工智能基础_机器学习022_使用正则化_曼哈顿距离_欧氏距离_提高模型鲁棒性_过拟合_欠拟合_正则化提高模型泛化能力---人工智能工作笔记0062

然后我们再来看一下,过拟合和欠拟合,现在,实际上欠拟合,出现的情况已经不多了,欠拟合是 在训练集和测试集的准确率不高,学习不到位的情况. 然后现在一般碰到的是过拟合,可以看到第二个就是,完全就把红点蓝点分开了,这种情况是不好的, 因为分开是对训练数据进行分开的,如果来…

如何将NetCore Web程序独立发布部署到Linux服务器

简介 在将 .NET Core 应用程序部署到 Linux 服务器上时,可以采用独立发布的方式,以便在目标服务器上运行应用程序而无需安装 .NET Core 运行时。本文介绍如果将NetCore Web程序独立发布部署到Linux服务器。 1、准备一台服务器 服务器配置:2核2G 系统环境:Alibaba Cloud…

可视化技术专栏100例教程导航帖—学习可视化技术的指南宝典

&#x1f389;&#x1f38a;&#x1f389; 你的技术旅程将在这里启航&#xff01; &#x1f680;&#x1f680; 本文专栏&#xff1a;可视化技术专栏100例 可视化技术专栏100例领略各种先进的可视化技术&#xff0c;包括但不限于大屏可视化、图表可视化等等。订阅专栏用户在文章…

1994-2021年分行业二氧化碳排放量数据

1994-2021年分行业二氧化碳排放量数据 1、时间&#xff1a;1994-2021年 2、来源&#xff1a;原始数据整理自能源年鉴 3、指标&#xff1a;统计年度、行业代码、行业名称、煤炭二氧化碳排放量、焦炭二氧化碳排放量、原油二氧化碳排放量、汽油二氧化碳排放量、煤油二氧化碳排放…

【Python】AppUI自动化—appium自动化元素定位、元素事件操作(17)下

文章目录 前言一.Appium 元素定位1.定位方式种类2.如何定位2.1 id定位2.2 className定位2.3 content-desc 定位2.4 Android Uiautomator定位4.1 text定位4.2 text模糊定位4.3 text正则匹配定位4.4 resourceId定位4.5 resourceId正则匹配定位4.6 className定位4.7 className正则…

Android拖放startDragAndDrop拖拽Glide加载堆叠圆角图,Kotlin(5)

Android拖放startDragAndDrop拖拽Glide加载堆叠圆角图&#xff0c;Kotlin&#xff08;5&#xff09; import android.content.ClipData import android.graphics.Canvas import android.graphics.Point import android.os.Bundle import android.util.Log import android.view.…

Leetcode刷题详解—— 组合总和

1. 题目链接&#xff1a;39. 组合总和 2. 题目描述&#xff1a; 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target &#xff0c;找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 &#xff0c;并以列表形式返回。你可以按 任意顺序 返回这些…

Fortran 中的指针

Fortran 中的指针 指针可以看作一种数据类型 指针存储与之关联的数据的内存地址变量指针&#xff1a;指向变量数组指针&#xff1a;指向数组过程指针&#xff1a;指向函数或子程序指针状态 未定义未关联 integer, pointer::p1>null() !或者 nullify(p1) 已关联 指针操作 指…

2000-2022年上市公司数字化转型同群效应数据

2000-2022年上市公司数字化转型同群效应数据 1、时间&#xff1a;2000-2022年 2、指标&#xff1a;股票代码、年份、行业代码、行政区划代码、数字化转型程度-A、数字化转型程度-B、同行业同群-数字化转型程度-A_均值、同行业同群-数字化转型程度-A_中位数、同省份同群-数字化…