百亿数据查询秒级响应,观测体系之日志中心该如何玩转?

日志是处理生产故障、性能优化、业务分析的重要参考依据,是系统稳定运行不可或缺的一部分。随着业务系统规模急剧膨胀增大,尤其是是微服务架构逐渐普及,一个系统可能涉及多个应用模块与服务实例,传统模式下运维人员去定位问题显得异常困难,效率低下。

当服务器资源增加时,各种类型的系统日志、业务日志、组件日志、容器日志等散落在不同设备上,故障排查异常艰难,因此构建高效且统一的日志中心能力尤为必要。本文主要研究基于ELK架构实时日志分析平台。

1、架构设计

ELK是三个组件缩写,分别表示Elasticsearch,Logstash,Kibana。Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。Logstash 主要是用来日志的采集、过滤日志的工具,缺点是性能损耗较大。

Kibana 可以为 Logstash 和 ElasticSearch 提供的日志分析的可视化界面,可以帮助汇总、分析和搜索重要数据日志。同时随着 ELK 生态发展,涉及 Beats 日志采集工具,其中轻量化日志采集工具 FileBeat 使用居多。

图片

此架构适用于生产级别高并发日志采集需求

  • 采集端:使用轻量化的 filebeat 组件进行日志采集,收集服务器、容器、应用成等各种数据源生成的实时数据。

  • 消息队列:引入 Kafka 消息队列机制用于解决高并发大规模场景下日志读取引发的 IO 性能瓶颈问题和扩展性问题。

  • 处理端:Logstash 消费 Kafka 消息队列中的数据,经过日志过滤、分析后,将数据传递给ES集群存储。

  • 存储:Elasticsearch 用于日志存储服务,接收 logstash 日志格式处理后的数据,常用索引模板存储不同类型日志,将数据以分片形式压缩存储并提供多种API 供用户查询和操作。

  • 展示端:使用 Kibana 检索 Elastisearch 中的日志数据,通过视图、表格、仪表盘、地图等形式可视化呈现日志信息,提供日志分析检索服务。

2、日志采集

日志采集类型主要分为三种类型

  1. 系统日志:系统运行日志包含 message 和 secure 等

  2. 服务日志:如数据库的普通运行日志、错误日志、慢查询日志等

  3. 业务日志:应用运行核心日志以 Java 日志 Log4j 居多

日志采集的方式主要有两种类型:⬇️

1)文件方式

filebeat.yml核心配置实例

