- 博客(64)
- 收藏
- 关注
原创 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
1191
原创 深入Kafka KRaft模式:生产环境配置详解
Kafka的KRaft模式是一种新的元数据管理方式,旨在去除对ZooKeeper的依赖,使Kafka成为一个完全自包含的系统。在Kafka的传统模式下,元数据管理依赖于ZooKeeper,这增加了部署和运维的复杂性。为了解决这个问题,Kafka社区引入了KRaft模式。在KRaft模式下,所有的元数据,包括主题、分区信息、副本位置等,都被存储在Kafka集群内部的特殊日志中。这个日志使用Raft协议来保证一致性。在传统架构中,Kafka集群包含多个Broker节点和一个ZooKeeper集群。
2025-01-19 23:35:31
1580
原创 Kubernetes配置GPU节点保姆级指南
多实例GPU(MIG)功能允许将NVIDIA A卡或者H卡安全地划分为多个独立的GPU实例,供CUDA应用程序使用。例如,NVIDIA A100支持最多七个独立的GPU实例。MIG为多个用户提供了独立的GPU资源,以实现最佳的GPU利用率。该功能对于未能充分利用GPU计算能力的工作负载特别有益,因此用户可能希望并行运行不同的工作负载,以最大化资源的利用。
2025-01-14 22:54:39
834
原创 K8S日志采集与监控方案介绍
在 Kubernetes 集群中,需要全面了解各个 pod 应用运行状态、故障排查和性能分析。但由于 Pod 是动态创建和销毁的,其日志分散且存储不持久,因此需要通过集中式日志采集方案,将日志收集到统一的平台并配置日志可视化分析和监控告警,以实现日志的可追溯性、实时监控和高效分析,从而提升运维效率和系统可靠性。但目前日志采集与监控方案众多,经常有小伙伴咨询应该使用哪种技术方案可以更好的实现这些功能,接下来就以本人实际项目经验为例,向大家介绍几种常见的日志采集与监控方案。
2024-12-22 19:42:33
2175
原创 Prometheus告警带图完美解决方案
通常我们收到 Prometheus 告警事件通知后,往往都需要登录 Alertmanager 页面查看当前激活的告警,如果需要分析告警历史数据信息,还需要登录 Prometheus 页面的在 Alerts 中查询告警 promQL 表达式,然后复制到 Graph 中查询数据。这样做无疑大大降低了故障分析和处理流程,此时有些聪明的小伙伴就在想,能不能在告警事件推送的时候,将这些历史数据绘制成图表一块推送过来,方便我们第一时间了解指标变化趋势,便于更快的处理问题。
2024-11-26 23:47:06
1270
原创 前后端分离项目实现SSE
在日常web开发中经常会遇到查看数据最新状态的业务场景,例如查看任务状态与日志内容等。比较场景的解决方案是轮循和SSE。是一种允许服务器通过单向通道向客户端推送更新的技术。它基于HTTP协议,客户端使用一个标准的HTTP请求来连接到服务器,并保持这个连接打开,服务器可以在这个连接上持续地发送数据。
2024-09-13 21:08:51
1278
原创 高级运维工程师面试题汇总
经过本人为期一个半月的不懈努力,累计面试了二十多家公司,共计约五十余场面试,考察的面试题超两百道,积累了许多宝贵的面试经验。现在,我将这些面试题以及我个人的应对心得精心整理成一份面试攻略分享给大家,快来一起测测自己能回答多少道面试题吧。
2024-08-26 23:53:30
1858
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
1032
原创 基于gitlab+k8s实现CI/CD
利用Container、Gitlab、Gitlab Runner(k8s)、SonarQube、Harbor、Jmeter、Maven、Java技术,搭建一个完整的 CI/CD 管道,实现当开发人员完成代码提交后,开始流水线工作,完成编译打包、单元测试、源码扫描、上传制品、部署服务到Docker容器、自动化测试工作。通过自动化构建、测试、代码质量检查和容器化部署,将开发人员从繁琐的手动操作中解放出来,提高团队的开发效率、软件质量和安全性,实现持续更新迭代和持续部署交付。
2024-07-14 23:10:32
1203
原创 基于gitlab+docker实现CICD
利用Docker、Gitlab、Gitlab Runner、SonarQube、Harbor、Jmeter、Maven、Java技术,搭建一个完整的 CI/CD 管道,实现当开发人员完成代码提交后,开始流水线工作,完成编译打包、单元测试、源码扫描、上传制品、部署服务到Docker容器、自动化测试工作。通过自动化构建、测试、代码质量检查和容器化部署,将开发人员从繁琐的手动操作中解放出来,提高团队的开发效率、软件质量和安全性,实现持续更新迭代和持续部署交付。
2024-07-09 15:41:43
1263
原创 基于gitlab+linux实现CI/CD
通常情况下项目流水线大部分的内容都是相同的,为了实现模板复用,减少重复代码,我们可以创建一个git仓库用于存放模板,然后创建一个templates目录存放所有pipeline的模板,创建一个jobs目录存放job模板。这样我们可以将一些maven、golang、npm工具通过一个job模板和不同的构建命令实现。templates的好处是我们在其中定义了模板流水线,这些流水线可以直接让项目使用。
2024-07-07 23:06:38
1254
原创 基于jenkins+k8s(container)实现CI/CD
本文以企业生产环境CICD流程为背景,利用 Jenkins、SonarQube、Harbor、Container、Kubernetes技术,搭建一个完整的 CI/CD 管道,模拟实际生产环境项目开发部署流程,实现持续集成、持续交付和持续部署。
2024-05-15 16:38:03
2201
1
原创 基于jenkins+docker实现CI/CD实践
利用 Jenkins、Docker、SonarQube 和 Harbor 技术,搭建一个完整的 CI/CD 管道,实现持续集成、持续交付和持续部署的流程。通过自动化构建、测试、代码质量检查和容器化部署,将开发人员从繁琐的手动操作中解放出来,提高团队的开发效率、软件质量和安全性,实现持续更新迭代和持续部署交付。
2024-04-27 22:28:08
1225
2
原创 ES8生产实践——ES跨集群数据迁移方案测评
方案esmreindexlogstashsnapshot基本原理逻辑备份,类似mysqldump将数据一条一条导出后再执行导入ESM 是 medcl 开源的派生自:Elasticsearch Dumper 的工具,基于 go 语言开发。reindex 是 Elasticsearch 提供的一个 API 接口,可以把数据从一个集群迁移到另外一个集群从一个集群中读取数据然后写入到另一个集群从源集群通过Snapshot API 创建数据快照,然后在目标集群中进行恢复网络要求无网络互通要求。
2024-03-20 22:48:41
3163
原创 ES8生产实践——性能压测工具esrally
模拟真实场景: Rally 可以模拟真实的生产环境中的负载,包括索引、搜索、聚合等操作,以便评估 Elasticsearch 在不同负载下的性能表现。多种负载类型: Rally 提供了多种预置的负载类型,如Index、Search、Bulk、Update等,用户可以根据需求选择合适的负载类型进行测试。灵活的配置: Rally 允许用户对测试进行灵活的配置,包括索引设置、数据量、并发度等参数。用户可以根据自己的需求定制测试方案。
2024-03-20 22:47:35
1700
原创 Vue3 exceljs库实现前端导入导出Excel
ExcelJS是一个用于在Node.js和浏览器中创建、读取和修改Excel文件的强大JavaScript库。它提供了丰富的功能和灵活的API,使你能够在你的应用程序中处理和操作Excel文件。创建和修改Excel文件:ExcelJS允许你创建新的Excel工作簿,并在其中添加工作表、行和单元格。你可以设置单元格的值、样式、数据类型以及其他属性。读取和解析Excel文件:ExcelJS支持读取和解析现有的Excel文件。你可以将Excel文件加载到工作簿中,然后访问工作表、行和单元格的数据。
2024-02-25 14:17:25
9276
6
原创 ES8生产实践——Kibana对接Azure AD实现单点登录
单点登录(Single Sign-On,SSO)是一种身份验证和访问控制机制,允许用户使用一组凭据(通常是用户名和密码)仅需登录一次,即可访问多个应用程序或系统,而无需在每个应用程序中单独设置账号密码并进行身份验证。在没有单点登录前,当用户访问多个应用程序时,每个应用程序需要用户提供自己的凭据进行身份验证。这种方式对用户来说很不便,需要记住多个用户名和密码,并且在每个应用程序之间进行频繁的登录操作。单点登录解决了这个问题,使用户只需在第一次登录时提供凭据,然后在访问其他应用程序时自动使用已验证的身份。
2023-12-25 22:20:18
1501
原创 ES8生产实践——日志清洗过滤(vector方案)
本篇为ELK Stack生产实践专题系列第二十一篇,本篇主要内容是介绍超大规模日志场景下使用vector替代logstash实现日志数据清洗过滤方案,并以采集k8s集群所有pod日志和自定义日志采集处理为例,详细介绍vector如何配置和使用。
2023-11-26 18:09:06
3574
原创 ES8生产实践——pod日志采集(ELK方案)
默认情况下,fluent bit会采集所有pod日志信息,并自动添加namespace、pod、container等信息,所有日志内容存储在log字段中。以log-demo应为日志为例,将所有日志内容存储到log字段下,如果想要按条件筛选分析日志数据时,无法很好的解析日志内容,因此需要配置logstash解析规则,实现日志自定义日志内容解析。
2023-10-19 20:44:39
722
原创 ES8生产实践——pod日志采集(EFK方案)
本篇为ELK Stack生产实践专题系列第十九篇,本篇主要内容是介绍使用Fluent Bit+Fluentd方案采集k8s集群所有节点的containerd、kubelet服务日志以及所有的pod日志。并以自定义日志采集处理为例,演示如何配置过滤策略实现自定义日志处理并写入到到ES中。
2023-10-09 22:18:46
592
原创 ES8生产实践——pod日志采集(Fluent Bit方案)
本篇为ELK Stack生产实践系列专题第十八篇,本篇主要内容是介绍使用Fluent Bit采集pod日志方案,并总结Fluent Bit常用模块以及使用配置示例。并以自定义日志采集为例,演示如何通过sidecar方式采集、过滤、输出到ES中。
2023-10-09 22:17:17
2082
2
原创 ES8生产实践——pod日志采集(Fluentd方案)
Fluentd是一个是一个开源的日志收集和传输工具,旨在解决日志数据的收集、传输和处理问题,它可以收集来自于各种系统或应用的日志,转化为用户指定的格式后,转发到用户所指定的日志存储系统之中。用图来说明问题的话,在没有使用之前Fluentd,日志采集过滤存储流程如下所示:使用Fluentd之后,日志系统如下所示:Fluentd负责从服务器收集日志信息,将数据流交给后续存储服务和查询工具。换句话说,Fluentd不负责生产数据、不负责存储数据,只是数据的搬运工。
2023-09-10 20:27:37
2910
1
原创 ES8生产实践——pod日志采集(Elastic Agent方案)
在先前的自定义日志采集(fleet方式)中已有详细讲解,具体内容可参考文档,此处不再赘述。
2023-09-10 20:26:05
526
原创 ES8生产实践——Fleet部署与常见日志采集(ECK方式)
本篇为ELK Stack生产实践系列专题第十五篇,本篇主要内容是介绍如何在k8s环境中通过eck方式部署fleet server和elastic agent,以及通过配置集成策略完成对Linux、kubernetes、elasticsearch服务的日志与指标的采集与查询展示。
2023-09-04 20:58:18
1476
原创 ES8生产实践——k8s部署与维护ELK集群(ECK)
本篇为ELK Stack生产实践系列专题第十四篇,本篇主要内容是介绍ECK并模拟实际使用场景通过ECK快速部署8.9版本的elasticsearch集群和kibana服务。并演示如何进行分片分配感知配置、数据备份恢复、服务配置变更、节点维护、集群重建、集群扩容、版本升级等日常运维操作。
2023-09-04 20:56:43
4022
原创 ES8生产实践——Python操作Elasticsearch
我们除了可以使用kibana页面管理操作ElasticSearch外,elasticsearch还支持通过SDK和RESTful API接口进行操作。通过sdk我们可以非常便捷的将我们的项目与elasticsearch对接,实现数据的增删改查。通过API接口我们可以对elasticsearch集群进行一些例如索引调整、集群故障处理等进阶操作。
2023-08-23 15:34:44
1133
原创 ES8生产实践——ELK监控与告警(Prometheus)
kibana虽然也能实现告警,但仅能针对ES集群状态和查询结果配置告警规则,更多常用的告警媒介需要购买商业授权才可使用,且告警程序过度依赖Kibana服务,可能会因为单点故障导致告警无法正常触发。因此在生产环境中更推荐使用免费开源的Prometheus+Grafana方案实现ELK业务的监控与告警。
2023-08-23 15:33:11
3370
2
原创 ES8生产实践——ELK监控与告警(Kibana)
ELK的监控主要分为两方面,一方面是Filebeat、Logstash、Elasticsearch、Kibana自身的服务性能指标的采用与监控,另一方面是采集业务日志存入ES后,进行日志分析与告警监控。
2023-08-17 23:08:46
5828
4
原创 ES8生产实践——数据查询与数据可视化(Grafana)
ES数据可视化除了使用kibana外,grafana也是常用的数据可视化工具。相较于kibana来说,grafana支持的图表样式等配置项更多,可以根据自己的需求灵活制作出各种复杂的图表,相应的上手难度略高于kibana。使用Grafana的好处是将来如果使用Prometheus监控,可以将业务日志图表与服务性能监控组合展示,可以按不同的dashboard设置权限方便不同组的用户查看与编辑。接下来让我们一起上手使用grafana,实现数据查询与图表制作。
2023-08-17 23:07:27
3358
原创 ES8.8生产实践——数据查询与数据可视化(Kibana)
在前面的案例中,我们顺利的通过各种方式完成了数据的采集过滤与存储,接下来我们通过kibana实现数据的查询与可视化,用图形的方式从各个维度更加直观有效的展示数据内容。
2023-08-17 23:05:35
5004
原创 ES8生产实践——ES索引策略配置与写入优化
数据流是es7.9新推出的功能,它是索引、模板、rollover、ilm 基于时序性数据的综合产物。在es8中,凡是日志(logs)、事件(events)、指标(metrics)和其他持续生成的数据,都强烈推荐创建数据流类型的索引。
2023-08-17 23:02:58
2216
原创 ES8生产实践——Docker部署ELK8.8与日志采集
如果想在本地环境快速部署一套ELK服务,推荐使用docker方式部署。需要注意的是部署单节点es服务仅用于实验测试环境使用,未配置开机自启,所有容器未加–restart=always参数。可根据实际情况添加该参数,生产环境建议使用eck部署和管理es容器集群。
2023-08-08 18:38:38
1672
原创 ES8生产实践——自定义日志采集(Filebeat方式)
在某些存在业务高峰期的场景下,期间可能会产生大量日志,如果继续使用fleet采集日志,使用ingest处理数据,可能会出现写入堆积的情况。此时可采用传统的Filebeat方式采集日志,引入Kafka作为消息缓冲队列,保证日志传输数据的可靠性和稳定性。接下来以日志demo程序为例,实现Filebeat采集——>kafka消息缓冲队列——>logstash解析处理数据——>es存储——>kibana数据可视化分析完整流程的演示。
2023-08-08 18:37:12
651
原创 ES8生产实践——自定义日志采集(Fleet方式)
虽然Fleet为我们内置了大多数常见服务日志的接入配置,但是实际生产中往往会有自定义格式日志的接入需求,此时可以通过Custom Logs代理策略实现日志采集,数据经过ingest/logstash处理后,写入ES中。
2023-08-08 18:34:28
579
原创 ES8生产实践——Fleet部署与常见日志采集
为了更加方便的实现系统和应用程序日志接入ES,官方推出了Elastic Agent应用,Elastic Agent可以实现通过更少的配置和安装来简化数据采集配置,通过Fleet可以轻松的管理整个Elastic Agent队列。Kibana为我们内置了大多数场景下日志的采集与可视化分析配置,我们仅需要在kibanaUI中点击操作便可完成复杂的日志采集。
2023-08-08 18:32:49
2082
原创 ES8生产实践——ES数据备份与恢复
本篇为ELK Stack系列教程第三篇,主要内容是使用ES的快照功能,通过minIO的S3协议,实现了索引数据的备份策略配置,以及数据备份恢复操作相关演示。
2023-07-30 23:02:12
1579
原创 ES8生产实践——ES8.8集群部署
本篇为ELK Stack生产实践系列第二篇,主要内容是通过rpm方式部署7个节点的es8.8集群和kibana服务,详细记录了从开始的系统环境初始化到es集群和kibana服务部署的完整流程,以及部署过程中的注意事项和常见问题处理办法。
2023-07-30 23:00:41
1909
原创 ES8生产实践——集群角色规划
本文章为ELK Stack系列教程第一篇,主要从实际业务角度出发,介绍如何根据日志量合理规划节点规模、集群角色规划。
2023-07-30 22:56:10
337
原创 alertmanager——webhook与API
由接口文档可知,Alertmanager的API接口主要分为以下几类/status:获取Alertmanager实例及其集群的当前状态/receivers:获取所有接收者的列表(通知集成的名称)/silence:新增、删除告警静默规则/alerts:查询、新增告警事件/alerts/groups:获取警报组列表接下来我们选取几个常用的接口演示使用。
2023-07-10 11:22:41
4617
2
原创 入门ETCD——配合confd实现配置管理
Confd是一个轻量级的配置管理工具。通过查询后端存储,结合配置模板引擎,保持本地配置最新,同时具备定期探测机制,配置变更自动reload。对应的后端存储可以是etcd,redis、zookeeper等。
2023-03-28 22:09:46
1484
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人