自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 资源 (4)
  • 收藏
  • 关注

原创 centos 7 kafka2.6单机安装及动态认证SASL SCRAM配置

producer 用于生产消息,consumer 用于消费消息,producer和consumer用于测试使用,生产中使用可根据业务需要创建对应用户,这里仅用于演示。创建用户之后,需要为每个 Broker 创建一个对应的 JAAS 文件。配置 SASL/SCRAM 的第一步,是创建能连接 Kafka 集群的用户,创建用户admin ,用于实现 Broker 间通信。broker启动命令添加 jaas conf配置,用于通信认证。配置消费者启动脚本添加JAAS文件配置。配置生产者启动脚本添加JAAS文件。

2023-10-31 10:57:49 1536

原创 可视化bi工具datart部署到k8s

datart 是新一代数据可视化开放平台,支持各类企业数据可视化场景需求,如创建和使用报表、仪表板和大屏,进行可视化数据分析,构建可视化数据应用等。部署 | datart (running-elephant.github.io)官方有源码安装和docker部署两种方式,这里通过k8s进行部署,需要准备mysql(外置环境),pvc存储(这里用nfs)

2023-07-21 10:37:17 1507

原创 使用python sdk添加删除阿里云pvc路由

由于线路供应商sdwan存在单点问题,需要实现线路高可用解决方案,需要设计自动切换阿里云vpc路由解决方案。通过阿里云文档了解,可通过阿里云专有网络Python SDK,通过sdk实现创建、删除、查询等vpc网络相关操作(创建/删除路由表、创建/删除自定义路由等)。环境准备Python 2.7及3.x环境(这里使用python3.9.6)安装Alibaba Cloud SDK for Python。

2023-06-30 16:12:10 759

原创 关于java k8s容器环境中的jvm配置与优化

环境版本备注k8sv1.22+配置cpu/mem limit、健康/就绪检查openjdk8k8s容器化(docker)环境更好的解决了 java app 运行环境的封装问题。但存在着一些限制,比如 Java 并不能发现 pod 设置的内存限制(mem limit,java 默认以宿主机的内存为基准),当 java 内存占用超出 pod mem limit限制时,很容易导致OOM,导致pod重启(健康检查不通过),使服务无法正常对外提供服务等。# 异常查看方法# 可以查看系统日志。

2023-05-30 17:30:07 5263

原创 网络高可用方案

网络高可用,是指对于网络的核心部分或设备在设计上考虑冗余和备份,减少单点故障对整个网络的影响。其设计应充分考虑到核心设备、网关设备的电源/引擎/链路等方面的冗余。可从以下方面进行设计(1) 出口上连设备使用两/多台设备互为备份(HA/虚拟化),任何一台出现故障流量均会瞬间切换(2) 核心层采用冗余设备的组网方案(堆叠/VSU虚拟化等)(3) 接入层设备可采用lacp等技术,提高链路的带宽和稳定性。

2023-02-20 10:24:08 1635

原创 prometheus高可用之thanos

当前prometheus存在需求长期数据存储: >= 1个月的数据存储,存储空间大多 prometheus server :公有云/私有云/国内/国外多Grafan:多数据源解决思路联邦:优点是可从prometheus抓取指标,缺点是抓取多个指标时会存在问题prometheus remotewrite:用于可写远程存储配置。

2023-02-08 16:36:32 1873

原创 k8s 微服务spring boot JVM 监控

使用SpringBoot自带监控功能Actuator,可以帮助实现对程序内部运行情况监控,比如监控状况、Bean加载情况、环境变量、日志信息、线程信息、健康检查、审计、统计和HTTP追踪等。服务增加spring-boot-starter-actuator依赖 -> 启用 prometheus和health监控 -> 配置 prometheus 监控 -> 添加grafana dashboard。targets正常后,可以查询Jvm相关监控指标,如jvm_memory_used_bytes。

2023-01-11 12:01:47 3744 1

原创 k8s 部署canal admin及server单机服务

主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费。部署清单部署步骤a. 初始化数据库及创建用户b. 编写 K8s yaml文件 mysql执行以下sql脚本,创建库 'canal_manager' 用来存放canal-admin的数据,server、instance配置等数据2.2 canal-admin k8s yaml部署文件创建部署 deployment.yaml,资源清单包含:service,deployment,configmap,ingress。使用官方c

2023-01-04 11:25:43 2293 2

原创 k8s & docker空间使用分析与清理

