目录

EFK架构(elasticsearch\filebeat\kibana)

1、下载elasticsearch、kibana、filebeat

2、创建用户并授权

3、安装并启动

3.1 使用elasticsearch账号安装启动

>3.1.1 解压 elasticsearch

>3.1.2 配置 elasticsearch

>3.1.3 启动elasticsearch

>3.1.4 访问

3.2 安装启动kibana

>3.2.1 解压 kibana

>3.2.2 配置 kibana

>3.2.3 启动kibana

>3.2.4 访问

3.3 安装启动filebeat

>3.3.1 解压 & 配置 filebeat

>3.3.3 启动filebeat

3.4 springboot logback配置


EFK架构(elasticsearch\filebeat\kibana)

1、filebeat采集日志(可以采集多种日志类型log\http\system\tcp\mq\docker\aws...,具体采集配置参照:https://www.elastic.co/guide/en/beats/filebeat/current/configuration-filebeat-options.html)

2、filebeat将采集到的日志解析推送至es

3、kibana展示

如果日志量特别大,可以参考此方案

1、filebeat采集日志到kafka,利用kafka高并发处理能力,kafka也可以是集群

2、logstash消费kafka数据,并存储到es集群,logstash也可以是集群

当然可以选择其他方案,大型日志系统复杂性高,选择自己合适的日志解决方案

本次部署版本为7.12.0,部署的时候确保版本一致。

1、下载elasticsearch、kibana、filebeat

[root@ecs7 efk]# curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.12.0-linux-x86_64.tar.gz
[root@ecs7 efk]# curl -L -O https://artifacts.elastic.co/downloads/kibana/kibana-7.12.0-linux-x86_64.tar.gz
[root@ecs7 efk]# curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.12.0-linux-x86_64.tar.gz

2、创建用户并授权

[root@ecs7 efk]# groupadd elastic
[root@ecs7 efk]# useradd -g elastic elasticsearch
[root@ecs7 efk]# chown -R elasticsearch:elastic /data/efk/

3、安装并启动

3.1 使用elasticsearch账号安装启动

>3.1.1 解压 elasticsearch

[root@ecs7 efk]# su elasticsearch
[elasticsearch@ecs7 efk]$ tar -zxvf elasticsearch-7.12.0-linux-x86_64.tar.gz

>3.1.2 配置 elasticsearch

[elasticsearch@ecs7 efk]$ cd elasticsearch-7.12.0/config/

备份原始配置文件

[elasticsearch@ecs7 config]$ cp elasticsearch.yml elasticsearch.yml.org 

elasticsearch.yml 全文(本次部署为单节点部署)

# 集群名称
cluster.name: test-efk
# 节点名称
node.name: master
# 索引数据存储目录
path.data: /data/efk/elasticsearch-7.12.0/data
# 日志
path.logs: /data/efk/elasticsearch-7.12.0/dlogs
# 外网访问
network.host: 0.0.0.0# 端口
http.port: 9200
# 自动创建索引
action.auto_create_index: .security,.monitoring*,.watches,.triggered_watches,.watcher-history*,app-a-*,app-b-*# 节点网络
discovery.seed_hosts: ["191.168.0.107"]
# 当前节点类型
cluster.initial_master_nodes: ["master"]      

>3.1.3 启动elasticsearch

[elasticsearch@ecs7 efk]$ cd elasticsearch-7.12.0/bin/
[elasticsearch@ecs7 bin]$ ./elasticsearch -d
[elasticsearch@ecs7 bin]$ ERROR: [1] bootstrap checks failed. You must address the points described in the following [1] lines before starting Elasticsearch.
bootstrap check failure [1] of [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
ERROR: Elasticsearch did not exit normally - check the logs at /data/efk/elasticsearch-7.12.0/dlogs/test-efk.log

启动es会有出现异常,解决方案,参照博客:https://blog.csdn.net/F1004145107/article/details/106279907/

>3.1.4 访问

http://localhost:9200

[elasticsearch@ecs7 bin]$ curl http://localhost:9200
{"name" : "master","cluster_name" : "test-efk","cluster_uuid" : "Hovo67CRTF2zMnygQJ-2NQ","version" : {"number" : "7.12.0","build_flavor" : "default","build_type" : "tar","build_hash" : "78722783c38caa25a70982b5b042074cde5d3b3a","build_date" : "2021-03-18T06:17:15.410153305Z","build_snapshot" : false,"lucene_version" : "8.8.0","minimum_wire_compatibility_version" : "6.8.0","minimum_index_compatibility_version" : "6.0.0-beta1"},"tagline" : "You Know, for Search"
}

3.2 安装启动kibana

>3.2.1 解压 kibana

[root@ecs7 efk]# su elasticsearch
[elasticsearch@ecs7 efk]$ tar -zxvf kibana-7.12.0-linux-x86_64.tar.gz 

>3.2.2 配置 kibana

[elasticsearch@ecs7 efk]$ cd kibana-7.12.0-linux-x86_64
[elasticsearch@ecs7 kibana-7.12.0-linux-x86_64]$ cd config/
[elasticsearch@ecs7 config]$ cp kibana.yml kibana.yml.org 

备份原始配置文件

[elasticsearch@ecs7 config]$ cp kibana.yml kibana.yml.org 

kibana.yml 全文

# 端口
server.port: 5601
# 主机
server.host: "0.0.0.0"
# 名称
server.name: "master"
# es集群地址
elasticsearch.hosts: ["http://127.0.0.1:9200"]
# 日志目录
logging.dest: /data/efk/kibana-7.12.0-linux-x86_64/logs/kibana.log

>3.2.3 启动kibana

[elasticsearch@ecs7 kibana-7.12.0-linux-x86_64]$ ll
total 1476
drwxr-xr-x   2 elasticsearch elastic    4096 Mar 18 13:56 bin
drwxr-xr-x   2 elasticsearch elastic    4096 Apr 13 09:53 config
drwxr-xr-x   2 elasticsearch elastic    4096 Apr  7 11:26 data
-rw-r--r--   1 elasticsearch elastic    3860 Mar 18 13:55 LICENSE.txt
drwxr-xr-x   2 elasticsearch elastic    4096 Apr  7 11:26 logs
drwxr-xr-x   6 elasticsearch elastic    4096 Mar 18 13:55 node
drwxr-xr-x 831 elasticsearch elastic   36864 Mar 18 13:55 node_modules
-rw-r--r--   1 elasticsearch elastic 1428396 Mar 18 13:55 NOTICE.txt
-rw-r--r--   1 elasticsearch elastic     740 Mar 18 13:55 package.json
drwxr-xr-x   2 elasticsearch elastic    4096 Mar 18 13:55 plugins
-rw-r--r--   1 elasticsearch elastic    3968 Mar 18 13:55 README.txt
drwxr-xr-x  12 elasticsearch elastic    4096 Mar 18 13:55 src
drwxr-xr-x   3 elasticsearch elastic    4096 Mar 18 13:55 x-pack
[elasticsearch@ecs7 kibana-7.12.0-linux-x86_64]$ cd bin
[elasticsearch@ecs7 bin]$ ll
total 16
-rwxr-xr-x 1 elasticsearch elastic 850 Mar 18 13:55 kibana
-rwxr-xr-x 1 elasticsearch elastic 783 Mar 18 13:55 kibana-encryption-keys
-rwxr-xr-x 1 elasticsearch elastic 776 Mar 18 13:55 kibana-keystore
-rwxr-xr-x 1 elasticsearch elastic 813 Mar 18 13:55 kibana-plugin
[elasticsearch@ecs7 bin]$ ./kibana &

>3.2.4 访问

浏览器访问 http://localhost:5601

3.3 安装启动filebeat

filebeat 不一定要跟es放在同一台服务器,可以是本机可以是其他服务器,它是一个采集工具,可以将数据推送至es,以下采用本机演示

>3.3.1 解压 & 配置 filebeat

备份原始配置文件

filebeat.yml 全文


# ============================== Filebeat inputs ===============================
filebeat.inputs:
- type: logenabled: trueencoding: UTF-8# Paths that should be crawled and fetched. Glob based paths.paths:#需要采集的日志文件- D:/data/**/*.logjson.key_under_root: truejson.overwrite_keys: truejson.message_key: messagejson.add_error_key: truetags: ["saas"]# ============================== Filebeat modules ==============================
filebeat.config.modules:# Glob pattern for configuration loadingpath: ${path.config}/modules.d/*.yml# Set to true to enable config reloadingreload.enabled: false# Period on which files under path should be checked for changes#reload.period: 10s
# ======================= Elasticsearch template setting =======================
setup.template.settings:index.number_of_shards: 1#index.codec: best_compression#_source.enabled: falsesetup.kibana:
# ---------------------------- Elasticsearch Output ----------------------------
output.elasticsearch:# Array of hosts to connect to.
# es 地址hosts: ["191.168.0.107:9200"]processors:- add_host_metadata:when.not.contains.tags: forwarded- add_cloud_metadata: ~- add_docker_metadata: ~- add_kubernetes_metadata: ~
# 日志时间处理- timestamp:field: json.@timestamptimezone: Asia/Shanghailayouts:- '2006-01-02T15:04:05+08:00'- '2006-01-02T15:04:05.999+08:00'test:- '2019-06-22T16:33:51+08:00'- '2019-11-18T04:59:51.123+08:00'
# 删除相关字段        - drop_fields:fields: [json.@version,json.level_value,json.@timestamp]
# 重命名字段- rename:fields:- from: "json.logName"to: "json.appName"ignore_missing: falsefail_on_error: true

>3.3.3 启动filebeat

使用cmd运行 filebeat.exe

3.4 springboot logback配置

pom.xml 新增logstash-logback-encoder依赖,logstash-logback-encoder可以将日志以json的方式输出,也不用我们单独处理多行记录问题

<dependency><groupId>net.logstash.logback</groupId><artifactId>logstash-logback-encoder</artifactId><version>5.3</version>
</dependency>
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="30 seconds"><!-- 部分参数需要来源于properties文件 --><springProperty scope="context" name="logName" source="spring.application.name" defaultValue="localhost.log"/><!-- %m输出的信息,%p日志级别,%t线程名,%d日期,%c类的全名,,,, --><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern><charset>UTF-8</charset></encoder></appender><appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>logs/${logName}/${logName}.log</file>    <!-- 使用方法 --><append>true</append><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><fileNamePattern>logs/${logName}/${logName}-%d{yyyy-MM-dd}.log.%i</fileNamePattern><maxFileSize>64MB</maxFileSize><maxHistory>30</maxHistory><totalSizeCap>1GB</totalSizeCap></rollingPolicy><encoder class="net.logstash.logback.encoder.LogstashEncoder" ><providers><timestamp><timeZone>Asia/Shanghai</timeZone></timestamp><pattern><pattern>{"level": "%level","class": "%logger{40}","message": "%message","stack_trace": "%exception"}</pattern></pattern></providers></encoder></appender><!-- 只打印error级别的内容 --><logger name="com.netflix" level="ERROR" /><logger name="net.sf.json" level="ERROR" /><logger name="org.springframework" level="ERROR" /><logger name="springfox" level="ERROR" /><!-- sql 打印 配置--><logger name="com.github.pagehelper.mapper" level="DEBUG" /><logger name="org.apache.ibatis" level="DEBUG" /><root level="info"><appender-ref ref="STDOUT" /><appender-ref ref="FILE" /></root>
</configuration>

启动springboot服务,生成的日志会自动被filebeat采集并推送到es。

最终效果

相关文章参考

https://blog.csdn.net/ctypyb2002/article/details/106095377

filebeat:https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-input-log.html

filebeat 安装启动:https://blog.csdn.net/dwyane__wade/article/details/80169051

结合springboot搭建日志采集系统EFK相关推荐

  1. Logback+ELK+SpringBoot搭建日志收集服务器

    前言 本文重点介绍Logback和ELK和SpringBoot是怎么整合收集日志的 关于ELK的说明和安装可以点击查看ELK(Elasticsearch.Logstash.Kibana)安装, htt ...

  2. 2018年ElasticSearch6.2.2教程ELK搭建日志采集分析系统(教程详情)

    章节一 2018年 ELK课程计划和效果演示 1.课程安排和效果演示 简介:课程介绍和主要知识点说明,ES搜索接口演示,部署的ELK项目演示 es: localhost:9200 kibana htt ...

  3. 轻量级日志采集系统Loki+grafana搭建

    轻量级日志采集系统Loki+grafana搭建 一.Loki介绍 整体架构 Loki的架构非常简单,使用了和prometheus一样的标签来作为索引,也就是说,你通过这些标签既可以查询日志的内容也可以 ...

  4. 在滴滴云 DC2 云服务器上搭建 ELK 日志采集系统

    前段时间大学同学聚会,一个在读的博士同学谈到他们实验室做实验时,物理服务器需要向老师申请且组内同学都共用那些机器.由于运行一些大数据和人工智能的项目比较耗费资源,且对资源环境的隔离要求比较高,因而很多 ...

  5. SpringBoot的日志管理(输出级别,输出到文件)

    场景 SpringBoot实战项目搭建专栏地址: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/column/info/35688 1.SpringBoot使用默 ...

  6. SpringBoot的日志框架

    Spring Boot的日志框架: 简介 在项目的开发中,日志是必不可少的一个记录事件的组件,所以也会相应的在项目中实现和构建我们所需要的日志框架. 而市面上常见的日志框架有很多,比如:JCL.SLF ...

  7. 【syslog】搭建日志服务器

    搭建日志服务器 1.安装rsyslog yum install -y rsyslog 2.修改rsyslog.conf配置文件 /etc/rsyslog.conf: # rsyslog configu ...

  8. 基于SpringBoot搭建应用开发框架(一) —— 基础架构

    基于SpringBoot搭建应用开发框架(一) -- 基础架构 目录 Spring的简史 零.开发技术简介 一.创建项目 1.创建工程 2.创建Starter 3.启动项目 4.Spring Boot ...

  9. springboot员工日志管理信息系统的设计与开发毕业设计源码201834

    Springboot员工日志管理信息系统 摘  要 传统的纸质办公方式可能会有这样的问题:作为一名管理人员,你可能每天都有许多工作要安排自己或下属去完成,但常常会忘记自己给谁安排了哪些任务,也不知道这 ...

  10. (附源码)springboot员工日志管理信息系统的设计与开发 毕业设计201834

    Springboot员工日志管理信息系统 摘 要 传统的纸质办公方式可能会有这样的问题:作为一名管理人员,你可能每天都有许多工作要安排自己或下属去完成,但常常会忘记自己给谁安排了哪些任务,也不知道这些 ...

最新文章

  1. erlang 二进制
  2. python爬虫入门代码-Python爬虫入门
  3. 从Theano到Lasagne:基于Python的深度学习的框架和库
  4. 三层之抽象工厂加反射实例
  5. 阿里巴巴招聘最全集合帖:宣讲会+岗位+30篇面试宝典来啦
  6. CometOJ#6 双倍快乐(简单DP)
  7. Diango博客--18.使用 Fabric 自动化部署 Django 项目
  8. MATLAB并行实现的简单方法
  9. matlab与ie交互
  10. js进阶 14-9 ajax事件有哪些
  11. 企业微信开发步骤 1.拿到企业的id,在我的企业,拖到最下面拿到企业id 2.拿到SECRET,这个secret只有先创建应用才会产生出来...
  12. 自然语言处理:简单解释
  13. WPS表格填充技巧大全
  14. 科润酒吧点单系统服务器配置,那些牛逼的酒吧都用什么管理系统?
  15. labView2015 学习之项目创建模板篇
  16. c语言知道坐标求圆面积,用C语言编程推算圆的面积公式
  17. html中clear标签意义,html中的clear是什么意思
  18. activated 使用
  19. 这所“南方小镇”藏着雅居乐陈卓林描绘的“第二人生”
  20. java将数据写入excel_java将数据写入excel

热门文章

  1. 向工程腐化开炮 | manifest 治理
  2. android手机邮箱权限,Android手机邮箱设置方法
  3. mysql答题系统android_Android答题APP的设计与实现
  4. B站视频搬运项目,宅男必选!
  5. 米家小相机最新固件_不到1000元的米家小相机 都有哪些缺点
  6. 如何导出专业的工程图纸(附工图模板)
  7. 不要在意别人的目光,走自己的路
  8. 计算机类专业毕业论文文献综述,计算机类专业毕业论文参考文献大全
  9. 关于VSCode 要求Java 11 升级的问题——“Java 11 or more recent is required to run the java extension“
  10. Maximum Likelihood 最大似然估计