文章
记下做项目时遇到的问题和改过的地方。

我怎么把「野记」的收件箱做成 3D
从一个暂存链接的页面,到一盒可以转动的纸卡。记下模型、材质和手机交互上的几个取舍。
docker部署使用MySQL
一、创建容器 1. 先拉取需要的版本的mysql的镜像: docker pull mysql 2. run镜像,并把数据映射到本机 docker run p 3306:3306 name mysql v $PWD/conf:/etc/mys
前后端分离项目OAuth登录总结
AUTH = {
DRF递归序列化器与VUE递归组件
urlpatterns += router.urls
ES性能压测工具esrally
压测,即压力测试,是指对计算机系统、软件应用或网络服务等进行负载测试,以模拟实际使用场景中的高负载情况,检验系统在压力下的性能、稳定性和可靠性。压测旨在确定系统在正常或极端负载下的性能极限,以便在生产环境中提供最佳的性能和可靠性。
alertmanager——webhook与API
prometheus整个监控系统中,prometheus只负责将数据采集和生成告警信息,而告警信息的处理是由Alertmanager负责处理。
prometheus进程监控
# TYPE namedprocess_namegroup_thread_minor_page_faults_total counter
pod日志采集(ELK方案)
面对大规模集群海量日志采集需求时,filebeat相较于fluent bit拥有更高的性能,因此可以通过daemonset方式在每个k8s节点运行一个filebeat日志采集容器,用于采集业务容器产生的日志并暂存到kafka消息队列中。借助Kafka的Consumer Group技术部署多个logstash副本,由logstash集群逐个消费并写入ES,防止瞬间高峰导致直接写入ES失败,提升数据处理能力和高可用性。
prometheus自动发现之kubernetes_sd_configs
一、服务发现概述 1. 为什么要使用服务发现 通常我们的Kubernetes 集群中会有很多的 Service 和 Pod等资源,这些资源可以随着需求规模的变化而变化,而这些pod的ip,名称也并非一成不变的。那么当k8s资源创建或更新时,
python定时任务框架APScheduler详解
# 导入调度器,此处使用BlockingScheduler阻塞调度器
k8s日志采集与监控方案介绍
在 Kubernetes 集群中,需要全面了解各个 pod 应用运行状态、故障排查和性能分析。但由于 Pod 是动态创建和销毁的,其日志分散且存储不持久,因此需要通过集中式日志采集方案,将日志收集到统一的平台并配置日志可视化分析和监控告警,以实现日志的可追溯性、实时监控和高效分析,从而提升运维效率和系统可靠性。
k8s Traefik简介与部署
[root@k8s-1 ~]# helm repo add traefik https://helm.traefik.io/traefik
kubernetes yaml模板与示例
apiVersion: v1
Docker部署ELK8.11与日志采集
由于容器每次重启后ip会发生变化,使得ssl证书主机IP地址不一致,导致其它服务连接es异常。因此需要自定义网络,并固定es的ip地址。
Fleet集群部署与常见日志采集
Fleet Server可以由多台机器组成Fleet server cluster,用于集中管理 Elastic Agent。 它作为 Elastic Agent 的一部分在用作服务器的主机上启动。 一个 Fleet Server 进程可以支持多个 Elastic Agent 连接,并作为一个控制面来更新代理策略、收集状态信息和协调 Elastic Agent 的操作。fleet server节点建议部署在es集群之外的机器上,生产环境建议2台及以上组成集群,通过负载均衡方式管理与下发agent策略。
elasticsearch查询之URI Search查询总结
GET /query_test/_search?q=hobby:sleep
ETCD——安装部署
如果在测试开发环境,想要测试和使用etcd服务,只需要部署一个单点的 etcd 服务即可。
grafana告警与webhook配置
一、什么是webhook 1. webhook简介 用过Jenkins自动化构建项目的流程都知道,当git push之后,git的webhook机制便会发出请求,向Jenkins服务器通知开始执行构建流程。 Webhooks可以理解为满足特
VIM编辑器使用总结
一、Vim简介 Vim是一个功能强大的全屏幕文本编辑器,是Linux/UNlX上最常用的文本编辑器,它的作用是建立、编辑、显示文本文件。 Vim没有菜单,只有命令。 最小安装没有vim编辑器,执行yum y install vim安装 二、
Django新特性汇总
在Python3.4开始提供了对异步的支持,在Django 3.1支持使用异步视图和异步中间件,在Django4.1中支持使用异步ORM查询。接下来带大家从创建项目开始,体验如何在Django项目中使用异步。
win-docker
https://docs.docker.com/desktop/setup/install/windows-install/
前后端分离项目SEO优化实践
SITE_ID = 1
基于OpenTelemetry+Grafana可观测性实践
OpenTelemetry +Prometheus+ Loki + Tempo + Grafana 是一套现代化、云原生的可观测性解决方案组合,涵盖 **Trace(链路追踪)**、**Log(日志)**、**Metrics(指标)** 三大核心维度,为微服务架构中的应用提供统一的可观测性平台。
Prometheus告警带图完美解决方案
通常我们收到 Prometheus 告警事件通知后,往往都需要登录 Alertmanager 页面查看当前激活的告警,如果需要分析告警历史数据信息,还需要登录 Prometheus 页面的在 Alerts 中查询告警 promQL 表达式,然后复制到 Graph 中查询数据。
Kibana对接Azure AD实现单点登录
单点登录(Single Sign-On,SSO)是一种身份验证和访问控制机制,允许用户使用一组凭据(通常是用户名和密码)仅需登录一次,即可访问多个应用程序或系统,而无需在每个应用程序中单独设置账号密码并进行身份验证。
DRF序列化器学习总结
class UserInfoSerializer(serializers.Serializer):
基于gitlab+k8s实现CI/CD
利用Container、Gitlab、Gitlab Runner(k8s)、SonarQube、Harbor、Jmeter、Maven、Java技术,搭建一个完整的 CI/CD 管道,实现当开发人员完成代码提交后,开始流水线工作,完成编译打包、单元测试、源码扫描、上传制品、部署服务到Docker容器、自动化测试工作。通过自动化构建、测试、代码质量检查和容器化部署,将开发人员从繁琐的手动操作中解放出来,提高团队的开发效率、软件质量和安全性,实现持续更新迭代和持续部署交付。
日志清洗过滤(vector方案)
以下描述摘自官方文档:[https://vector.dev/docs/about/what-is-vector/](https://vector.dev/docs/about/what-is-vector/)
项目迁移至vite2+vue3.2问题总结
……
vue3.2 ref模板引用
虽然vuejs的极大程度的减少了对dom的操作,定义了prop 和事件,但有时你可能仍然需要直接访问 JavaScript 中的子组件。此时可使用ref为子组件或 HTML 元素指定引用 ID。接下来通过几个简单的示例,演示如果使用vue3
基于jenkins+k8s实现CI/CD
持续集成是一种软件开发实践,通过自动化工具对代码进行编译、测试和打包,减少人工干预,提高构建效率。它的核心理念是将代码频繁地集成到共享存储库中,并通过自动化构建和测试流程来验证代码的正确性。这样做可以为开发人员提供即时的反馈,帮助他们快速定位并修复问题,从而加速软件开发周期并提高软件质量。
vite2+vue3+script setup创建项目
include /usr/share/nginx/modules/*.conf;
使用coding拉取外网镜像与资源
bogon:docker_images cuiliang$ docker login -u 1554382111@qq.com cuiliang0302-docker.pkg.coding.net
flex弹性布局总结
一、布局原理 1. flex是flexible Box的缩写,用来为盒状模型提供最大的灵活性,任何一个容器都可以指定为flex布局。 1. 当为父盒子设置为flex布局以后,子元素的float、clear和vertical align属性将
python读取csv处理生成excel
原始文件是多个csv表格,第一列为时间戳,每10分钟统计生成一行,其余列为ip地址在该时间段内的访问次数
k8s部署与维护ELK集群(ECK)
要理解ECK,首先需要了解CRD、Controller、Operator这三个基础概念。
python爬虫自动更换必应壁纸
```python
Vue项目上线前优化总结
一、Nprogress页面加载效果 1. 简介 功能:当页面切换时,可以添加顶部加载效果,提升用户体验 仓库地址: https://github.com/rstacruz/nprogress https://github.com/rstac
Python操作Elasticsearch
使用pip安装Elasticsearch的Python 客户端,pip包版本要与ES版本保持一致。
使用阿里云SDK监控主机状态
最近在开发博客网站后台时,想添加主机性能查看功能,以便登录网站后台管理即可随查看服务器的CPU、内存、系统负载、磁盘使用率的情况,解决思路主要有两种:
Vue+NodeJS前后端分离项目Docker部署
```
k8s集群状态与日志查看
kubectl get node "$NODE" >/dev/null || exit 1
ECE认证考试经验分享
ECE考试介绍 考试认证相关FAQ 1. elastic认证类型有哪些 弹性认证工程师考试(ECE):这个证书是针对开发及实操而设的。该证书是为能够安装和管理 Elasticsearch 集群以及开发用于搜索和分析其索引数据的解决方案的全能
数据查询与数据可视化(Kibana)
数据查询是kibana最基础且常用的功能,我们可以很便捷的筛选出指定条件的数据内容。
ETCD——confd配置管理
Confd是一个轻量级的配置管理工具。通过查询后端存储,结合配置模板引擎,保持本地配置最新,同时具备定期探测机制,配置变更自动reload。对应的后端存储可以是etcd,redis、zookeeper等。
ETCD——基础简介
etcd官方的定义:分布式系统中最关键数据的分布式、可靠的键值存储。
入门服务注册中心——consul
随着微服务理论发展的成熟,越来越多互联网公司采用微服务架构来支持业务发展。各个微服务之间都需要通过注册中心来实现自动化的注册和发现。
DRF模型序列化器常见需求场景总结
class Sex(models.TextChoices):
linux运维工程师面试题总结
1. 系统启动流程
Django第三方账号登录(QQ、微博、github)
OAuth的英文全称是Open Authorization,它是一种开放授权协议。OAuth目前共有2个版本,2007年12月的1.0版(之后有一个修正版1.0a)和2010年4月的2.0版,1.0版本存在严重安全漏洞,而2.0版解决了该问题。
Alertmanager——配置详解
一、配置概述 1. 配置简介 Alertmanager主要负责对Prometheus产生的告警进行统一处理,在Alertmanager配置中一般会包含以下几个主要部分: 全局配置(global):用于定义一些全局的公共参数,如全局的SMTP
vue3 markdown与锚点的完美交互
markdown与锚点的交互使用是现在博客网站的标配。例如CSDN、简书、掘金,都有类似的功能。最近在开发博客网站时也遇到了同样的需求。本文详细总结了markdown与锚点交互相关的问题解决方法,如果你的博客网站也有类似的需求,希望这篇文章
ES集群与角色规划
ES8自2020年2月发布至今已有一年多时间,相较于es7而言,最大的改变是彻底删除_type,并默认开启三层安全配置,进一步提高了集群安全性,同时kibana的实用性也进一步提升,大部分日常操作都可以通过web界面完成。本系列教程使用最新的es8.8版本,从运维角度出发,以构建日志平台为目的,以尽可能贴近实际生产的场景案例,优先使用简易的部署方式和kibana图形化界面操作。由浅入深,带领大家逐步上手和掌握ELK技术栈。更多ELK相关内容欢迎访问官方文档或本人博客笔记:[https://www.cuiliangblog.cn/catalog/10898409](https://www.cuiliangblog.cn/catalog/10898409)
数据查询与数据可视化(Grafana)
为方便演示,此处使用docker命令快速部署grafana服务。
前后端分离项目实现SSE
在日常web开发中经常会遇到查看数据最新状态的业务场景,例如查看任务状态与日志内容等。比较场景的解决方案是轮循和SSE。
Django使用百度统计进行流量分析
BAIDU_USERNAME = '*****'
VUE3封装axios网络请求示例
在vue项目中,与API接口交互时,通常使用的是axios库,它是基于promise的http库,可运行在浏览器端和node.js中。他有很多优秀的特性,例如拦截请求和响应、取消请求、转换json、客户端防御cSRF等功能 当项目中API接
ELK监控与告警(Kibana)
Kibana监控Filebeat主要有以下两种方式:
自定义日志采集(Fleet方式)
代码仓库地址:[https://gitee.com/cuiliang0302/log_demo](https://gitee.com/cuiliang0302/log_demo)
高级运维工程师面试题汇总
面试岗位:运维工程师(容器与ES方向)、运维开发工程师、SRE工程师
中级运维工程师面试题汇总(含答案)
①PV - 物理卷:物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘,也可以是raid设备。
DRF视图总结
@api_view(['GET', 'POST'])
详解用户图片上传流程
QINIU_AK = 'XXXXXXXXXXXXX'
Django项目使用CDN加速
CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。
Alertmanager——基础入门
一、prometheus告警介绍 1. 组件介绍 prometheus整个监控系统中,prometheus只负责将数据采集和生成告警信息,而告警信息的处理是由Alertmanager负责处理。 在Prometheus中定义好告警规则后,Pr
pod日志采集(Fluentd方案)
Fluentd是一个是一个开源的日志收集和传输工具,旨在解决日志数据的收集、传输和处理问题,它可以收集来自于各种系统或应用的日志,转化为用户指定的格式后,转发到用户所指定的日志存储系统之中。
VUE3添加animate页面切换动画
众所周知,animate作为一款优秀的开源CSS动画库,具有使用简单、兼容性强、动画丰富的特点。那么如何在自己的项目中使用炫酷的animate动画,实现页面切换特效呢?本文带你快速上手使用animate动画。 一、创建项目与页面 初始化项目
k8s 资源清单yaml字段总结
对于k8s初学者来说,资源清单的编写是一件非常头疼的事,因为字段真的超多。因此特意总结了k8s yaml文件常见资源清单字段。分为pod、资源控制器、服务、存储、配置信息、认证与安全、pod调度几个模块。其中红色背景为必填字段,每个模块中相
ES数据备份与恢复
为了方便起见,本示例仅使用一台minio节点docker方式部署。在实际生产环境中,强烈建议使用二进制方式部署4台及以上节点的minio集群,提高容错率和服务可用性。
浅谈运维工程师的开发能力的培养
一、运维工程师发展路线 1. 传统运维 侧重点是解决具体的问题 。要求具备扎实的底层的知识储备,如网络、linux、数据库、硬件设备调试、服务部署等。以及一定的故障处理能力和经验,能够快速解决问题,实施变更。能够处理突发故障,顺利完成服务的
Vue3 exceljs库实现前端导入导出Excel
最近在开发项目时需要批量导入和导出Excel数据,在实现这个需求时,我们既可以在前端完成数据解析和文件生成工作,也可以通过前端发起导入以及导出请求后,后端实现解析文件流解析文件内容以及生成文件并提供下载链接的功能。
多集群thanos监控告警实践
环境简介 项目环境 为保障业务高可用,业务使用了多个网络运营商的机房线路,每个机房均部署一套k8s环境,故而有多个k8s集群,每个k8s集群环境上运行的服务基本一致。原来监控体系存在以下问题: 配置管理混乱 :先前使用Prometheus
pod日志采集(EFK方案)
# fluent bit部署与配置
celery定时与异步任务详解
backend = 'redis://:CuiLiang@0302@127.0.0.1:6379/1'
pod日志采集(Elastic Agent方案)
1. DaemonSet+Elastic Agent方案:使用DaemonSet控制器在每个kubernetes集群节点上运行elastic agent服务,业务容器日志目录统一挂载到节点指定目录下。在fleet中配置集成Custom Logs集成策略,指定日志采集目录和ingest pipeline,实现自定义路径下的日志收集和清理操作。
element-plus项目主题换肤与暗黑模式
.bg {
基于gitlab+linux实现CI/CD
利用Gitlab、Gitlab Runner、SonarQube、Artifactory、Jmeter、Maven、Java技术,搭建一个完整的 CI/CD 管道,实现当开发人员完成代码提交后,开始流水线工作,完成编译打包、单元测试、源码扫描、上传制品、部署服务到Linux主机、自动化测试工作。通过自动化构建、测试、代码质量检查和容器化部署,将开发人员从繁琐的手动操作中解放出来,提高团队的开发效率、软件质量和安全性,实现持续更新迭代和持续部署交付。
pod日志采集(Fluent Bit方案)
与fluentd类似,fluent bit配置文件由以下几个插件组成
thanos高可用prometheus集群部署
mkdir -p /tmp/{prometheus,grafana,thanos-store}
Python获取prometheus监控和告警数据
告警标题: 内存使用率高
k8s业务迁移与服务部署实践
业务部署上线是每个运维都需要面对的问题,接下来分别从传统运维和k8s运维角度,梳理操作流程:
ES索引策略配置与写入性能优化
虽然在先前的案例中已经使用Logstash对原始数据进行了清洗处理,但是实际存入ES中发现部分字段仍存在问题。我们除了重新调试Logstash的filter过滤规则外,还可以通过es的ingest pipeline,交由es的ingest节点在存入es前做最后的处理工作。
ES8.8集群与Kibana部署
```bash
grafana API使用
Grafana 是一款采用 go 语言编写的开源应用,主要用于大规模指标数据的可视化展现,是运维工具中最流行的 时序数据展示 工具,目前已经支持绝大部分常用的时序数据库。同时它也提供了许多常用操作的API接口,可以通过调用相关API接口,实
Django SimpleUI与vue的完美结合
SIMPLEUI_HOME_INFO = False
基于Gitlab CI+Argo CD的Gitops实践
本项目构建了一个基于GitOps理念的完整CI/CD管道,旨在实现软件开发与运维的高度自动化和一致性。通过GitLab、GitLab Runner(部署于Kubernetes)、Maven、Java、SonarQube、Harbor以及Argo CD等工具的紧密协作,实现代码提交后自动进行编译打包、单元测试、代码扫描、构建镜像、更新资源清单以及滚动更新、蓝绿部署、金丝雀发布、多集群发布功能。
Fleet部署与常见日志采集(ECK方式)
为了更加方便的实现系统和应用程序日志接入ES,官方推出了Elastic Agent采集方案。相较于之前使用beats采集数据,Elastic Agent可以实现通过更少的配置和安装来简化数据采集配置,仅需一个Elastic Agent代理即可实现日志、指标、APM 跟踪信息的采集,通过Fleet可以轻松的管理整个Elastic Agent队列。Kibana为我们内置了大多数场景下日志的采集与可视化分析配置,我们仅需要在kibanaUI中点击操作便可完成复杂的日志采集。
ELK监控与告警(Prometheus)
虽然grafana也支持配置Prometheus的告警规则,计算并触发告警事件,使用告警媒介通知,可替代Alertmanager的一部分功能。但是相较于Alertmanager,缺少了告警分组和告警抑制功能。因此推荐还是在Prometheus中配置告警规则推送至Alertmanager,待grafana告警功能后续功能逐步完善再停用Alertmanager。
自定义日志采集(Filebeat方式)
代码仓库地址:[https://gitee.com/cuiliang0302/log_demo](https://gitee.com/cuiliang0302/log_demo)
基于gitlab+docker实现CI/CD
利用Docker、Gitlab、Gitlab Runner(docker)、SonarQube、Harbor、Jmeter、Maven、Java技术,搭建一个完整的 CI/CD 管道,实现当开发人员完成代码提交后,开始流水线工作,完成编译打包、单元测试、源码扫描、上传制品、部署服务到Docker容器、自动化测试工作。通过自动化构建、测试、代码质量检查和容器化部署,将开发人员从繁琐的手动操作中解放出来,提高团队的开发效率、软件质量和安全性,实现持续更新迭代和持续部署交付。
如何使用coding优雅的开发项目
include /usr/share/nginx/modules/*.conf;
ES跨集群数据迁移方案测评
经常有小伙伴咨询如何将整个es集群数据如何迁移到另一个集群,其中往往会涉及到以下的问题:
基于jenkins+docker实现CI/CD
利用 Jenkins、Docker、SonarQube 和 Harbor 技术,搭建一个完整的 CI/CD 管道,实现持续集成、持续交付和持续部署的流程。通过自动化构建、测试、代码质量检查和容器化部署,将开发人员从繁琐的手动操作中解放出来,提高团队的开发效率、软件质量和安全性,实现持续更新迭代和持续部署交付。
ETCD——常用命令
alias etcdctl="etcdctl --endpoints=${ENDPOINTS} --cacert=/root/cfssl/etcd/ca.pem --cert=/root/cfssl/etcd/client.pem --key=/root/cfssl/etcd/client-key.pem"
部署静态站到托管平台
从本地构建到绑定域名,静态站上线的完整步骤,以及国内访问需要注意的坑。
用一个 JSON 文件管理所有项目
项目数量超过十个之后,硬编码的卡片列表就变成了负担。把数据抽出来,改结构不用动代码。
为什么这个官网是纯静态的
个人官网没有后端需求。静态托管换来的是免费、秒开、永不宕机,代价只是不能跑常驻服务。