日志服务搭建-ES-FileBeat-Kibana
创始人
2024-05-30 21:34:08
0

      1次订单量突增问题,导致了有几个数据没有录库,但是确有支付的记录,啥玩意,还能有这个操作,组内安排问题定位,解决,一看打出来的日志,只有支付有,生成订单这边没有,就相当于是俩眼一抹黑。 处理方案,销售确定有下订单后先按照支付的日志,把订单信息维护上。

      搞在线日志和核心业务监控,这看linux的日志还是挺费事的。

如果我们是在springboot的每个服务下面都配置了

 1. 不影响程序和不给程序更多的带宽消耗,就没有在xml中直接配置日志同步给es

采用的是本地服务生成日志后,通过FileBeat去监听指定log文件有变化,就同步数据到es中。

这里就要对所有服务提供log日志模板:

参考:

log.info("业务标识 |   业务操作  |  主要记录日志内容 : {}", 变化的参数)方式输出。

log.error("业务标识 |   业务操作  |  主要错误日志内容 : {}", 变化的参数)方式输出。

 搭建  elasticsearch / filebeat / logstash/ kibana服务

先安装docker 和docker-compose

version: "2.2"
services:es:image: elasticsearch:7.8.0container_name: elasticsearch ports:- "9200:9200"- "9300:9300"environment:discovery.type: single-node##es的密码ELASTIC_PASSWORD: changemeES_JAVA_OPTS: "-Xmx512m -Xms256m"volumes:- /mydata/elasticsearch/:/usr/share/elasticsearch/data- /opt/elk/elasticsearch/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml- /opt/elk/elasticsearch/plugins:/usr/share/elasticsearch/pluginsls:image: logstash:7.8.0container_name: logstashports:- "5000:5000/tcp"- "5000:5000/udp"- "9600:9600"environment:discovery.type: single-nodeES_JAVA_OPTS: "-Xmx512m -Xms256m"volumes:- /opt/elk/logstach/pipeline:/usr/share/logstash/pipeline- /opt/elk/logstach/logstash.yml:/usr/share/logstash/config/logstash.yml- /opt/elk/logstach/jars:/usr/share/logstash/logstash-core/lib/jars/depends_on:- eskb:image: kibana:7.8.0container_name: kibanaports:- "5601:5601"volumes:- /opt/elk/kibana/kibana.yml:/usr/share/kibana/config/kibana.ymldepends_on:- es

在运行docker-compose.yml 

 

 

 然后就是elasticsearch的配置  elasticsearch.yml

## Default Elasticsearch configuration from Elasticsearch base image.
cluster.name: "docker-cluster"
network.host: 0.0.0.0
xpack.license.self_generated.type: trial
xpack.security.enabled: true
xpack.monitoring.collection.enabled: true

logstash.yml  文件配置

## Default Logstash configuration from Logstash base image.
http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: [ "http://ip:9200" ]
xpack.monitoring.enabled: true
xpack.monitoring.elasticsearch.username: 账号
xpack.monitoring.elasticsearch.password: 密码

filebeat.yml  文件配置

filebeat.inputs:
- type: logenabled: truepaths: - /home/log-info.log  # 文件位置
setup.ilm.enabled: false
setup.template.settings:index.number_of_shards: 1output.elasticsearch:hosts: 'ip:9200'username: "账号"password: "密码"indices:- index: 'springboot-%{+yyyy.MM.dd}'  # 对应的索引

kibana.yml文件

##Default kibana configuration from Kibana base image.
server.name: kibana
server.host: 0.0.0.0
i18n.locale: "zh-CN"
server.basePath: "/kibana"
elasticsearch.hosts: [ "http://ip:9200" ]
xpack.security.enabled: true
monitoring.ui.container.elasticsearch.enabled: true
elasticsearch.username: 账号
elasticsearch.password: 密码

登入kibana ,可以查看索引数据,查看日志,功能比较强大,需要点时间研究。

 搭建好:

我要加一个服务到在线日志系统 流程

以A 服务为例子

原来看log-info    TAIL -F LOG-INO.LOG

_index : a-log-error-* 查看所有a服务error日志

_index : a-*  查看所有a服务info日志

  1. 到filebeat目录下修改filebeat.yml 参照已经完成的

 

 在配置完filebeat.yml都要重新执行filebeat容器

docker run -d --name=filebeat  --restart=always
-v对应文件映射
elastic/filebeat:7.8.0

最终实现现在看,根据时间查看

后面可以配置告警功能,优化日志展示格式。

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...