自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 收藏
  • 关注

原创 基于jenkins+docker实现CI/CD实践

利用 Jenkins、Docker、SonarQube 和 Harbor 技术,搭建一个完整的 CI/CD 管道,实现持续集成、持续交付和持续部署的流程。通过自动化构建、测试、代码质量检查和容器化部署,将开发人员从繁琐的手动操作中解放出来,提高团队的开发效率、软件质量和安全性,实现持续更新迭代和持续部署交付。

2024-04-27 22:28:08 604 2

原创 ES8生产实践——ES跨集群数据迁移方案测评

方案esmreindexlogstashsnapshot基本原理逻辑备份,类似mysqldump将数据一条一条导出后再执行导入ESM 是 medcl 开源的派生自:Elasticsearch Dumper 的工具,基于 go 语言开发。reindex 是 Elasticsearch 提供的一个 API 接口,可以把数据从一个集群迁移到另外一个集群从一个集群中读取数据然后写入到另一个集群从源集群通过Snapshot API 创建数据快照,然后在目标集群中进行恢复网络要求无网络互通要求。

2024-03-20 22:48:41 998

原创 ES8生产实践——性能压测工具esrally

模拟真实场景: Rally 可以模拟真实的生产环境中的负载,包括索引、搜索、聚合等操作,以便评估 Elasticsearch 在不同负载下的性能表现。多种负载类型: Rally 提供了多种预置的负载类型,如Index、Search、Bulk、Update等,用户可以根据需求选择合适的负载类型进行测试。灵活的配置: Rally 允许用户对测试进行灵活的配置,包括索引设置、数据量、并发度等参数。用户可以根据自己的需求定制测试方案。

2024-03-20 22:47:35 1041

原创 Vue3 exceljs库实现前端导入导出Excel

ExcelJS是一个用于在Node.js和浏览器中创建、读取和修改Excel文件的强大JavaScript库。它提供了丰富的功能和灵活的API,使你能够在你的应用程序中处理和操作Excel文件。创建和修改Excel文件:ExcelJS允许你创建新的Excel工作簿,并在其中添加工作表、行和单元格。你可以设置单元格的值、样式、数据类型以及其他属性。读取和解析Excel文件:ExcelJS支持读取和解析现有的Excel文件。你可以将Excel文件加载到工作簿中,然后访问工作表、行和单元格的数据。

2024-02-25 14:17:25 2547 2

原创 ES8生产实践——Kibana对接Azure AD实现单点登录

单点登录(Single Sign-On,SSO)是一种身份验证和访问控制机制,允许用户使用一组凭据(通常是用户名和密码)仅需登录一次,即可访问多个应用程序或系统,而无需在每个应用程序中单独设置账号密码并进行身份验证。在没有单点登录前,当用户访问多个应用程序时,每个应用程序需要用户提供自己的凭据进行身份验证。这种方式对用户来说很不便,需要记住多个用户名和密码,并且在每个应用程序之间进行频繁的登录操作。单点登录解决了这个问题,使用户只需在第一次登录时提供凭据,然后在访问其他应用程序时自动使用已验证的身份。

2023-12-25 22:20:18 972

原创 ES8生产实践——日志清洗过滤(vector方案)

本篇为ELK Stack生产实践专题系列第二十一篇,本篇主要内容是介绍超大规模日志场景下使用vector替代logstash实现日志数据清洗过滤方案,并以采集k8s集群所有pod日志和自定义日志采集处理为例,详细介绍vector如何配置和使用。

2023-11-26 18:09:06 1454

原创 ES8生产实践——pod日志采集(ELK方案)

默认情况下,fluent bit会采集所有pod日志信息,并自动添加namespace、pod、container等信息,所有日志内容存储在log字段中。以log-demo应为日志为例,将所有日志内容存储到log字段下,如果想要按条件筛选分析日志数据时,无法很好的解析日志内容,因此需要配置logstash解析规则,实现日志自定义日志内容解析。

2023-10-19 20:44:39 417

原创 ES8生产实践——pod日志采集(EFK方案)

本篇为ELK Stack生产实践专题系列第十九篇,本篇主要内容是介绍使用Fluent Bit+Fluentd方案采集k8s集群所有节点的containerd、kubelet服务日志以及所有的pod日志。并以自定义日志采集处理为例,演示如何配置过滤策略实现自定义日志处理并写入到到ES中。

