- 博客(72)
- 收藏
- 关注
原创 入门OpenTelemetry——Grafana全家桶方案
组件作用说明全面采集应用侧统一采集日志、指标、追踪数据,支持多语言 SDK。Prometheus指标采集与存储主动拉取应用和系统的监控指标,配合 Alertmanager 进行告警。Loki日志聚合存储结构化日志存储,与 traceID 打通,轻量级类似 Prometheus 的日志系统。Tempo分布式追踪存储收集 trace 信息,存储于对象存储(如 MinIO/S3)中,便于分析慢请求、链路瓶颈。Grafana可视化分析平台。
2025-06-08 21:28:16
905
原创 入门OpenTelemetry——指标数据收集与导出
OpenTelemetry 支持将指标(Metrics)数据导出到多种后端,比如 Prometheus、OTLP、Grafana Cloud等。(例如手动 SDK 初始化 vs. 使用 OpenTelemetry Collector)。
2025-06-02 23:19:38
321
原创 入门OpenTelemetry——链路追踪数据收集与导出
Jaeger 是Uber公司研发,后来贡献给CNCF的一个分布式链路追踪软件,主要用于微服务链路追踪。它优点是性能高(能处理大量追踪数据)、部署灵活(支持单节点和分布式部署)、集成方便(兼容 OpenTelemetry),并且可视化能力强,可以快速定位性能瓶颈和故障。基于上述示意图,我们简要解析下 Jaeger 各个组件以及组件间的关系:Client libraries(客户端库)功能:将追踪信息(trace/span)插入到应用程序中。说明。
2025-05-25 18:55:43
851
1
原创 入门OpenTelemetry——收集器配置详解
OpenTelemetry 的 Collector 组件是实现观测数据(Trace、Metrics、Logs)收集、处理和导出的一站式服务。它的配置主要分为以下。
2025-05-22 17:44:34
791
原创 入门OpenTelemetry——应用自动埋点
简单说就是:“在合适的地方插追踪/监控代码”。要使用 OpenTelemetry 检测应用程序,可以前往访问 OpenTelemetry 存储库,选择适用于的应用程序的语言,然后按照说明进行操作。
2025-05-18 22:26:52
976
原创 入门OpenTelemetry——部署OpenTelemetry
OpenTelemetry Collector 按部署方式分为 Agent 和Gateway 模式。
2025-05-14 22:39:02
1113
原创 入门OpenTelemetry——可观测性与链路追踪介绍
可观测性(Observability)是一种通过外部输出推断系统内部状态的能力,帮助快速定位和解决系统问题,无需预先定义所有可能的故障或状态。它通过日志(Logs)、指标(Metrics)和链路追踪(Traces)三大核心数据支柱,提供对系统运行状态的全面透明视图。可观测性在现代云原生和分布式系统中尤为重要,能够快速定位问题、主动发现异常、优化性能,并提高团队协作效率和系统稳定性。
2025-05-14 22:08:07
895
原创 MySQL8.4 InnoDB Cluster高可用集群使用指南
InnoDB Cluster至少由三个MySQL Server实例组成,它提供高可用性和扩展功能。InnoDB Cluster 使用以下 MySQL 技术:MySQL Shell,它是 MySQL 的高级客户端和代码编辑器。通过 MySQL Shell 提供的 AdminAPI 来管理MGR集群 , 它封装了MGR 的创建、启动和管理 过程,简化了手动配置。MySQL server 和 Group Replication,,使一组MySQL实例能够提供高可用性。
2025-03-27 09:39:44
1494
原创 深入Kafka KRaft模式:生产环境配置详解
Kafka的KRaft模式是一种新的元数据管理方式,旨在去除对ZooKeeper的依赖,使Kafka成为一个完全自包含的系统。在Kafka的传统模式下,元数据管理依赖于ZooKeeper,这增加了部署和运维的复杂性。为了解决这个问题,Kafka社区引入了KRaft模式。在KRaft模式下,所有的元数据,包括主题、分区信息、副本位置等,都被存储在Kafka集群内部的特殊日志中。这个日志使用Raft协议来保证一致性。在传统架构中,Kafka集群包含多个Broker节点和一个ZooKeeper集群。
2025-01-19 23:35:31
2025
原创 Kubernetes配置GPU节点保姆级指南
多实例GPU(MIG)功能允许将NVIDIA A卡或者H卡安全地划分为多个独立的GPU实例,供CUDA应用程序使用。例如,NVIDIA A100支持最多七个独立的GPU实例。MIG为多个用户提供了独立的GPU资源,以实现最佳的GPU利用率。该功能对于未能充分利用GPU计算能力的工作负载特别有益,因此用户可能希望并行运行不同的工作负载,以最大化资源的利用。
2025-01-14 22:54:39
1087
原创 K8S日志采集与监控方案介绍
在 Kubernetes 集群中,需要全面了解各个 pod 应用运行状态、故障排查和性能分析。但由于 Pod 是动态创建和销毁的,其日志分散且存储不持久,因此需要通过集中式日志采集方案,将日志收集到统一的平台并配置日志可视化分析和监控告警,以实现日志的可追溯性、实时监控和高效分析,从而提升运维效率和系统可靠性。但目前日志采集与监控方案众多,经常有小伙伴咨询应该使用哪种技术方案可以更好的实现这些功能,接下来就以本人实际项目经验为例,向大家介绍几种常见的日志采集与监控方案。
2024-12-22 19:42:33
2412
原创 Prometheus告警带图完美解决方案
通常我们收到 Prometheus 告警事件通知后,往往都需要登录 Alertmanager 页面查看当前激活的告警,如果需要分析告警历史数据信息,还需要登录 Prometheus 页面的在 Alerts 中查询告警 promQL 表达式,然后复制到 Graph 中查询数据。这样做无疑大大降低了故障分析和处理流程,此时有些聪明的小伙伴就在想,能不能在告警事件推送的时候,将这些历史数据绘制成图表一块推送过来,方便我们第一时间了解指标变化趋势,便于更快的处理问题。
2024-11-26 23:47:06
1390
原创 前后端分离项目实现SSE
在日常web开发中经常会遇到查看数据最新状态的业务场景,例如查看任务状态与日志内容等。比较场景的解决方案是轮循和SSE。是一种允许服务器通过单向通道向客户端推送更新的技术。它基于HTTP协议,客户端使用一个标准的HTTP请求来连接到服务器,并保持这个连接打开,服务器可以在这个连接上持续地发送数据。
2024-09-13 21:08:51
1415
原创 高级运维工程师面试题汇总
经过本人为期一个半月的不懈努力,累计面试了二十多家公司,共计约五十余场面试,考察的面试题超两百道,积累了许多宝贵的面试经验。现在,我将这些面试题以及我个人的应对心得精心整理成一份面试攻略分享给大家,快来一起测测自己能回答多少道面试题吧。
2024-08-26 23:53:30
2207
1
原创 基于Gitlab CI+Argo CD的Gitops实践
本项目构建了一个基于GitOps理念的完整CI/CD管道,旨在实现软件开发与运维的高度自动化和一致性。通过GitLab、GitLab Runner(部署于Kubernetes)、Maven、Java、SonarQube、Harbor以及Argo CD等工具的紧密协作,实现代码提交后自动进行编译打包、单元测试、代码扫描、构建镜像、更新资源清单以及滚动更新、蓝绿部署、金丝雀发布、多集群发布功能。
2024-08-01 22:58:39
1192
原创 基于gitlab+k8s实现CI/CD
利用Container、Gitlab、Gitlab Runner(k8s)、SonarQube、Harbor、Jmeter、Maven、Java技术,搭建一个完整的 CI/CD 管道,实现当开发人员完成代码提交后,开始流水线工作,完成编译打包、单元测试、源码扫描、上传制品、部署服务到Docker容器、自动化测试工作。通过自动化构建、测试、代码质量检查和容器化部署,将开发人员从繁琐的手动操作中解放出来,提高团队的开发效率、软件质量和安全性,实现持续更新迭代和持续部署交付。
2024-07-14 23:10:32
1332
原创 基于gitlab+docker实现CICD
利用Docker、Gitlab、Gitlab Runner、SonarQube、Harbor、Jmeter、Maven、Java技术,搭建一个完整的 CI/CD 管道,实现当开发人员完成代码提交后,开始流水线工作,完成编译打包、单元测试、源码扫描、上传制品、部署服务到Docker容器、自动化测试工作。通过自动化构建、测试、代码质量检查和容器化部署,将开发人员从繁琐的手动操作中解放出来,提高团队的开发效率、软件质量和安全性,实现持续更新迭代和持续部署交付。
2024-07-09 15:41:43
1347
原创 基于gitlab+linux实现CI/CD
通常情况下项目流水线大部分的内容都是相同的,为了实现模板复用,减少重复代码,我们可以创建一个git仓库用于存放模板,然后创建一个templates目录存放所有pipeline的模板,创建一个jobs目录存放job模板。这样我们可以将一些maven、golang、npm工具通过一个job模板和不同的构建命令实现。templates的好处是我们在其中定义了模板流水线,这些流水线可以直接让项目使用。
2024-07-07 23:06:38
1373
原创 基于jenkins+k8s(container)实现CI/CD
本文以企业生产环境CICD流程为背景,利用 Jenkins、SonarQube、Harbor、Container、Kubernetes技术,搭建一个完整的 CI/CD 管道,模拟实际生产环境项目开发部署流程,实现持续集成、持续交付和持续部署。
2024-05-15 16:38:03
2523
1
原创 基于jenkins+docker实现CI/CD实践
利用 Jenkins、Docker、SonarQube 和 Harbor 技术,搭建一个完整的 CI/CD 管道,实现持续集成、持续交付和持续部署的流程。通过自动化构建、测试、代码质量检查和容器化部署,将开发人员从繁琐的手动操作中解放出来,提高团队的开发效率、软件质量和安全性,实现持续更新迭代和持续部署交付。
2024-04-27 22:28:08
1362
2
原创 ES8生产实践——ES跨集群数据迁移方案测评
方案esmreindexlogstashsnapshot基本原理逻辑备份,类似mysqldump将数据一条一条导出后再执行导入ESM 是 medcl 开源的派生自:Elasticsearch Dumper 的工具,基于 go 语言开发。reindex 是 Elasticsearch 提供的一个 API 接口,可以把数据从一个集群迁移到另外一个集群从一个集群中读取数据然后写入到另一个集群从源集群通过Snapshot API 创建数据快照,然后在目标集群中进行恢复网络要求无网络互通要求。
2024-03-20 22:48:41
3467
原创 ES8生产实践——性能压测工具esrally
模拟真实场景: Rally 可以模拟真实的生产环境中的负载,包括索引、搜索、聚合等操作,以便评估 Elasticsearch 在不同负载下的性能表现。多种负载类型: Rally 提供了多种预置的负载类型,如Index、Search、Bulk、Update等,用户可以根据需求选择合适的负载类型进行测试。灵活的配置: Rally 允许用户对测试进行灵活的配置,包括索引设置、数据量、并发度等参数。用户可以根据自己的需求定制测试方案。
2024-03-20 22:47:35
1822
原创 Vue3 exceljs库实现前端导入导出Excel
ExcelJS是一个用于在Node.js和浏览器中创建、读取和修改Excel文件的强大JavaScript库。它提供了丰富的功能和灵活的API,使你能够在你的应用程序中处理和操作Excel文件。创建和修改Excel文件:ExcelJS允许你创建新的Excel工作簿,并在其中添加工作表、行和单元格。你可以设置单元格的值、样式、数据类型以及其他属性。读取和解析Excel文件:ExcelJS支持读取和解析现有的Excel文件。你可以将Excel文件加载到工作簿中,然后访问工作表、行和单元格的数据。
2024-02-25 14:17:25
9774
6
原创 ES8生产实践——Kibana对接Azure AD实现单点登录
单点登录(Single Sign-On,SSO)是一种身份验证和访问控制机制,允许用户使用一组凭据(通常是用户名和密码)仅需登录一次,即可访问多个应用程序或系统,而无需在每个应用程序中单独设置账号密码并进行身份验证。在没有单点登录前,当用户访问多个应用程序时,每个应用程序需要用户提供自己的凭据进行身份验证。这种方式对用户来说很不便,需要记住多个用户名和密码,并且在每个应用程序之间进行频繁的登录操作。单点登录解决了这个问题,使用户只需在第一次登录时提供凭据,然后在访问其他应用程序时自动使用已验证的身份。
2023-12-25 22:20:18
1651
原创 ES8生产实践——日志清洗过滤(vector方案)
本篇为ELK Stack生产实践专题系列第二十一篇,本篇主要内容是介绍超大规模日志场景下使用vector替代logstash实现日志数据清洗过滤方案,并以采集k8s集群所有pod日志和自定义日志采集处理为例,详细介绍vector如何配置和使用。
2023-11-26 18:09:06
4037
原创 ES8生产实践——pod日志采集(ELK方案)
默认情况下,fluent bit会采集所有pod日志信息,并自动添加namespace、pod、container等信息,所有日志内容存储在log字段中。以log-demo应为日志为例,将所有日志内容存储到log字段下,如果想要按条件筛选分析日志数据时,无法很好的解析日志内容,因此需要配置logstash解析规则,实现日志自定义日志内容解析。
2023-10-19 20:44:39
759
原创 ES8生产实践——pod日志采集(EFK方案)
本篇为ELK Stack生产实践专题系列第十九篇,本篇主要内容是介绍使用Fluent Bit+Fluentd方案采集k8s集群所有节点的containerd、kubelet服务日志以及所有的pod日志。并以自定义日志采集处理为例,演示如何配置过滤策略实现自定义日志处理并写入到到ES中。
2023-10-09 22:18:46
633
原创 ES8生产实践——pod日志采集(Fluent Bit方案)
本篇为ELK Stack生产实践系列专题第十八篇,本篇主要内容是介绍使用Fluent Bit采集pod日志方案,并总结Fluent Bit常用模块以及使用配置示例。并以自定义日志采集为例,演示如何通过sidecar方式采集、过滤、输出到ES中。
2023-10-09 22:17:17
2241
2
原创 ES8生产实践——pod日志采集(Fluentd方案)
Fluentd是一个是一个开源的日志收集和传输工具,旨在解决日志数据的收集、传输和处理问题,它可以收集来自于各种系统或应用的日志,转化为用户指定的格式后,转发到用户所指定的日志存储系统之中。用图来说明问题的话,在没有使用之前Fluentd,日志采集过滤存储流程如下所示:使用Fluentd之后,日志系统如下所示:Fluentd负责从服务器收集日志信息,将数据流交给后续存储服务和查询工具。换句话说,Fluentd不负责生产数据、不负责存储数据,只是数据的搬运工。
2023-09-10 20:27:37
3122
1
原创 ES8生产实践——pod日志采集(Elastic Agent方案)
在先前的自定义日志采集(fleet方式)中已有详细讲解,具体内容可参考文档,此处不再赘述。
2023-09-10 20:26:05
582
原创 ES8生产实践——Fleet部署与常见日志采集(ECK方式)
本篇为ELK Stack生产实践系列专题第十五篇,本篇主要内容是介绍如何在k8s环境中通过eck方式部署fleet server和elastic agent,以及通过配置集成策略完成对Linux、kubernetes、elasticsearch服务的日志与指标的采集与查询展示。
2023-09-04 20:58:18
1634
原创 ES8生产实践——k8s部署与维护ELK集群(ECK)
本篇为ELK Stack生产实践系列专题第十四篇,本篇主要内容是介绍ECK并模拟实际使用场景通过ECK快速部署8.9版本的elasticsearch集群和kibana服务。并演示如何进行分片分配感知配置、数据备份恢复、服务配置变更、节点维护、集群重建、集群扩容、版本升级等日常运维操作。
2023-09-04 20:56:43
4361
原创 ES8生产实践——Python操作Elasticsearch
我们除了可以使用kibana页面管理操作ElasticSearch外,elasticsearch还支持通过SDK和RESTful API接口进行操作。通过sdk我们可以非常便捷的将我们的项目与elasticsearch对接,实现数据的增删改查。通过API接口我们可以对elasticsearch集群进行一些例如索引调整、集群故障处理等进阶操作。
2023-08-23 15:34:44
1215
原创 ES8生产实践——ELK监控与告警(Prometheus)
kibana虽然也能实现告警,但仅能针对ES集群状态和查询结果配置告警规则,更多常用的告警媒介需要购买商业授权才可使用,且告警程序过度依赖Kibana服务,可能会因为单点故障导致告警无法正常触发。因此在生产环境中更推荐使用免费开源的Prometheus+Grafana方案实现ELK业务的监控与告警。
2023-08-23 15:33:11
3634
2
原创 ES8生产实践——ELK监控与告警(Kibana)
ELK的监控主要分为两方面,一方面是Filebeat、Logstash、Elasticsearch、Kibana自身的服务性能指标的采用与监控,另一方面是采集业务日志存入ES后,进行日志分析与告警监控。
2023-08-17 23:08:46
6546
5
原创 ES8生产实践——数据查询与数据可视化(Grafana)
ES数据可视化除了使用kibana外,grafana也是常用的数据可视化工具。相较于kibana来说,grafana支持的图表样式等配置项更多,可以根据自己的需求灵活制作出各种复杂的图表,相应的上手难度略高于kibana。使用Grafana的好处是将来如果使用Prometheus监控,可以将业务日志图表与服务性能监控组合展示,可以按不同的dashboard设置权限方便不同组的用户查看与编辑。接下来让我们一起上手使用grafana,实现数据查询与图表制作。
2023-08-17 23:07:27
3591
原创 ES8.8生产实践——数据查询与数据可视化(Kibana)
在前面的案例中,我们顺利的通过各种方式完成了数据的采集过滤与存储,接下来我们通过kibana实现数据的查询与可视化,用图形的方式从各个维度更加直观有效的展示数据内容。
2023-08-17 23:05:35
5285
原创 ES8生产实践——ES索引策略配置与写入优化
数据流是es7.9新推出的功能,它是索引、模板、rollover、ilm 基于时序性数据的综合产物。在es8中,凡是日志(logs)、事件(events)、指标(metrics)和其他持续生成的数据,都强烈推荐创建数据流类型的索引。
2023-08-17 23:02:58
2291
原创 ES8生产实践——Docker部署ELK8.8与日志采集
如果想在本地环境快速部署一套ELK服务,推荐使用docker方式部署。需要注意的是部署单节点es服务仅用于实验测试环境使用,未配置开机自启,所有容器未加–restart=always参数。可根据实际情况添加该参数,生产环境建议使用eck部署和管理es容器集群。
2023-08-08 18:38:38
1737
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人