
DevSecOPS
文章平均质量分 84
happy_king_zi
这个作者很懒,什么都没留下…
展开
-
运维高可用架构设计
mysql: 开启binlog 级别 statement 及以上。postgresql: 日志级别hot_standby 及以上。postgresql: 日志级别hot_standby 及以上。postgresql: 日志级别hot_standby 及以上。mysql:开启binlog 级别 row。mysql:开启binlog 级别 row。mysql,postgresql 单节点。mysql,postgresql 单节点。mysql,postgresql 单节点。mysql:未开启binlog。原创 2024-11-06 14:06:32 · 1121 阅读 · 0 评论 -
《Google SRE》读后感
这两个优点对于SRE很是重要,反思使得SRE从失败中学习教训,总结使SRE从时间中获得经验,个人和团队需要学习和践行这种精神,但是对事不对人。Google的做法是:时事后总结机制。避免指责,提供建设性意见,充满正能量事后总结报告需要评审,避免低质量的事后总结带来负面影响google的事后总结模板。原创 2024-11-06 14:02:38 · 864 阅读 · 0 评论 -
Nginx配置、优化
原因是经过反向代理后,由于在客户端和Web服务器之间增加了中间层,因此Web服务器无法直接拿到客户端的IP,通过$remote_addr变量拿到的将是反向代理服务器的IP地址。但是,反向代理服务器在转发请求的HTTP头信息中,可以增加X-Forwarded-For信息,用以记录原有的客户端IP地址和原来客户端请求的服务器地址。可以自定义一份日志的记录格式,不过要注意,log_format指令设置的name名称在Nginx配置文件中是不能重复的。设置Nginx的CPU worker(建议和CPU的核数相同)原创 2024-10-29 15:54:27 · 1204 阅读 · 0 评论 -
nginx代理websocket服务
它使用了proxyhttpversion指令来指定使用HTTP 1.1协议,这是必需的,因为WebSocket需要使用这个协议。在上面的配置中,我们使用了ssl证书来保护我们的连接,并将wss的代理路径设置为“/wss/”。总之,这个配置为nginx提供了一个完整的WebSocket代理服务,可以让你将WebSocket服务发布到公共互联网上,而不必担心网络安全问题。在你的应用程序中,你需要将websocket连接的url更改为“wss://example.com/wss/”以使用nginx代理。原创 2024-10-29 15:08:41 · 2221 阅读 · 0 评论 -
数据库数据导出
【代码】数据库数据导出。原创 2024-10-29 12:03:21 · 448 阅读 · 0 评论 -
MySQL高级应用——存储过程和函数
函数与存储过程最大的区别就是函数调用有返回值,调用存储过程用call语句,而调用函数就直接引用函数名+参数即可Definer和sql security子句指定安全环境Definder是MySQL的特殊的访问控制手段,当数据库当前没有这个用户权限时,执行存储过程可能会报错sql secuirty的值决定了调用存储过程的方式,取值 :definer(默认)或者invoker。原创 2024-10-29 12:01:08 · 618 阅读 · 0 评论 -
MySQL常用函数
子查询是一个嵌套在外层语句中的完整select语句,通常用()括起来,子查询可以范围一个单一的值,一行值,一个表格等等。操作符的执行优先级,从高到低,同一行中的操作符优先级相同,相同优先级的情况下则从左到右执行。通常子查询的方式可以简化复杂join表链接查询和union结果合并查询,提高了语句的可读性。IFNULL 当expr1为非null时,则返回expr1,否则返回expr2。NULLIF 当expr1等于expr2时,则返回null,否则返回expr1。通配符%表示匹配0个或多个字符。原创 2024-10-28 17:23:40 · 600 阅读 · 0 评论 -
MySQL的权限系统
权限系统的作用:授予来自某个主机的某个用户可以查询、插入、修改、删除等数据库操作的权限不能明确指定拒绝某个用户的连接权限控制(授权与回收)的执行语句包括create user,grant,revoke授权后的权限都会存放在MySQL的内部数据库(MySQL)中,并在数据库启动之后把权限信息复制到内存中MySQL用户的认证信息不光包括用户名,还要包括发起的主机查看mysql实例默认root用户的权限(来自localhost)原创 2024-10-28 17:22:01 · 1022 阅读 · 0 评论 -
Linux的环境变量不生效
2.然后去用户家目录下,读取~/.bash_profile,否则读取~/.bash_login,再否则~/.profile,这三个文档设定基本上是一样的,存在读取优先关系。1.首先读入的是全局环境变量设定目录/etc/profile,然后根据其内容读取额外的设定的文档,如 /etc/profile.d和/etc/inputrc。在以上的配置中,定时任务只是默认加载当前用户的环境变量,即 所有的定时任务,默认使用 source ~/.bashrc 来加载执行后续命令的。原创 2024-10-22 16:48:01 · 685 阅读 · 0 评论 -
PCS命令配置
stonith_admin -M -a agent_name ## 查询fence设备的元数据,stonith_admin -M -a fence_vmware_soap。# fence_vmware_soap -o status -a vcenter.example.com -l cluster-admin -p -z -U ## 查看状态。原创 2024-10-21 14:33:18 · 1084 阅读 · 0 评论 -
物理内存与swap
当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。这个是SWAP 交换分区的作用。实际上,我们更关注的应该是SWAP分区的大小问题。设置多大才是最优的。原创 2024-10-21 14:27:46 · 2129 阅读 · 0 评论 -
Linux优化
Linux之TCP/IP内核参数优化。原创 2024-10-21 14:21:58 · 301 阅读 · 0 评论 -
Linux信号量
向指定的进程或进程组发送信号(The command kill sends the specified signal to the specified process or process group),或者确定进程号为 pid 的进程是否还在。.这是一个终止当前操作的请求.如果捕获了这个信号,一些简单的程序应该退出,或者允许自给被终止,这也是程序没有捕获到这个信号时的默认处理方法.拥有命令行或者输入模式的那些程序应该停止它们在做的事情,清除状态,并等待用户的再次输入.等价于 (TERM是默认信号量)原创 2024-10-21 14:03:33 · 937 阅读 · 0 评论 -
Linux系统层面问题总结
open files这个值阶梯性调整,不要一下设置太大open files6553600这个值足够了,若还有问题,有可能是受到攻击java需要打开文件数会大线下多种情况设置完毕后,再去设置线上。原创 2024-10-18 14:45:32 · 1436 阅读 · 0 评论 -
redhat系列的yum源配置
安装所有包,因为通过第一个命令下载后有很多rpm包,他们之前有依赖关系,一个一个安装不实际。downloadonly和yumdownloade。2)将 repo 配置中的地址替换为阿里云镜像站地址。/root/mypackages 下载包存放的位置。--downloaddir 下载包存放的路径。--downloadonly 只下载。添加rpm包,更新yum仓库。1)安装 epel 配置包。原创 2024-10-18 14:41:21 · 1072 阅读 · 0 评论 -
高并发负载均衡——nginx与lvs
简单理解:Domain Name System,域名系统是因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网。例如我们将程序发布到192.168.55.145 和144两台服务器上,通过DNS可以设置一个统一的访问入口,如www.Max1209.com对这两台服务器上的服务进行访问。用户直接访问www.Max1209.com主机名而不需记住机器IP,通过主机名,最终得到该主机名进行域名解析得到对应的IP地址进行访问。原创 2024-10-18 14:35:57 · 1407 阅读 · 0 评论 -
解决Linux忘记密码唯一超管用户密码
那一行,用End键将光标移动到这段字符的行尾,然后添加console=tty0,rd,break用来告诉GRUB启动这项的操作系统时,传递参数给操作系统,然后按Ctrl+x从新引导。”那一行,删除“rhgb quiet,再用End键将光标移动到这段字符的尾部,添加参数init=/bin/sh,用来告诉GRUB启动操作系统时,将参数传递到操作系统。7 然后按Esc键退出硬盘的操作系统,reboot重启光盘系统,切入BIOS选项中,将硬盘设为启动项,然后正常启动。3 输入命令进行编辑密码。原创 2024-10-18 14:14:39 · 427 阅读 · 0 评论 -
kubernetes日志收集方案
使用节点级日志代理使用sidecar容器和日志代理使用具有日志代理功能的sidecar容器建议:使用方案1,将应用日志输出到stdout & stderr,通过在宿主机上直接部署logging-agent的方式集中处理日志部署简单可以使用kubectl logs目录查看日志宿主机本身可能已有rsyslogd等成熟日志收集组件可使用。原创 2024-10-16 08:25:40 · 1380 阅读 · 0 评论 -
Flink On kubernetes
Session 模式下,Flink 集群处于长期运行状态,当集群的Master组件接收到客户端提交的任务后,对任务进行分析并处理。用户将Flink集群的资源描述文件提交到 Kubernetes 之后,Flink 集群的 FlinkMaster 和 TaskManager 会被创建出来,如下图所示,TaskManager 启动后会向 ResourceManager 模块注册,这时 Flink Session 集群已经准备就绪。原创 2024-10-15 22:35:55 · 1457 阅读 · 0 评论 -
kubernetes自定义pod启动用户
image: ...原创 2024-10-15 22:32:55 · 500 阅读 · 0 评论 -
Karmada核心概念
Karmada (Kubernetes Armada)是一个Kubernetes管理系统,使您能够跨多个Kubernetes集群和云运行您的云原生应用程序,而无需更改应用程序。通过使用Kubernetes原生api并提供高级调度功能,Karmada实现了真正开放的多云Kubernetes。Karmada旨在为多云和混合云场景下的多集群应用程序管理提供交钥匙自动化,具有集中式多云管理、高可用性、故障恢复和流量调度等关键功能。Karmada是云原生计算基金会(CNCF)的一个沙盒项目。原创 2024-10-15 22:29:47 · 1251 阅读 · 0 评论 -
GO之流程控制
for range 结构时Golang语言特有的一种迭代结果,在许多情况下都非常有用,for range 可以遍历数组、切片、字符串、map及通道。这三种基本逻辑是相互支撑的,他们构成了算法基本机构,无论怎样复杂的逻辑结构,都可以通过他们来表达。fmt.Printf("索引为: %d, 具体的值为:%c \n", i, value)索引为: 10, 具体的值为:d。索引为: 11, 具体的值为:!索引为: 15, 具体的值为:你。索引为: 18, 具体的值为:好。索引为: 21, 具体的值为:,原创 2024-10-15 22:23:23 · 978 阅读 · 0 评论 -
flask基础学习
Flask中有个配置属性叫做SECRET_KEYregex名字固定"""第一步:自定义URL匹配正则表达式""""""路由匹配时,正则匹配成功后传递给视图函数中参数的值:return:""""""使用url_for反向生成URL时,传递的参数经过该方法处理,返回的值用于生成URL中的参数:return:"""return val# 第二步:添加到flask中# 第三步:zaiapp.run()Mobile转换器# 等价于# 定义转换器# 将自定义转换器告知Flask应用。原创 2024-10-14 16:39:08 · 1276 阅读 · 0 评论 -
部署带证书的docker高可用的私有仓库harbor
它以 Docker 公司开源的 registry 为基础,提供了管理UI, 基于角色的访问控制(Role Based Access Control),AD/LDAP 集成、以及审计日志(Audit logging) 等企业用户需求的功能,同时还原生支持中文。echo "${node} 秘钥copy完成,准备环境初始化....."对于已经安装的harbor仓库,先stop,然后执行安装命令(注意:高版本)对于已经安装的harbor仓库,先stop,然后执行安装命令。echo "host 文件拷贝完成"原创 2024-10-14 16:15:13 · 1099 阅读 · 0 评论 -
内网DNS
递归查询就是客户机会等待最后结果的查询,而迭代查询是客户机等到的不一定是最终的结果,而可能是一个查询提示。原创 2024-10-14 16:08:51 · 708 阅读 · 0 评论 -
Redis日常运维
作为一名资深运维工程师,了解 Redis 的不同架构模式及其优缺点是非常重要的。此外,监控 Redis 的关键指标也是确保其稳定运行的关键。以下是对这些问题的详细解答。原创 2024-10-14 16:00:54 · 1220 阅读 · 0 评论 -
FBV与CBV区别
由路由----->as_view()方法----->view中dispatch方法(反射实现的)注释setting.py中的46行代码之后单独需要验证的方法。首先执行url中的as_view()方法。CBV就是在视图中使用类处理请求。就是在视图里使用函数处理请求。实现本质:基于反射实现的。原创 2024-10-13 21:37:59 · 323 阅读 · 0 评论 -
Django ORM中models的字段和参数
PS: 返回值为字段在数据库中的属性,Django字段默认的值为:注意事项触发Model中的验证和错误提示有两种方式:a. Django Admin中的错误信息会优先根据Admiin内部的ModelForm错误信息提示,如果都成功,才来检查Model的字段并显示指定错误信息b. 使用ModelFormc. 调用Model对象的 clean_fields 方法,如:email = models.EmailField(error_messages={'invalid': '格式错了.'})原创 2024-10-13 21:34:17 · 444 阅读 · 0 评论 -
Django-分页、中间件和请求的声明周期
2、index.html 3、扩展 二)自定义分页器二、中间件 Django中叫中间件,其他框架种有的叫管道。 中间件,是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变Django的输入与输出。因为改变的是全局,所以需要谨慎使用,用不好会影响性能。 django 中的中间件(middleware),在django中,中间件其实就是一个类,在请求到来和结束后,django会根据自己的规则在合适的时机执行中间件原创 2024-10-13 21:28:04 · 1009 阅读 · 0 评论 -
gitlab项目迁移和日志文件功能解析
Gitlab 日志位置记录。原创 2024-10-13 21:17:59 · 316 阅读 · 0 评论 -
jenkins知识整理
先备份 config.xml 为 config.xml.bak,而后打开 config.xml 配置文件,修改“<useSecurity>true</useSecurity>”为“<useSecurity>false</useSecurity>”;首先,进入 .jenkins 目录(比如/home/jenkins/.jenkins)。jenkins job显示设置插件,比如二维码显示(需要在全局安全配置)2 访问Jenkins页面,输入管理员admin,及刚才的密码;job配置历史插件(方便配置管理)原创 2024-10-13 21:09:44 · 1662 阅读 · 0 评论 -
git的使用
Git是一款自由和开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper,后者之前一直是 Linux 内核开发人员在全球使用的主要源代码工具。开放源码社区中的有些人觉得 BitKeeper 的许可证并不适合开放源码社区的工作,因此 Torvalds 决定着手研究许可证更为灵活的版本控制系统。原创 2024-10-13 21:03:56 · 677 阅读 · 0 评论 -
进程管理工具:非daemon进程管理工具supervisor
supervisor是一个 Client/Server模式的系统,允许用户在类unix操作系统上监视和控制多个进程,或者可以说是多个程序。supervisor与launchd,daemontools,runit等程序有着相同的功能,与其中某些程序不同的是,它并不作为“id 为 1的进程”而替代init。相反,它用于控制应用程序,像启动其它程序一样,通俗理解就是,把Supervisor服务管理的进程程序,它们作为supervisor的子进程来运行,而supervisor是父进程。原创 2024-09-29 08:33:21 · 1407 阅读 · 0 评论 -
kubernetes实战总结
问题:k8s自动化发布后,docker镜像一直增加的问题清理机制:手动去删除镜像比较烦,特别是node节点很多的时候清理命令,可将下面的命令封装成脚本,并写成定时任务自动清理XX为的docker镜像里的关键词。原创 2024-09-26 10:17:17 · 383 阅读 · 0 评论 -
docker和docker-compose 服务健康检测(healthcheck)
为了规避上面的风险,docker在v1.12版本后添加了healthcheck功能,这个功能可以自定义容器监控状态的检测标准。在docker-compose里定义healthcheck 可以针对当前服务下的所有容器进行检测。在Dockerfile里定义镜像的healthcheck可以应用用基于这个镜像的所有容器。使用 HTTP GET 请求指定 URL 对服务进行检查。通过连接指定端口,使用 TCP ping 对服务进行检查。使用 cURL 对服务指定 URL 进行检查。原创 2023-05-29 17:08:04 · 8417 阅读 · 4 评论 -
闭包、装饰器decorator、迭代器与生成器、面向过程编程、三元表达式、列表解析与生成器表达式
1、定义在函数内部的函数2、包含对外部作用域名字的引用,而不是对全局作用域名字的引用那么该内部函数称之为闭包函数装饰器本身可以是任意可以调用对象,被装饰的对象本身也可以是任意可调用对象定义:本质是函数,(装饰其他函数),就是为其他函数添加附加功能在代码运行期间动态增加功能的方式,称之为“装饰器”(Decorator)。原则:1、不能修改被装饰的函数的源代码2、不能修改被装饰的函数的调用方式使用装饰器添加统计执行时间的功能,不修改原代码,不修改调用方式10。原创 2024-07-27 18:22:51 · 1036 阅读 · 0 评论 -
Python基础学习——文件操作、函数
https://www.cnblogs.com/happy-king/p/7538315.html原创 2024-07-27 16:43:57 · 772 阅读 · 0 评论 -
Python基础学习——字符串、列表、元组、字典、集合
一)数据类型分类1、按存储空间的占用分(从低到高)数字字符串集合:无序,即无序存索引相关信息元组:有序,需要存索引相关信息,不可变列表:有序,需要存索引相关信息,可变,需要处理数据的增删改字典:无序,需要存key与value映射的相关信息,可变,需要处理数据的增删改2、按存值个数区分标量/原子类型数字,字符串容器类型列表,元组,字典3、按可变不可变区分可变列表,字典不可变数字,字符串,元组4、按访问顺序区分直接访问数字顺序访问(序列类型)字符串,列表,元组。原创 2024-07-27 16:31:14 · 1165 阅读 · 0 评论 -
软件生存周期模型:瀑布、敏捷、DevOps
无论是瀑布式开发、敏捷开发还是DevOps,整个流程都分为设计、开发、测试和部署四个部分,只不过各个部分的开始和结束时间节点不同而已!下图很好地解释了这一点。从瀑布式开发到敏捷开发再到DevOps,各个阶段的切换速度越来越快,瀑布式开发和敏捷开发的运维部署工作都是放到最后,而 DevOps 结合敏捷开发思想,将部署工作也敏捷起来。原创 2023-05-02 22:33:14 · 989 阅读 · 1 评论 -
运维工作中的事件、故障排查处理思路
3 Library calls (functions within program libraries) libc接口文档。2 System calls (functions provided by the kernel) 系统调用接口文档。5 File formats and conventions, e.g. /etc/passwd 配置文件格式说明。iperf / netperf / netserver:网络性能测试工具。netsat:多种网络栈和接口统计信息。原创 2024-08-01 14:57:11 · 1703 阅读 · 0 评论