2023-10-09 22:18:46 259

原创 ES8生产实践——pod日志采集(Fluent Bit方案)

本篇为ELK Stack生产实践系列专题第十八篇,本篇主要内容是介绍使用Fluent Bit采集pod日志方案,并总结Fluent Bit常用模块以及使用配置示例。并以自定义日志采集为例,演示如何通过sidecar方式采集、过滤、输出到ES中。

2023-10-09 22:17:17 953 2

原创 ES8生产实践——pod日志采集(Fluentd方案)

Fluentd是一个是一个开源的日志收集和传输工具,旨在解决日志数据的收集、传输和处理问题,它可以收集来自于各种系统或应用的日志,转化为用户指定的格式后,转发到用户所指定的日志存储系统之中。用图来说明问题的话,在没有使用之前Fluentd,日志采集过滤存储流程如下所示:使用Fluentd之后,日志系统如下所示:Fluentd负责从服务器收集日志信息,将数据流交给后续存储服务和查询工具。换句话说,Fluentd不负责生产数据、不负责存储数据,只是数据的搬运工。

2023-09-10 20:27:37 1257 1

原创 ES8生产实践——pod日志采集(Elastic Agent方案)

在先前的自定义日志采集(fleet方式)中已有详细讲解,具体内容可参考文档,此处不再赘述。

2023-09-10 20:26:05 260

原创 ES8生产实践——Fleet部署与常见日志采集(ECK方式)

本篇为ELK Stack生产实践系列专题第十五篇,本篇主要内容是介绍如何在k8s环境中通过eck方式部署fleet server和elastic agent,以及通过配置集成策略完成对Linux、kubernetes、elasticsearch服务的日志与指标的采集与查询展示。

2023-09-04 20:58:18 608

原创 ES8生产实践——k8s部署与维护ELK集群(ECK)

本篇为ELK Stack生产实践系列专题第十四篇,本篇主要内容是介绍ECK并模拟实际使用场景通过ECK快速部署8.9版本的elasticsearch集群和kibana服务。并演示如何进行分片分配感知配置、数据备份恢复、服务配置变更、节点维护、集群重建、集群扩容、版本升级等日常运维操作。

2023-09-04 20:56:43 1738

原创 ES8生产实践——Python操作Elasticsearch

我们除了可以使用kibana页面管理操作ElasticSearch外,elasticsearch还支持通过SDK和RESTful API接口进行操作。通过sdk我们可以非常便捷的将我们的项目与elasticsearch对接,实现数据的增删改查。通过API接口我们可以对elasticsearch集群进行一些例如索引调整、集群故障处理等进阶操作。

2023-08-23 15:34:44 764

原创 ES8生产实践——ELK监控与告警(Prometheus)

kibana虽然也能实现告警,但仅能针对ES集群状态和查询结果配置告警规则,更多常用的告警媒介需要购买商业授权才可使用,且告警程序过度依赖Kibana服务,可能会因为单点故障导致告警无法正常触发。因此在生产环境中更推荐使用免费开源的Prometheus+Grafana方案实现ELK业务的监控与告警。

2023-08-23 15:33:11 1644

原创 ES8生产实践——ELK监控与告警(Kibana)

ELK的监控主要分为两方面,一方面是Filebeat、Logstash、Elasticsearch、Kibana自身的服务性能指标的采用与监控,另一方面是采集业务日志存入ES后,进行日志分析与告警监控。

2023-08-17 23:08:46 2246 1

原创 ES8生产实践——数据查询与数据可视化(Grafana)

ES数据可视化除了使用kibana外,grafana也是常用的数据可视化工具。相较于kibana来说,grafana支持的图表样式等配置项更多,可以根据自己的需求灵活制作出各种复杂的图表,相应的上手难度略高于kibana。使用Grafana的好处是将来如果使用Prometheus监控,可以将业务日志图表与服务性能监控组合展示,可以按不同的dashboard设置权限方便不同组的用户查看与编辑。接下来让我们一起上手使用grafana,实现数据查询与图表制作。

2023-08-17 23:07:27 1855

原创 ES8.8生产实践——数据查询与数据可视化(Kibana)

在前面的案例中,我们顺利的通过各种方式完成了数据的采集过滤与存储,接下来我们通过kibana实现数据的查询与可视化,用图形的方式从各个维度更加直观有效的展示数据内容。

2023-08-17 23:05:35 3000

