EFK(elasticsearch+filebeat+kibana)日志分析平台搭建

本文是记录一下EFK日志平台的搭建过程

项目背景:

此次搭建的日志分析平台主要是采集服务器上的java服务的log日志(输出的日志已经是json格式),这些日志都已经按照不同环境输出到/home/dev   /home/test1   /home/test2 目录下了,按照不同的应用服务输出到不同的目录,比如dev环境的 common 服务,会输出到/dev/logs/common/common.log

EFK服务的部署都使用docker,然后将数据目录挂载至容器中

基础架构模型:

1.部署es

#创建es的docker网络
docker network create elasticsearch
#拉取es镜像,版本号为8.12.2
docker pull docker.elastic.co/elasticsearch/elasticsearch:8.12.2
#调整系统参数,否则es无法启动
echo 'vm.max_map_count=262144' >>/etc/sysctl.conf
sysctl -p
#创建elasticsearch用户
useradd -m elasticsearch
passwd elasticsearch#创建es数据和目录文件夹(放在数据盘)
mkdir -p /mnt/storage/es/data
mkdir -p /mnt/storage/es/logs
mkdir -p /mnt/storage/es/plugins
#授权目录
chown -R elasticsearch:elasticsearch /mnt/storage/es/
chmod -R u+rwxs es/
chmod -R 777  /mnt/storage
#运行es,挂载配置文件目录、数据文件目录、日志目录
#前台查看输出,先执行这个,查看并记录es的信息
docker run --name es -e "ES_JAVA_OPTS=-Xms3072m -Xmx3072m" -v /mnt/storage/es/data:/usr/share/elasticsearch/data -v /mnt/storage/es/logs:/usr/share/elasticsearch/logs -v /mnt/storage/es/plugins:/usr/share/elasticsearch/plugins -v /etc/localtime:/etc/localtime:ro --net elasticsearch -p 9200:9200 -m 4GB -it docker.elastic.co/elasticsearch/elasticsearch:8.12.2#进入es容器bash
docker start es
docker exec -it es /bin/bash
#压缩配置文件目录
cd /usr/share/elasticsearch
zip -r config.zip config/
#退出容器bash
exit
#将配置文件压缩包config.zip放到/home/elasticsearch 目录
docker cp es:/usr/share/elasticsearch/config.zip /home/elasticsearch/
chmod 777 /home/elasticsearch/config.zip
#解压配置文件压缩包
su elasticsearch
cd /home/elasticsearch
unzip config.zip
chmod -R 777 config/#停止并删除容器
su root
docker stop es
docker rm es#后台运行
docker run --name es -e "ES_JAVA_OPTS=-Xms3072m -Xmx3072m" -v /home/elasticsearch/config:/usr/share/elasticsearch/config -v /mnt/storage/es/data:/usr/share/elasticsearch/data -v /mnt/storage/es/logs:/usr/share/elasticsearch/logs -v /mnt/storage/es/plugins:/usr/share/elasticsearch/plugins -v /etc/localtime:/etc/localtime:ro --net elasticsearch -p 9200:9200 -m 4GB -d docker.elastic.co/elasticsearch/elasticsearch:8.12.2cd /home/elasticsearch/config/certs
curl --cacert http_ca.crt -u elastic:${password} https://localhost:9200#后续启动
docker start es

2.部署kibana

#创建kibana用户
useradd -m kibana
passwd kibana#拉取镜像
docker pull docker.elastic.co/kibana/kibana:8.12.2
#运行
docker run --name kibana --net elasticsearch -p 5601:5601 docker.elastic.co/kibana/kibana:8.12.2#ctrl+c停止容器
#启动kibana容器
docker start kibana
#将配置文件/home/kibana 目录
docker cp kibana:/usr/share/kibana/config /home/kibana/
cd /home/kibana
chmod -R 777 config/#创建对应的数据、日志文件夹
su kibana
mkdir /home/kibana/data
mkdir /home/kibana/logs
chmod 777 /home/kibana/data
chmod 777 /home/kibana/logs#停止之前的容器
su root
docker stop kibana
docker rm kibana
#设置中文
vi /home/kibana/config/kibana.yml
#在最后添加 i18n.locale: "zh-CN"docker run --name kibana -v /home/kibana/config:/usr/share/kibana/config -v /home/kibana/data:/usr/share/kibana/data -v /home/kibana/logs:/usr/share/kibana/logs -v /etc/localtime:/etc/localtime:ro --net elasticsearch -p 5601:5601 -d docker.elastic.co/kibana/kibana:8.12.2
#查看启动日志,另外在浏览器查看效果
docker logs kibana
#查看是否正常运行
curl http://127.0.0.1:5601#通过浏览器进入kibana页面后,会需要输入es的 enrollment token,如果过期了,执行如下命令获取
docker exec -it es /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana

3.在应用服务器部署filebeat