使用 Docker 运行业务一段时间后,可能会出现宿主节点的磁盘容量占用高,导致宿主机磁盘空间不足等异常,对业务造成影响。本文对 Docker 的空间占用进行汇总分析,以及对应的清理操作进行说明,希望能帮到大家~在日常使用中,安装docker后做好优化配置工作,如配置json log大小及文件限制,定期清理无用的容器和镜像,可以减少docker 空间占用导致宿主机磁盘空间不够导致的各种问题。当遇到以上措施无法处理的情况的时候,要灵活使用docker system df -v的命令进行故障排查分析。

2022-12-27 17:25:04 3329 9

原创 通过sls采集k8s集群上的服务日志

sls采集K8S集群的日志,通过安装logtail dameonset,结合sls 控制台方式采集容器文本日志、控制台日志,通过Kubernetes Namespace名称、Pod名称、容器名称指定待采集的容器。其中logstore "config-operation-log" 是自动创建的,采集的是logtail controler的操作日志,这里可以看到已可以正常采集k8s集群中的日志了。日志服务SLS是阿里云提供云原生观测与分析平台,供数据采集、加工、查询与分析、可视化、告警、消费与投递等功能。

2022-11-22 17:06:00 2561

原创 xxl-job-admin 运行在K8S环境

docker镜像有两种获取方式,一种是手动打包(maven)源码生成Jar包,再通过docker build生成镜像(基础镜像openjdk1.8),另一种是使用官方镜像:xuxueli/xxl-job-admin:2.3.0,出于方便,这里直接使用官方提供的镜像。上面已经部署了域名,所以直接访问域名:xxl-job-admin.test.cn/xxl-job-admin/,默认帐号密码:admin/123456。XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。

2022-11-04 10:35:23 1087

原创 玩转rancher 2.6之 monitor监控