原创 ES8生产实践——ES索引策略配置与写入优化

数据流是es7.9新推出的功能,它是索引、模板、rollover、ilm 基于时序性数据的综合产物。在es8中,凡是日志(logs)、事件(events)、指标(metrics)和其他持续生成的数据,都强烈推荐创建数据流类型的索引。

2023-08-17 23:02:58 1478

原创 ES8生产实践——Docker部署ELK8.8与日志采集

如果想在本地环境快速部署一套ELK服务,推荐使用docker方式部署。需要注意的是部署单节点es服务仅用于实验测试环境使用,未配置开机自启,所有容器未加–restart=always参数。可根据实际情况添加该参数,生产环境建议使用eck部署和管理es容器集群。

2023-08-08 18:38:38 1141

原创 ES8生产实践——自定义日志采集(Filebeat方式)

在某些存在业务高峰期的场景下,期间可能会产生大量日志,如果继续使用fleet采集日志,使用ingest处理数据,可能会出现写入堆积的情况。此时可采用传统的Filebeat方式采集日志,引入Kafka作为消息缓冲队列,保证日志传输数据的可靠性和稳定性。接下来以日志demo程序为例,实现Filebeat采集——>kafka消息缓冲队列——>logstash解析处理数据——>es存储——>kibana数据可视化分析完整流程的演示。

2023-08-08 18:37:12 328

原创 ES8生产实践——自定义日志采集(Fleet方式)

虽然Fleet为我们内置了大多数常见服务日志的接入配置,但是实际生产中往往会有自定义格式日志的接入需求,此时可以通过Custom Logs代理策略实现日志采集,数据经过ingest/logstash处理后,写入ES中。

2023-08-08 18:34:28 159

原创 ES8生产实践——Fleet部署与常见日志采集

为了更加方便的实现系统和应用程序日志接入ES,官方推出了Elastic Agent应用,Elastic Agent可以实现通过更少的配置和安装来简化数据采集配置,通过Fleet可以轻松的管理整个Elastic Agent队列。Kibana为我们内置了大多数场景下日志的采集与可视化分析配置,我们仅需要在kibanaUI中点击操作便可完成复杂的日志采集。

2023-08-08 18:32:49 1419

原创 ES8生产实践——ES数据备份与恢复

本篇为ELK Stack系列教程第三篇,主要内容是使用ES的快照功能,通过minIO的S3协议,实现了索引数据的备份策略配置,以及数据备份恢复操作相关演示。

2023-07-30 23:02:12 1047

原创 ES8生产实践——ES8.8集群部署

本篇为ELK Stack生产实践系列第二篇,主要内容是通过rpm方式部署7个节点的es8.8集群和kibana服务,详细记录了从开始的系统环境初始化到es集群和kibana服务部署的完整流程,以及部署过程中的注意事项和常见问题处理办法。

2023-07-30 23:00:41 1176

原创 ES8生产实践——集群角色规划

本文章为ELK Stack系列教程第一篇,主要从实际业务角度出发,介绍如何根据日志量合理规划节点规模、集群角色规划。

2023-07-30 22:56:10 158

原创 alertmanager——webhook与API

由接口文档可知,Alertmanager的API接口主要分为以下几类/status:获取Alertmanager实例及其集群的当前状态/receivers:获取所有接收者的列表(通知集成的名称)/silence:新增、删除告警静默规则/alerts:查询、新增告警事件/alerts/groups:获取警报组列表接下来我们选取几个常用的接口演示使用。

2023-07-10 11:22:41 1509

原创 入门ETCD——配合confd实现配置管理

Confd是一个轻量级的配置管理工具。通过查询后端存储,结合配置模板引擎,保持本地配置最新,同时具备定期探测机制,配置变更自动reload。对应的后端存储可以是etcd,redis、zookeeper等。

2023-03-28 22:09:46 933

原创 入门ETCD——常用命令

如果同时传递了 --client-cert-auth=true 且客户端提供了 CN,并且客户端提供了用户名和密码,则将优先考虑基于用户名和密码的身份验证。租约具有生命周期,需要为租约授予一个TTL(time to live),将租约绑定到一个key上,则key的生命周期与租约一致,可续租,可撤销租约,类似于redis为键设置过期时间。如果有保留的数据目录下的文件时,可以通过使用 member update 命令,在保留 etcd 数据的情况下初始化集群数据,重新构建一个新的etcd集群节点。