#创建filebeat用户
useradd -m filebeat
passwd filebeat
#拉取镜像
docker pull docker.elastic.co/beats/filebeat:8.12.2
#将filebeat.yml放到/home/filebeat 目录下
chmod 777 /home/filebeat/filebeat.yml
chmod go-w /home/filebeat/filebeat.yml
#运行,需要将日志目录挂载到容器
docker run -u root --name filebeat -v /home/filebeat/data:/usr/share/filebeat/data:rw -v /home/filebeat/filebeat.yml:/usr/share/filebeat/filebeat.yml:ro -v /home/filebeat/logs:/usr/share/filebeat/logs -v /home/dev/logs:/usr/share/filebeat/devlogs:ro -v /home/test1/logs:/usr/share/filebeat/test1logs:ro -v /home/test2/logs:/usr/share/filebeat/test2logs:ro -v /etc/localtime:/etc/localtime:ro --privileged -m 1GB -d docker.elastic.co/beats/filebeat:8.12.2

4.filebeat配置(按照不同的环境将日志分发到不同的es index)

filebeat.inputs:
#dev环境日志采集
- type: logenabled: truepaths:- /usr/share/filebeat/devlogs/base-gateway/base-gateway*.logfields:log_env: "applog_dev"fields_under_root: truejson:keys_under_root: trueoverwrite_keys: truemessage_key: "message"add_error_key: true
#test1环境日志采集
- type: logenabled: truepaths:- /usr/share/filebeat/test1logs/base-gateway/base-gateway*.logfields:log_env: "applog_test1"fields_under_root: truejson:keys_under_root: trueoverwrite_keys: truemessage_key: "message"add_error_key: true#test2环境日志采集
- type: logenabled: truepaths:- /usr/share/filebeat/test2logs/base-gateway/base-gateway*.logfields:log_env: "applog_test2"fields_under_root: truejson:keys_under_root: trueoverwrite_keys: truemessage_key: "message"add_error_key: truefilebeat.config:modules:path: ${path.config}/modules.d/*.ymlreload.enabled: falseprocessors:- add_cloud_metadata: ~- add_docker_metadata: ~- timestamp:# 通过日志中的timestamp字段格式化时间值 给 时间戳 field: timestamp# 使用我国东八区时间  解析log时间timezone: Asia/Shanghailayouts:- '2006-01-02 15:04:05'- '2006-01-02 15:04:05.999'test:- '2019-06-22 16:33:51.765'queue.mem:#每1秒钟就进行推送flush.timeout: 1soutput.elasticsearch:hosts: ["https://${es host}:${es port}"]#忽略证书校验ssl.verification_mode: noneusername: '${账号}'password: '${密码}'indices:- index: "logs-dev-%{+yyyy.MM}"when.contains:log_env: "applog_dev"- index: "logs-test1-%{+yyyy.MM}"when.contains:log_env: "applog_test1"- index: "logs-test2-%{+yyyy.MM}"when.contains:log_env: "applog_test2"

参考:

前言 · ELKstack 中文指南

ES官方文档 What is Elasticsearch? | Elasticsearch Guide [8.12] | Elastic

Kibana官方文档 Kibana—your window into Elastic | Kibana Guide [8.12] | Elastic

Filebeat官方文档 Filebeat overview | Filebeat Reference [8.12] | Elastic

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

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

相关文章

Mybatis——一对一映射

一对一映射 预置条件 在某网络购物系统中,一个用户只能拥有一个购物车,用户与购物车的关系可以设计为一对一关系 数据库表结构(唯一外键关联) 创建两个实体类和映射接口 package org.example.demo;import lombok.Data;import …

在flutter中添加video_player【视频播放插件】

添加插件依赖 dependencies:video_player: ^2.8.3插件的用途 在Flutter框架中,video_player 插件是一个专门用于播放视频的插件。它允许开发者在Flutter应用中嵌入视频播放器,并提供了一系列功能来控制和定制视频播放体验。这个插件对于需要在应用中展…

舞蹈网站制作分享,舞蹈培训商城网站设计案例分享,wordpress主题分享

嘿,朋友们!今天我要跟你们唠一唠一个超级酷炫的舞蹈培训商城网站设计案例。 咱先说说这个网站的目标哈,那就是得让喜欢舞蹈的小伙伴们能够轻轻松松找到自己心水的课程和商品。 那制作过程都有啥呢?别急,听我慢慢道来。…

论文笔记 - :DIGGING INTO OUTPUT REPRESENTATION FOR MONOCULAR 3D OBJECT DETECTION

Title: 深入研究单目 3D 物体检测的输出表示 Abstract 单目 3D 对象检测旨在从单个图像中识别和定位 3D 空间中的对象。最近的研究取得了显着的进展,而所有这些研究都遵循基于 LiDAR 的 3D 检测中的典型输出表示。 然而,在本文中,我们认为…

超舒适SUV豪华再进化:比亚迪全新腾势N7发布

钟爱SUV的小伙伴们,想必对比亚迪旗下的腾势N7都不会感到陌生。近日,比亚迪正式发布了全新腾势N7,新车型不但继承了腾势品牌一贯的豪华品质,而且还在智能、舒适、便利等方面实现了全面升级,成为百万级超舒适SUV市场的佼…

VMware-16.0配置虚拟机网络模式

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、为什么要配置网络?二、配置步骤1.检查VMware服务2.进入配置页面3.添加网络模式1.Bridge2.NAT3.Host-only 4.DHCP租约5.静态IP 三、使用总结 前言…

数据结构进阶篇 之【选择排序】详细讲解(选择排序,堆排序)

民以食为天,我以乐为先 嘴上来的嘘寒问暖,不如直接打笔巨款 一、选择排序 1.直接选择排序 1.1 基本思想 1.2 实现原理 1.3 代码实现 1.4 直接选择排序的特性总结 2.堆排序 跳转链接:数据结构 之 堆的应用 二、完结撒❀ –❀–❀–❀…

Apache Paimon实时数据糊介绍

Apache Paimon 是一种湖格式,可以使用 Flink 和 Spark 构建实时 数据糊 架构,用于流式和批处理操作。Paimon 创新地将湖格式和 LSM(日志结构合并树)结构相结合,将实时流式更新引入湖架构中。 Paimon 提供以下核心功能: 实时更新: 主键表支持大规模更新的写入,具有非常…

【JavaEE初阶系列】——一万字带你了解 JUC常见类 以及 线程安全集合类(哈希表)

目录 🚩JUC(java.util.concurrent) 的常见类 🎈Callable 接口 🌈理解 Callable(相关面试题) 🌈理解 FutureTask 📝线程创建方式 🎈 ReentrantLock可重入锁 🌈ReentrantLock 优势&#x…

MATLAB简介、下载及安装

1、MATLAB简介 MATLAB(Matrix Laboratory)是由MathWorks公司开发的一款强大的商业数学软件环境,主要用于数值计算、算法开发、数据可视化、数据分析和基于模型的设计等多种用途。MATLAB被广泛应用在学术研究、工程计算、经济建模、控制系统设…

PW1503限流芯片:可达3A限流,保障USB电源管理安全高效

在电源管理领域,开关的性能直接关系到设备的稳定性和安全性。今天,我们将详细解析一款备受关注的超低RDS(ON)开关——PW1503。它不仅具有可编程的电流限制功能,还集成了多项保护机制,为各类电子设备提供了高…

抖音视频关键词批量下载工具|视频爬虫采集软件

抖音视频批量提取工具,搜索即下载,轻松获取所需视频! 正文: 想要轻松获取抖音上的精彩视频吗?现在,有了我们的抖音视频批量提取工具,一切变得简单易行!Q:290615413无论是针对特定关…

Three.js真实相机模拟

有没有想过如何在 3D Web 应用程序中模拟物理相机? 在这篇博文中,我将向你展示如何使用 Three.js和 OpenCV 来完成此操作。 我们将从模拟针孔相机模型开始,然后添加真实的镜头畸变。 具体来说,我们将仔细研究 OpenCV 的两个失真模…

篮球竞赛预约平台的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)篮球馆,篮球赛,竞赛项目,赛事预约

本项目包含可运行源码数据库LW,文末可获取本项目的所有资料。 推荐阅读300套最新项目持续更新中..... 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含ja…

电商-广告投放效果分析(KMeans聚类、数据分析-pyhton数据分析

电商-广告投放效果分析(KMeans聚类、数据分析) 文章目录 电商-广告投放效果分析(KMeans聚类、数据分析)项目介绍数据数据维度概况数据13个维度介绍 导入库,加载数据数据审查相关性分析数据处理建立模型聚类结果特征分析…

【Servlet】服务器内部转发以及客户端重定向

文章目录 一、服务器内部转发:request.getRequestDispatcher("...").forward(request, response);二、客户端重定向:response.sendRedirect("");三、服务器内部转发代码示例四、客户端重定向代码示例 一、服务器内部转发&#xff1a…

【EasyExcel】—— 实现excel动态表头设置、多个sheet

引入jar <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.1.0</version></dependency>代码 public static void main(String[] args) {//选择存储地址String fileName "/User…

【六 (2)机器学习-机器学习建模步骤/kaggle房价回归实战】

一、确定问题和目标&#xff1a; 1、业务需求分析&#xff1a; 与业务团队或相关利益方进行深入沟通&#xff0c;了解他们的需求和期望。 分析业务流程&#xff0c;找出可能的瓶颈、机会或挑战。 思考机器学习如何帮助解决这些问题或实现业务目标。 2、问题定义&#xff1a;…

Flutter应用在苹果商店上架前的准备工作与注意事项

引言 &#x1f680; Flutter作为一种跨平台的移动应用程序开发框架&#xff0c;为开发者提供了便利&#xff0c;使他们能够通过单一的代码库构建出高性能、高保真度的应用程序&#xff0c;同时支持Android和iOS两个平台。然而&#xff0c;完成Flutter应用程序的开发只是第一步…

【蓝桥杯第十二届省赛B】(部分详解)

空间 8位1b 1kb1024b(2^10) 1mb1024kb(2^20) 时间显示 #include <iostream> using LLlong long; using namespace std; int main() {LL t;cin>>t;int HH,MM,SS;t/1000;SSt%60;//like370000ms370s,最后360转成分余下10st/60;MMt%60;t/60;HHt%24;printf("%02d:…