数据采集—业务系统日志数据采集

业务系统日志数据采集

业务系统的定义

业务系统是指在一个专业/行业方面,比如人事系统、财务系统、物资系统等,从某一个方面从上到下的组织架构及所有的业务工作。

拿企业业务系统来说,此系统解决的是公司外部的问题,即将一个公司生产的产品卖给他人。

业务系统解决的问题

  1. 让业务流程变的更加规范
  2. 数据实时展示,并给出领导层决策
  3. 历史数据长久保留并随时可查

业务系统—ERP

ERP是企业资源计划的简称,由不同的功能模块组成的软件系统,建立在信息技术基础上。是一个信息高度集成的管理系统。核心业务包括:财务统计,会计管理,销售管理,采购管理,客户关系管理,供应商管理,物流管理,生产计划,质量管理

业务系统—CRM

CRM是指利用计算机网络实现以客户为中心的系统。主要用途是实现企业效益最大化,作用:服务、挖掘客户,维护客户与销售之间的关系、提高客户的满意度、提高服务质量。

应用:

  1. 客户档案有序管理
  2. 合同管理
  3. 销售报表
  4. 预测销售业绩

业务系统的数据价值

数据库数据的价值

记录了业务产生数据,可以用来分析企业业务趋势等。

日志数据的价值

日志中记录了业务系统的几乎所有行为。通过日志信息可以为企业应用系统纠错跟踪系统的运行优化系统性能,可以反映系统错误操作被恶意攻击情况

在高可靠性的系统中,日志能够准确及时反映系统的状况,从而保障了系统运行的连续性

日志数据

由于日志是分散存储才不同设备、服务器中的,所以大多数公司使用集中化管理日志,如syslog,将所有服务器上的日志收集汇总。

日志的作用

  1. 信息查找:检索日志可以找到系统bug,并针对性的修复bug
  2. 服务诊断:对日志信息进行统计分析,根据服务的符合、运行状态,进行相应的优化
  3. 数据分析:如果是格式化的日志,如log,可以进一步分析、统计、聚合出更有意义的信息

ELK

ElasticSearch、Logstash和Kibana三个开源工具组成

ElasticSearch是一个开源分布式搜索服务器。特点是,零配置、分布式、索引自动分片、自动发现、索引副本即止、自动搜索负载

Logstash主要功能,日志进行收集、过滤并将其存储。用于收集集群日志

Kibana浏览器页面的Elasticsearch前端展示工具,主要是为ElasticSearch和Logstash提供web互动界面。

开发语言与技术框架

.Net

.Net平台是微软搭建的技术平台,技术人员在此平台上进行应用的搭建与开发。

程序的运行需要很多所必需的环境。这就是.Net平台 。

.Net的 日志框架

  1. 记录器:日志的对象,可以同时连接一个或多个不同的监视器,记录各种不同的消息和信息
  2. 监视器:用于存储和显示日志消息的媒介(文本文件、数据库、网络、控制台、邮箱)
  3. 包装器:用于制定日志记录的方式
  4. 过滤器:根据消息的严重性级别来过滤和忽略某类消息,只记录特定级别的日志信息
  5. 布局:用于格式化输出(定义输出内容和输出格式)
  6. 严重性级别:给不同类别的消息给予不同的严重程度。