参考RancherLabs 文章:( Rancher2.6全新Monitoring快速入门_RancherLabs的博客-优快云博客对rancher monitor使用过程中的配置讲解补充,补充了alertmanger发送钉钉告警的实现过程,通过安装dingtalk插件完成钉钉机器人告警推送,详细如下。

2022-10-28 15:19:36 3008 6

原创 玩转阿里云之ack 部署高可靠ingress Controller

部署高可靠性ingress controller,使用多副本部署的方式解决单点故障问题,同时,采用一个Ingress服务独占一个Ingress节点的方式,由多个独占Ingress实例组成统一接入层来承载集群入口流量,同时可依据后端业务流量水平扩缩容Ingress节点,避免业务应用与Ingress服务发生资源抢占。架构如下创建ingress专用节点池部署ingress controler配置ingress controler到指定节点池。

2022-10-24 15:15:31 1836

原创 玩转aws之(二)eks 设置efs(nfs)存储卷pvc

efs csi驱动和efs创建、安全组配置须根据步骤一一进行,否则pod挂载pvc使用时,有可能出现问题,如:Stale file handlers for EFS ,根据eks节点所在子网添加挂载目标,节点是多可用区,则每个可用区的子网都将运行一次命令,将 subnet-EXAMPLEe2ba886490 替换为相应的子网 ID。创建一条入站规则,该入站规则允许来自您的集群 VPC 的 CIDR 的入站 NFS 流量。检索您的集群的 VPC 的 CIDR 范围,并将其存储在变量中,以便在后续步骤中使用。

2022-10-20 14:24:35 2415

原创 单机部署RocketMQ 4.9.4和dashboard

RocketMQ,阿里巴巴开源高性能分布式消息中间件,部署模型如下生产者 Producer发布消息的角色。Producer通过 MQ 的负载均衡模块选择相应的 Broker 集群队列进行消息投递,投递的过程支持快速失败和重试。消费者 Consumer消息消费的角色。支持以推(push),拉(pull)两种模式对消息进行消费。同时也支持集群方式和广播方式的消费。提供实时消息订阅机制,可以满足大多数用户的需求。名字服务器 NameServer。

2022-10-18 11:10:16 1949

原创 玩转prometheus告警 alertmanger(三)之alertmanger定时静默

由于一些历史原因,存在一些特定场景,如凌晨3点至7点数据库同步时,会存在同步失败的告警,需要屏蔽此段时间的同步失败告警。alertmange可以通过静默(Sliences)实现告警屏蔽,但只能选择一段时间,无法实现重复在每天的指定时间段静默告警,那么,如何实现这个功能?

2022-10-11 11:41:36 1871

原创 流量治理Sentinel dashboard K8S部署

Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。核心库(Java 客户端):不依赖任何框架/库,能够运行于 Java 8 及以上的版本的运行时环境,同时对Dubbo /Spring Cloud 等框架也有较好的支持。控制台(Dashboard):主要负责管理推送规则、监控、管理机器信息等。

2022-10-01 01:00:00 1181

原创 使用外部mongodb 及 k8s 部署 yapi

内网部署GitHub - YMFE/yapi: YApi 是一个可本地部署的、打通前后端及QA的、可视化的接口管理平台安装mongodb(这里用的是云mongodb,过程略),创建yapi库,用户yapi创建dockerfile,手动编译yapi镜像创建pvc,用于存放yapi数据文件创建deployment、svc、ingress、configmap部署及初始化初始化完成正常使用。

2022-09-28 11:21:38 1616

原创 玩转aws之(一)eks集群部署

aws官方用户指南中关于创建EKS集群部分,看了几次才理解了整个创建过程,这里总结了创建集群的过程和步骤,可以通过eksctl、管理控制台和aws cli创建集群,这里通过管理控制台进行创建EKS创建后默认没有worker节点、附加组件只有vpc cni、coredns、kubeproxy,因此需要自己添加worker节点和其它自定义组件,如ingress controll创建步骤创建集群角色创建EKS集群添加node配置kubectl安装ingress/alb(可选)

2022-09-23 09:35:18 3673

原创 玩转Zadig之(一)helm生产环境部署

Zadig 是 KodeRover 公司基于 Kubernetes 自主设计、研发的开源分布式持续交付 (Continuous Delivery) 产品,具备灵活易用的高并发工作流、面向开发者的云原生环境、高效协同的测试管理、强大免运维的模板库、客观精确的效能洞察以及云原生 IDE 插件等重要特性,为工程师提供统一的协作平面。Zadig 内置了 K8s YAML、Helm Chart、主机等复杂场景最佳实践,适用大规模微服务、高频高质量交付等场景总结就是开源的分布工持续交付产品。

2022-09-20 11:35:15 1271

原创 mysql学习笔记之join联合多表查询

前面通过玩转prometheus系列,接入生产环境中的监控告警后,遇到一个需求,将alertmanager告警数据入mysql后,要提取汇总同个表中中告警较多的告警类型和主机,表结构如下alertid 同一个id对应多个Label和value需求:查询同一个alertid下Label="instance"和Label="alertname"的value值,表示统计告警类型对应的实例主机。

2022-09-13 17:33:12 568

原创 玩转prometheus告警 alertmanger(三)之alertmanger告警持久化

由于alertmanager告警的记录不支持持久化记录,发送的告警信息不会存储在数据库中,prometheus将所有数据存储为时间序列,却不会将alertmanager发送的告警信息做为一条记录存储下来,因此,如何对alertmanager发送的告警信息进行持久化,并存储到数据库(mysql、pg)中?

2022-09-10 17:12:58 2918 1

原创 浅析openvn redirect-gateway组建公司专网的使用

OpenVN 基于 OpenSSL 库的应用层 实现,它的优点是简单易用。它并不是一个web应用代理,而是3层网络隧道解决方案,默认是使用UDP协议,支持TCP协议的隧道模式,使用时需要安装服务端和客户端。那么,openvn能做什么?实施虚拟专用网技术,实现远程设施中创建安全的点对点连接,通俗的讲就是虚拟专网,打通远程分支之间的网络互通实现代理上网的作用总结来说,就是可以实现两个分支网络之间的网络联通,用来组建公司-分支的虚拟专网,实现内网资源的访问。

2022-09-05 10:39:27 2360 1

原创 K8S免密拉取私有仓库容器镜像

K8S从私有仓库拉取镜像有多种方式,其中用云托管的K8S,可以使用云厂商的扩展实现免密拉取,如果是自建K8S集群,则建议节点配置私有仓库身份认证或在Pod中设置ImagePullSecrets的方式。创建私有仓库secret,即可以通过命令行直接创建secret的方式,也可以通过文件(config.json)创建的方式,两者实现的功能一样,区别在于命令行创建只支持单个私有仓库使用,而 .docker/config.json文件创建的方式支持多个私有仓库,如有多个私有仓库,建议文件创建的方式使用。

2022-08-24 14:57:46 3116

原创 服务端TCP连接time_wait状态浅解

在日常运维工作中,有一种场景比较常见,就是用nginx做为反向代理服务器对外提供服务,在高并发的场景中,最容易出现批量的 TIME_WAIT,从而导致服务不可用,下面,围绕这个场景展开话题。

2022-08-17 10:40:19 2096

原创 prometheus服务自动发现之aws ec2

由于公司海外用的是aws,在建设prometheus监控告警系统的时候,想通过prometheus 的配置实现自动发现ec2实例,在网上搜了一圈,实在没找到比较通俗易懂带实例的文章,所以打算自己写一个,希望能帮到有需要的人。...

2022-08-15 17:58:39 1178 2

原创 prometheus服务自动发现之阿里云ecs

当prometheus对各类exporter(如node_exporter、mysql_exporter等)进行监控指标采集时,可可以通过手动配置 static_configs,一个一个实例进行添加配置(不适于大规模主机等环境,太累了),也可以通过prometheus的自动发现(sd_config),如consul、eureka、zookeeper、kubernetes、aws等方式实现动态发现服务。为什么要用自动发现的功能呢?......

2022-08-12 11:26:48 1195

原创 prometheus relabel_config 详解之保留__meta等内部标签

常见的场景使用中,如prometheus采集node_exporter的数据,在Targets中,可以看到 “job="xxxx"”等标签,以及以__meta开头的元组标签,有些标签可能需要重写标签,有些需要保留,如__meta是prometheus系统内部使用,无法被promql查询时使用的,这个时候就需要对__meta的标签进行重写保留。以双下划线__开头的标签属于特殊的标签,如__meta_开头的标签,它们在重新标记后会被删除。复制保留regex匹配source_label的值,并生成一个新标签。..

2022-08-09 18:33:05 1040

原创 玩转prometheus告警 alertmanger(二)之alertmanger 邮件 钉钉告警

玩转prometheus告警 alertmanger(一)之prometheus告警规则_lv2的博客-优快云博客官方文档altermanager告警部分,主要负责管理接收prometheus推送过来的告警,通过分组、静默、抑制、聚合等处理,将告警通过路由发送到对应的接收器上,按不同的规则发送给不同的模块负责人,支持邮件、salck及webhook(对接企业微信/钉钉/飞书)方式发送告警通知。......

2022-08-04 17:41:34 3118

原创 玩转prometheus告警 alertmanger(一)之prometheus告警规则

在开始之前,需要了解下prometheus和altermanger之间的关系是什么?从prometheus的架构及生态系统组件来看Prometheus从targets中抓取指标(metric)并存储,通过对指标进行分析生成告警(alert),并将告警(alert)推送(push)到Alertmanger,Alertmanger对告警进行分组、聚合等处理后,通过邮件、Slack、webhook等方式对用户进行发送告警信息。.........

2022-08-04 15:52:28 8773 4

原创 mysql慢日志分析pt-query-digest

在实际生产中,比较喜欢使用直接分析慢日志按天进行分析,并输出到txt文本的方式,pt-query-digest只是一个分析统计的工具,可以根据输出的慢SQL语句进行合理的调整,如查询慢则增加索引,DML操作改成DDL以提高响应速度等,具体还需要多思考、实践。.........

2022-07-29 18:10:19 1297

原创 使用kubectl获取pod日志小技巧

如何查看k8s中pod的console控制台日志?即类似于dockerlogs查看容器日志一样;可以使用kubectl命令,查看K8S中Pod的日志。在这里,将通过kubectl获取Pod的日志,包括当前运行、同一deployment下所有副本的日志。......

2022-07-26 10:26:14 11577 2

原创 grafana 查询语法与创建Dashbord

Grafana支持时序数据(数据源)的许多不同的存储后端,如prometheus、Alertmanager、Elasticsearch、mysql等,每个数据源都有一个特定的查询编辑器,每个数据源的查询语言也不同,单个Dashboard可以存在多个数据源,每个面板可以绑定特定数据源。grafana每个版本的查询语句、变量引用等均有差异,注意确认各个版本是否适用。熟悉对应数据源查询语法熟悉各项指标数值(如promtheusmetric、mysql表结构)CPU整体利用说明OKBetter。...

2022-07-25 17:05:37 6397

原创 SQL审核 Archery 部署配置及钉钉通知

审批流程工单类型有SQL上线申请、查询权限申请、数据归档申请,不同审批类型和资源组可以配置不同的审批流程,审批流程配置的是权限组,如工作流开发发起SQL上线申请->PM审核->DBA执行上线。创建测试群->添加机器人->群设置->智能群助手->添加机器人->自定义。添加资源组,如需要开启钉钉、微信及飞书通知,需要在资源组里配置对应的webhook。系统管理->配置项管理->系统设置->通知配置。SQL审核->SQL上线->提交SQL。...

2022-07-21 09:16:20 1759 1

原创 阿里云sls日志系统接入

阿里云SLS日志服务,一站式提供数据采集、加工、查询与分析、可视化、告警、消费与投递等功能,数据采集使用logtail服务的方式进行采集,支持包括单行、多行、正则及json等50多种录入方式。sls日志服务使用流程:规划项目(project)-> 配置logstore(存储数据的地方)->安装logtail,配置机器组(机器组就是要采集数据的主机IP集合)->配置采集规则(logtail配置)-> 采集数据 -> 日志查询/分析术语说明项目(Project)资源管理单元,是进行多用户隔离与访问控制的主要边界

2022-07-14 12:07:08 10005

原创 pod详解(二)Pod生命周期小解

在讲pod的配置前,先粗略概括下,其中包括pod的生命周期、镜像策略、网络模式、节点选择、节点亲和/反亲和、Pod亲和/反亲和、存储等等,涉及内容较多,需要各自慢慢理解及应用到实际中。此章节主要介绍pod生命周期相关 Pod 生命周期是指从创建到结束的这一段时间,其中包含 阶段;如果至少 其中有一个主要容器正常启动,则进入 Pod 中容器以 失败状态结束而进入 阶段;Pod 中容器以 成功状态结束而进入 阶段。生命周期中的几种状态解读:以上几种情况,主要关注的是Pending和Failed的状态

2022-06-26 20:18:48 1333

原创 pod详解(一)什么是Pod?

Pod是Kubernetes中最小的计算单元,由一个或多个容器组成;这些容器共享存储、网络等资源,可以理解成同一主机上运行多个应用。如何创建/运行pod可以通过kubectl run创建,也可以通过kubectl apply yaml文件创建pod在实际的环境应用中,很少在 Kubernetes 中单独创建一个个的 Pod,因为 Pod 被设计成了相对临时性的、用后即抛的一次性实体。 只由当 Pod 由控制器 创建时,它才会被调度在集群中的节点上运行,直到 Pod 结束执行、Pod 对象被删除、Pod

2022-06-14 09:43:47 3764

原创 jenkins流水线之pipeline入门

目录pipeline学习脑图一、pipeline基本介绍1、pipeline是什么2、语法类型二、语法说明三、pipeline实际应用jenkins2.x开始流行pipeline(groovy语言编写)的写法,目的是通过以代码的方式来进行job的构建,减少人工操作导致的人为出错。它是用于描述整条流水线是如何进行,流水线的内容一般包括执行编译、打包、测试、部署及告警通知等步骤。pipeline有两种语法类型,分别是声明式pipeline和脚本式2.1 声明式pipeline字段说明agent : any

2022-06-07 17:32:55 4915 1

原创 节点污点 Taint 和容忍度 Toleration在生产中的使用

一、前言在生产环境使用中,有时会遇到一些使用场景需求,当集群中存在多种节点类型的情况,如master节点、ssd硬盘类型的node节点,或者是高计算性能的node节点,这个时候,只想某些节点上只运行指定类型的pod,不想让其它pod调度到这些节点上,则可以使用节点污点(Taint)的方式,配合容忍度(Toleration),实现指定节点只运行特定类型的pod服务。节点污点(Taint)则相反——它使节点能够排斥一类特定的 Pod。容忍度(Toleration)是应用于 Pod 上的,允许(但并不要求)Pod

2022-06-06 08:30:00 892

原创 Devops之实战部署gitlab ci持续构建

GitLab CI 是GitLab内置的进行持续集成的工具,在代码仓库对应分支根目录下创建.gitlab-ci.yml 文件,并配置GitLab Runner后;可配置自动触发操作,即每次push代码的时候,gitlab将自动识别到.gitlab-ci.yml文件,使用Gitlab Runner执行该脚本完成ci过程,也可手动运行(生产环境下建议手动执行)用来执行.gitlab-ci.yml 脚本的工具,需要在GitLab-CI里面注册,根据不同项目服务运行指定类型的gitlab runner gitla

2022-06-02 15:50:54 582

mysql连接管理工具

mysql连接管理工具

2022-07-29

smokeping2.6.9

网络监控工具

2017-05-05

java学习笔记

面向对象主要针对面向过程。 面向过程的基本单元是函数。 什么是对象:EVERYTHING IS OBJECT(万物皆对象) 所有的事物都有两个方面: 有什么(属性):用来描述对象。 能够做什么(方法):告诉外界对象有那些功能。 后者以前者为基础。 大的对象的属性也可以是一个对象。

2012-03-06

简单的web文件服务器

软件旨在快速架设WEB文件服务。使用本软件无须安装IIS 组件,也无须花生壳服务,只要将要发布的文件或文件夹拖入列表 框并设置好端口,然后将获取的外网IP告知好友,就可以进行WEB 文件共享,简单快速地将自家电脑架设成一台文件服务器。绿色软件

2011-03-24

空空如也

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

TA关注的人

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