filebeat.inputs:- type: log  enabled: false  paths:    - /tmp/*.log  tags: ["sit","uat"]  fields:    role: "云原生运维"    date: "202308"  - type: log  enabled: true  paths:    - /var/log/*.log  tags: ["SRE","team"]---------------------------output.elasticsearch:  enabled: true  hosts: ["192.168.0.1:9200","192.168.0.2:9200","192.168.0.3:9200"]  index: "cmdi-linux-sys-%{+yyyy.MM.dd}"setup.ilm.enabled: falsesetup.template.name: "dev-linux"setup.template.pattern: "dev-linux*"setup.template.overwrite: falsesetup.template.settings:  index.number_of_shards: 3  index.number_of_replicas: 2

配置说明:⬇️

type 用于标识日志类型
enabled 用于标识该项采集是否启动生效
path 用于配置采集日志路径,通过模糊匹配模式适配日志文件
tag 用于标识标签
output.elasticsearch 该部分为日志存储服务配置,此处采用副本和分片机制的索引模板来接收不同类型日志存储需求,同时根据需要可添加 elasticsearch 存储认证服务。

2)Kubernetes集群方式

为适配 Kubernetes 环境下 Pod 服务随时变化的日志采集需求,需要设计动态化日志采集。

步骤1)创建sa

apiVersion: v1kind: ServiceAccountmetadata:  name: filebeat  namespace: kube-system  labels:    app: filebeat

步骤2)基于RBAC的角色控制设定​​​​​​​

apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRoleBindingmetadata:  name: filebeatsubjects:- kind: ServiceAccount  name: filebeat  namespace: kube-systemroleRef:  kind: ClusterRole  name: filebeat  apiGroup: rbac.authorization.k8s.io---apiVersion: rbac.authorization.k8s.io/v1kind: RoleBindingmetadata:  name: filebeat  namespace: kube-systemsubjects:  - kind: ServiceAccount    name: filebeat    namespace: kube-systemroleRef:  kind: Role  name: filebeat  apiGroup: rbac.authorization.k8s.io

步骤3)采集服务的cm文件设定​​​​​​​

data:  filebeat.yml: |-    filebeat.inputs:    - type: container      paths:        - /var/log/containers/*.log      processors:        - add_kubernetes_metadata:            in_cluster: true            matchers:            - logs_path:                logs_path: "/log/containers/"        - drop_event.when.not:            or:              - equals.kubernetes.namespace: sit-dev    output.elasticsearch:      hosts: ['192.168.0.1:9200', '192.168.0.2:9200', '192.168.0.3:9200']      index: "sit-%{[kubernetes.container.name]:default}-%{+yyyy.MM.dd}"    setup.template.name: "sit"    setup.template.pattern: "sit-*"

步骤4)部署daemonset采集服务

​​​​​​​

containers:- name: filebeat  image: elastic/filebeat:v8.6.2  args: [    "-c", "/etc/filebeat.yml",    "-e",  ]  env:  - name: ELASTICSEARCH_HOST    value: 192.168.0.1  - name: ELASTICSEARCH_PORT    value: "9200"  securityContext:    runAsUser: 0    # If using Red Hat OpenShift uncomment this:    #privileged: true  resources:    limits:      memory: 200Mi    requests:      cpu: 100m      memory: 100Mi

按照以上配置启动容器化采集服务,即可将相关日志采集入库

3.可视化呈现

采集服务启动后,通过 Kibana 对接 Elasticsearch 服务可以查询到日志索引服务,同一类型日志通过不同时间日期索引来区分。⬇️

图片

创建数据视图,为不同类型索引创建对应的可视化视图信息。
名称部分为视图名称,自行定义

索引模式通过正则表达式匹配特定索引源,完成特定数据视图查看。

图片

可视化呈现数据视图 ⬇️

支持不同灵活的选定日志字段进行组合呈现
支持KQL语法的日志检索服务,可以满足关键核心日志查询需求
支持历史日志检索需求
支持自定义刷新频率

图片

多种类型的仪表盘模板和自定义仪表盘 ⬇️

图片

4、总结

ELK日志体系提供日志收集、存储、分析和可视化呈现能力,借助于 Elasticsearch的全文索引功能,具备强大的搜索能力,支持百亿级数据的查询秒级响应,同时局别灵活的集群现行扩展能力为生产级别集中化日志中心提供良好的解决方案。

但是它对日志格式处理能力有限,部分场景日志格式需要借助于其它组件完成预处理和转换,同时在告警、权限管理和关联分析等方面有一定局限性,需要不断优化。

随着开源社区的发展,相信ELK体系会更加成熟和完善,能够满足更多场景化需求。

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

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

相关文章

一文速学-让神经网络不再神秘,一天速学神经网络基础-输出层(四)

前言 思索了很久到底要不要出深度学习内容,毕竟在数学建模专栏里边的机器学习内容还有一大半算法没有更新,很多坑都没有填满,而且现在深度学习的文章和学习课程都十分的多,我考虑了很久决定还是得出神经网络系列文章,不…

HTML5-1-标签及属性

文章目录 语法规范标签规范标签列表通用属性基本布局 页面的组成: HTML(HyperText Markup Language,超文本标记语言)是用来描述网页的一种语言,它不是一种编程语言,而是一种标记语言。 HTML5 是下一代 HTM…

vue3+antdesign table实现表格行颜色

实现效果&#xff1a; 代码&#xff1a; html: <a-table:columns"stockColumns":data-source"stockData"class"ant-table-striped":rowClassName"rowClassName"></table> js: const rowClassName computed(() > {re…

Windows下MATLAB调用Python函数操作说明

MATLAB与Python版本的兼容 具体可参看MATLAB与Python版本的兼容 操作说明 操作说明请参看下面两个链接&#xff1a; 操作指南 简单说明&#xff1a; 我安装的是MATLAB2022a和Python3.8.6&#xff08;安装时请勾选所有可以勾选的&#xff0c;包括路径&#xff09;。对应版本安…

归一化的作用,sklearn 安装

目录 归一化的作用&#xff1a; 应用场景说明 sklearn 准备工作 sklearn 安装 sklearn 上手 线性回归实战 归一化的作用&#xff1a; 归一化后加快了梯度下降求最优解的速度; 归一化有可能提高精度(如KNN) 应用场景说明 1&#xff09;概率模型不需要归一化&#xff…

ArrayList与顺序表

文章目录 一. 顺序表是什么二. ArrayList是什么三. ArrayList的构造方法四. ArrayList的常见方法4.1 add()4.2 size()4.3 remove()4.4 get()4.5 set()4.6 contains()4.7 lastIndexOf()和 indexOf(&#xff09;4.8 subList()4.9 clear() 以上就是ArrayList的常见方法&#xff01…

RHCE——九、SELinux

SELinux 一、概念1、作用2、SELinux与传统的权限区别 二、SELinux工作原理1、名词解释主体&#xff08;Subject&#xff09;目标&#xff08;Object&#xff09;策略&#xff08;Policy&#xff09;安全上下文&#xff08;Security Context&#xff09; 2、文件安全上下文查看1…

element——switch接口成功后赋值打开开关

应用场景 基本用法使用v-model双向绑定值&#xff0c;进行开关控制 例子1:需求&#xff1a; **点击switch&#xff0c;出弹窗&#xff0c;点击弹窗保存按钮调接口成功后再赋值&#xff08;row.orderButtonValue“1”&#xff09;打开switch开的状态变颜色。 在vue 中使用 :va…

安全开发-JS应用NodeJS指南原型链污染Express框架功能实现审计WebPack打包器第三方库JQuery安装使用安全检测

文章内容 环境搭建-NodeJS-解析安装&库安装安全问题-NodeJS-注入&RCE&原型链案例分析-NodeJS-CTF题目&源码审计打包器-WebPack-使用&安全第三方库-JQuery-使用&安全 环境搭建-NodeJS-解析安装&库安装 Node.js是运行在服务端的JavaScript 文档参考…

分布式事务篇-2.4 Spring-Boot整合Seata

文章目录 前言一、pom jar导入:二、项目配置&#xff1a;2.1 配置 说明&#xff1a;2.1 .1 seata server 端:2.1 .2 seata client 端: 2.2 开启seata 对于数据源的代理:2.3 seata-client 的注册中心&#xff1a;2.4 seata-client 的配置中心&#xff1a;2.5 去掉手写的数据源代…

【第四阶段】kotlin语言的mutator函数学习

1.mutator特性1&#xff1a;使用list可以直接 - fun main() {val list mutableListOf(123,456,789)//特性1 可是直接使用list -list 111list-123println(list) }执行结果 2.mutator特性2&#xff1a;removeIF() 如果实现是true 会自动遍历整个集合&#xff0c;一个一个的移除…

新亮点!安防视频监控/视频集中存储/云存储平台EasyCVR平台六分屏功能展示

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

【Robot Framework】发送GET和POST请求

做接口自动化时&#xff0c;经常要使用GET与POST请求&#xff0c;那么如何使用RF发送对应的请求呢&#xff1f; 一、安装RequestsLibrary pip install robotframework-requests安装以后&#xff0c;导入到对应的测试套件或测试用例中. 本次主要介绍通过RequestsLibrary来实现…

【状压+概率DP】CF678 E

Problem - E - Codeforces 题意&#xff1a; 思路&#xff1a; 首先&#xff0c;n < 18&#xff0c;应当想到状压 很明显&#xff0c;这里可以使用状压DP 设 dp[s][i] 表示&#xff0c;现在选的方案为 s &#xff0c;且我是 i 的最终胜利的概率是多少 重要的是转移 这是…

数学建模——校园供水系统智能管理

import pandas as pd data1pd.read_excel("C://Users//JJH//Desktop//E//附件_一季度.xlsx") data2pd.read_excel("C://Users//JJH//Desktop//E//附件_二季度.xlsx") data3pd.read_excel("C://Users//JJH//Desktop//E//附件_三季度.xlsx") data4…

飞天使-python的模块与包与装饰器

文章目录 模块与包标准模块第三方模块自定义模块 高级语法切片迭代器/生成器高级模式&#xff08;闭包&#xff09;高级模式&#xff08;装饰器&#xff09; 参考视频 模块与包 标准模块 import os print(os.getcwd())import sys print(sys.argv) print(sys.platform) print(…

ETC reset

ETC重新激活 换前挡风玻璃膜会把ETC设备拿下来&#xff0c;需要到【ETC服务中心】重新【粘上去】&#xff0c;另外需要工作人员用手持终端【重新激活】 ETC 背面有个 【白色】开关小柱子&#xff0c;一旦拆下来就失效&#xff0c;因为这个开关弹出来了 截面图看就是这样的&…

万人在线,一站式自动化运维 SysOM 3.0重磅发布!龙蜥社区系统运维 MeetUp 回顾来了

8 月 12 日&#xff0c;由龙蜥社区系统运维 SIG 主办&#xff0c;乘云数字协办的&#xff0c;主题为“观测&#xff0c;让运维更简单&#xff01;”的系统运维 MeetUp 于杭州圆满结束。来自乘云数字、谐云科技、乐维、云杉网络、擎创科技、观测云、阿里云以及浙江大学等众多厂商…

Linux 多线程同步机制(上)

文章目录 前言一、线程同步二、互斥量 mutex三、死锁总结 前言 一、线程同步 在多线程环境下&#xff0c;多个线程可以并发地执行&#xff0c;访问共享资源&#xff08;如内存变量、文件、网络连接 等&#xff09;。 这可能导致 数据不一致性, 死锁, 竞争条件等 问题。 为了解…

医院常见的HIS、CIS、LIS、EMR、PACS、RIS医疗信息化中的介绍

医院常见的HIS、CIS、LIS、EMR、PACS、RIS分别是&#xff1a; HIS&#xff08;Hospital Information System&#xff09;&#xff1a;医院信息系统&#xff0c;是医院管理信息化的核心系统&#xff0c;包括病人管理、医生管理、药品管理、医疗设备管理、财务管理等多个方面&am…