Java

Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称。由James Gosling和同事们共同研发,并在1995年正式推出。
Java分为三个体系:
JavaSE(J2SE)(Java2 Platform Standard Edition,基础
JavaEE(J2EE)(Java 2 Platform,Enterprise Edition,企业)
JavaME(J2ME)(Java 2 Platform Micro Edition,嵌入式设备)。
常用的日志框架Log4j、Slf4j 、Logback

Java的日志框架

Java3以前Java的日志不能定制化,且日志粒度(粒度就是同一维度下,数据统计的粗细程度)不够细。

之后阿帕奇发布了Log4j,解决了上述问题。

现在流行的日志框架Log4j2是性能最好的

Java的日志输出方式

  1. 使用IDEA创建一个Maven项目
  2. 在pom.xml中添加log4j依赖,重载pom.xml,等待依赖添加成功。
  3. 创建Log对象(静态类),并输出若干日志。
  4. 配置每一个日志的配置文件,并分别配置同步和异步两种方式(现用现查)

Java的语言特点

  1. 跨平台性:Java编译后的字节码具有一次编译到处运行的特点,运行在JVM中。
  2. 简单性:Java是面向对象的程序设计语言,没有那些难以理解的指针、结构等
  3. 面向对象:面向对象的程序设计语言,属性或方法必须声明到一个具体的对象中,才能使用。
  4. 安全性:Java在编译时有严格的语言和语义检查,保证了每个变量对应一个值

JavaEE下的框架*

  1. Struts2
  2. Spring
  3. Hibernate
  4. MyBatis/iTatis
  5. Security
  6. Velovity/Framemark/Thmeleaf

微服务框架

概述

微服务架构是围绕着分模块和分布式思想构建的一系列结果的简称,是一种在传统软件应用框架的基础上,按照功能拆分为粒度更细的服务,拆分出的每个服务都是一个独立的应用

服务*

  1. 微服务实例的开发–SpringBoot
  2. 服务的注册与发现–Spring Cloud Eureka
  3. 负载均衡–Spring Cloud Ribbon
  4. 服务容错–Spring Cloud Hystrix
  5. API网关–Spring Cloud Zuul/Gateway
  6. 分布式配置中心–Spring Cloud Config

SpringBoot

集成了原有Spring框架的优秀基因,省去了Spring繁琐的配置,很容易创建一个独立运行的、准生产级别的基于Spring框架的项目

作用*:

  1. 独立运行的Spring项目,以jar的形式独立运行
  2. 内嵌servlet容器,可以内嵌tomact等
  3. 自动配置Spring
  4. 完整的项目监控,保证生产健康
  5. 无代码生成和xml配置,通过条件注解来实现

Spring Cloud

提供了快速构建分布式系统中一些常见模式的工具,开发人员使用SpringCloud可以快速地支持实现这些模式的服务和应用程序。他们能在任何分布式环境中运行良好

业务系统日志数据采集

日志级别

  1. all: 最低等级用于打开所有日志记录
  2. trace:很低的级别,追踪,程序往下执行时,可以用trace输出
  3. debug:调试,默认的最低等级all和trace一般不用;主要用于开发过程中打印一些的信息
  4. info:消息在粗粒度级别上突出强调应用程序的运行过程,用于打印一些重要的信息 常用
  5. warn:警告,可能会出现潜在的错误,需要给开发人员予以提示
  6. error:错误信息,发生了错误事件,道理上不影响整个程序的运行,常用
  7. fatal:致命错误,会导致程序完全停止,整个程序本身存在问题需要重写
  8. off:最高等级,用于关闭所有日志记录

log4j日志显示形式

SimpleLayout:一种简单的形式显示

HTMLLayout:一种HTML表格形式显示

PatternLayout:一种用户自定义的形式显示

log4j的日志格式

%t–线程名称

%p–日志级别

%c–日志消息所在的类名

%m–消息内容

%M–输出执行方法

%d–发生时间

%x–输出和当前线程相关的NDC,多用于java servlets这样的多客户多线程的应用中。

%L–代码中的行数

%n:换行

采集业务系统日志

收集tomcat日志到mysql

  1. Tomact启动:运行Tomcat业务系统
  2. 生成日志:Tomcat中运行java web系统
  3. 日志配置:配置log4j.xml
  4. 设置采集工具FileBeat:配置FileBeat的配置文件,启动FileBeat
  5. 配置LogStash:修改或创建配置文件
  6. Logstash输出配置:安装logstash-output-jdbc插件,将mysql-5.1的驱动程序放到vendor/jar/jdbc目录下,创建logstash.conf配置文件

收集spark、log4j日志到kafka

logstash+kafka

flume+kafka

猜你喜欢

转载自blog.csdn.net/rfdjds/article/details/121566219