2023-03-28 22:08:37 3724

原创 入门ETCD——安装部署

如果在测试开发环境,想要测试和使用etcd服务,只需要部署一个单点的 etcd 服务即可。

2023-03-28 22:07:01 4046

原创 入门ETCD——基础简介

etcd官方的定义:分布式系统中最关键数据的分布式、可靠的键值存储。etcd是一个由CoreOS团队开源的,基于Go语言实现的,用于构建高可用的分布式键值(key-value)数据库。

2023-03-28 22:04:33 2453

原创 k8s业务迁移与服务部署实践

本文从k8s运行业务优势,应用迁移到k8s,helm、operator部署服务四个方面,并配合几个经典案例演示向大家介绍传统业务如何迁移到k8s上,以及其中的经验总结与注意事项。

2023-03-11 11:24:40 2554

原创 traefik自动发现-对接consul

traefik除了可以对接kubernetes ingressroute外,也支持其他常用的服务发现中间件,例如consul、etcd、zookeeper等。以consul为例,我们只需要向consul中注册服务,traefik监听到有新的服务注册时,会实时检测服务并自动更新路由规则。

2022-12-28 21:52:34 704

原创 入门注册中心-consul

Consul是HashiCorp公司推出的开源工具,Consul由Go语言开发,部署起来非常容易,只需要极少的可执行程序和配置文件,具有绿色、轻量级的特点。Consul是分布式的、高可用的、 可横向扩展的用于实现分布式系统的服务发现与配置。

2022-12-28 21:48:32 2831

原创 traefik hub

在traefik2.7后,推出了Traefik Hub云原生网络平台,可帮助你即时在边缘发布、保护和扩展容器。它提供了从用户到容器的端到端连接以及进入每个服务的网关。它是用于在分布式系统中连接多个集群的统一解决方案,它通过一个简单易用的仪表板整合了网络堆栈的多个层。Traefik Hub 是一种开箱即用的解决方案,易于学习,甚至更易于实施,开发团队只需单击一下即可将应用程序发布到 Internet,并自动配置重要的安全实践。

2022-12-28 21:44:58 168

原创 Django新特性汇总

随着Django的不断发展,现在已经到了4.1版本。但是网上的资料大多数都是2.X版本的资料,很少涉及到新特性的使用案例,那么django的这些新特性,大家都在项目中使用到了吗?

2022-12-28 21:00:10 1180

原创 traefik插件

在traefik2.3版本上线了插件支持功能,Traefik 虽然已经内置了很多中间件,可以满足我们大部分的日常需求,但是在实际工作中,用户仍然还是有自定义中间件的需求,为解决这个问题,推出了traefik插件功能,他允许开发人员向traefik添加更多的新功能。在traefik2.3-2.7版本期间,插件的管理使用是通过Traefik Pilot,它可以集中管理在任何环境中运行的所有 Traefik 实例。

2022-11-08 23:01:30 1752

原创 traefik灰度发布、流量复制、会话保持

traefik的路由规则就可以实现4层和7层的基本负载均衡操作,使用//资源即可。但是如果想要实现加权轮询、流量复制等高级操作,traefik抽象出了一个资源。此时整体流量走向为:外部流量先通过entryPoints端口进入traefik,然后由//匹配后进入,在这一层实现加权轮循和流量复制,最后将请求转发至kubernetes的service。除此之外traefik还支持7层的粘性会话、健康检查、传递请求头、响应转发、故障转移等操作。

2022-11-08 22:57:46 1579

原创 traefik中间件

Traefik Middlewares 是一个处于路由和后端服务之前的中间件,在外部流量进入 Traefik,且路由规则匹配成功后,将流量发送到对应的后端服务前,先将其发给中间件进行一系列处理(类似于过滤器链 Filter,进行一系列处理),例如,添加 Header 头信息、鉴权、流量转发、处理访问路径前缀、IP 白名单等等,经过一个或者多个中间件处理完成后,再发送给后端服务,这个就是中间件的作用。

2022-11-08 22:50:19 1347

原创 入门traefik系列——路由配置与使用

本篇主要讲解路由规则的配置与使用,包含HTTP域名路由、HTTPS域名路由(自有证书、自动续签证书)、TCP路由(TLS证书)、UDP路由以及多个k8s server路由配置

2022-09-30 10:17:29 4386

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除