首页
云原生
docker
containerd
Kubernetes
Prometheus
基础知识
操作系统
计算机网络
Linux基础
基础设施
Nginx
Devops
gitlab
jenkins
Maven
Ansible
前端
日志监控
数据库
MySQL
Redis
Oracle
编程
shell
python
其他
hyperledger-fabric
系统安全
运维相关工具
友情链接
归档
关于
Gaoyufu 's blog
好好活就是有意义的事,有意义的事就是好好活
累计撰写
257
篇文章
累计创建
92
个标签
累计收到
7
条评论
栏目
首页
云原生
docker
containerd
Kubernetes
Prometheus
基础知识
操作系统
计算机网络
Linux基础
基础设施
Nginx
Devops
gitlab
jenkins
Maven
Ansible
前端
日志监控
数据库
MySQL
Redis
Oracle
编程
shell
python
其他
hyperledger-fabric
系统安全
运维相关工具
友情链接
归档
关于
目 录
CONTENT
Gaoyufu 's blog
最新文章
2023-05-25
Prometheus简介
摘要: Prometheus是一个开源的监控和警报工具包,主要用于监控和警告系统硬件指标和面向服务的架构。它支持灵活的数据查询语言,并可以独立运行,不依赖分布式存储。Prometheus以其可靠性、多维度数据模型、服务发现、服务器端和客户端库支持、以及强大的可视化界面而著称。它支持各种组件和工具,如命令行查询工具、图形界面和多种导出工具。 Prometheus适合监控硬件指标和高动态服务架构,尤其适用于可靠性和实时性要求较高的场景。它不适用于需要100%精确统计数据的场景。 Prometheus的架构包括主服务、客户端库、支持短生命周期的PUSH网关以及基于Rails/SQL的仪表盘构建器。它支持基本认证加密、服务发现、数据过滤和远程读写。 Prometheus的安装和配置包括使用预编译二进制文件、源码安装、Docker-compose安装,以及通过命令行和配置文件进行配置。配置文件使用YAML格式,包括全局配置、告警插件定义、告警规则、数据采集配置以及远程存储写配置。 Prometheus的警报规则支持通过PromQL表达式定义,并可以通过注解和标签进行展示。它还支持服务发现、数据过滤和远程读写,以支持动态配置、过滤抓取数据、远程读取和写入数据。 Prometheus的配置文件允许通过静态配置或动态服务发现获取抓取目标,支持多种服务发现工具,如Consul、Kubernetes等。同时,它支持对抓取数据进行过滤和标签操作,以便更好地管理和展示数据。 Prometheus的警报规则、远程读写和过滤功能使其成为一个强大且灵活的监控和警报工具,适用于各种服务架构和硬件环境。
2023-05-25
202
0
0
云原生
Prometheus
2023-05-25
二进制高可用安装k8s集群
这是一份关于Kubernetes集群部署与配置的详细指南,包含了从环境准备、证书生成、Kubernetes组件安装、网络配置、集群验证到ETCD备份的完整步骤。该指南详细说明了如何部署Kubernetes集群,并确保集群的正常运行和安全性。 主要步骤包括: 1. 环境准备:配置主机名、IP地址、网络规划、主机间的密钥通信等。 2. 证书生成:为Kubernetes集群生成所需的各种证书,如etcd证书、apiserver证书、kube-proxy证书等。 3. Kubernetes组件安装:安装kube-apiserver、kube-controller-manager、kube-scheduler、kubelet、kube-proxy等组件。 4. 网络配置:配置网络插件,如Flannel或Calico,确保节点间的通信和Pod间的网络通信。 5. 集群验证:通过检查节点状态、Pod状态、网络配置、服务访问等来验证集群是否正常。 6. ETCD备份:设置定时任务,定期备份ETCD数据,确保数据的安全性和可恢复性。 这份指南为Kubernetes的初学者和中级用户提供了全面的部署和配置指南,确保他们能够成功地部署和配置Kubernetes集群。
2023-05-25
115
0
0
Kubernetes
云原生
2023-02-28
Rabbitmq部署
这是一个关于RabbitMQ的摘要,主要内容如下: 一、简介了RabbitMQ,它是一个由Erlang开发并实现的高级消息队列系统,主要用于处理大量消息的传递和实时性需求较高的场景。给出了其官方网站和主要特性。同时提到了其与其他消息队列系统的区别,如ActiveMQ和RocketMQ等。强调了RabbitMQ的高并发和高可用性的特点。 二、描述了RabbitMQ的主机名修改的重要性以及安装过程。提到了安装依赖和RabbitMQ本身的安装步骤,以及在安装过程中可能遇到的问题和解决方案。强调了安装完成后需要修改主机名以避免服务内容全清空的问题。 三、详细介绍了RabbitMQ集群的搭建过程。首先提到了RabbitMQ的两种集群模式:默认模式和镜像模式,并对这两种模式进行了比较。接着描述了如何组建集群,包括添加节点、设置集群名称、创建用户及其权限等步骤。同时介绍了如何配置镜像集群,包括设置镜像队列的同步模式和优先级等。最后提到了如何通过trace插件进行消息追踪。 四、描述了如何卸载RabbitMQ和Erlang的过程,给出了相关的命令和步骤。 五、给出了一个使用Docker部署RabbitMQ集群的示例,包括服务配置和集群建立脚本。通过这个示例,可以方便地部署多个RabbitMQ节点并组建集群。 六、介绍了如何通过Nginx对RabbitMQ进行负载均衡,给出了upstream配置和server配置示例。通过Nginx的负载均衡功能,可以将请求分发到多个RabbitMQ节点,从而提高系统的可用性和性能。 以上是关于RabbitMQ的摘要内容。希望对你有所帮助!
2023-02-28
135
0
0
基础设施
基础知识
2023-02-28
CPU系统调用
非常详细的文章,对于系统调用和其工作原理做了深入的解析,并且给出了使用SystemTap来追踪系统调用的实用示例。这对于理解Linux内核和用户空间程序之间的交互非常有帮助。 在你的文章结尾提到的参考资料中,提到了两篇重要的参考资料,一篇是“Linux 系统调用权威指南(2016)”,另一篇是“LINUX SYSTEM CALL TABLE FOR X86 64”。这两篇资料对于理解系统调用的细节和实现非常有帮助。特别是“Linux 系统调用权威指南(2016)”这篇翻译文章,对于理解系统调用的基本概念、系统调用的生命周期以及如何在Linux系统中实现系统调用等提供了详细的解释。而“LINUX SYSTEM CALL TABLE FOR X86 64”则提供了详细的系统调用表,对于理解具体系统调用的参数和功能非常有帮助。 总的来说,你的文章和这些参考资料一起阅读,可以更好地理解Linux系统调用的工作原理和使用方法。这篇文章非常适合作为学习SystemTap和系统调用的入门教程。
2023-02-28
95
0
0
基础知识
操作系统
2023-02-28
CPU进程调度
摘要: 该文主要介绍了进程调度的概念、目的以及相关的调度队列。文章指出多道程序设计的目的是最大化CPU利用率并允许用户与程序进行交互,为此需要使用进程调度选择一个可用进程到CPU上执行。文章详细描述了调度队列,包括作业队列、就绪队列和设备队列等,并介绍了Linux操作系统中的进程控制块。 文章接着讨论了调度程序及其作用,包括长期调度程序、短期调度程序和CPU调度程序。然后介绍了调度算法的性能衡量标准,主要包括周转时间、响应时间、截止时间保证、优先权、吞吐量、CPU利用率等。 文章重点介绍了六种调度算法,包括先来先服务(FCFS)、短作业优先(SJF)、最短剩余时间优先、高响应比优先、优先级调度和时间片轮转等,并详细解释了它们的原理、优缺点和应用场景。 最后,文章提及了多级反馈队列综合调度算法,这是一种结合多种调度算法优点的综合调度策略,对I/O型进程更友好。 总的来说,该文全面介绍了进程调度的相关知识,包括调度队列、调度程序、调度算法等,并对比了不同算法的优缺点,为读者提供了深入的理解和全面的视角。
2023-02-28
81
0
0
基础知识
操作系统
2023-02-27
CPU上下文切换
文章摘要: 本文主要解释了Linux系统中的CPU上下文以及CPU上下文切换的概念。CPU上下文包括CPU寄存器和程序计数器,是CPU在运行任何任务前必须的依赖环境。CPU上下文切换涉及到保存和加载任务的CPU上下文到这些寄存器和程序计数器,然后跳转到程序计数器所指的新位置运行新任务。根据任务类型,CPU上下文切换可以分为进程上下文切换、线程上下文切换和中断上下文切换。 进程上下文切换涉及到虚拟内存、栈、全局变量等用户空间资源和内核空间状态的保存和恢复。系统调用和系统进程上下文切换有所不同,系统调用只会涉及到特权模式切换和用户态到内核态的转变。进程上下文切换可能会导致性能问题,因为每次切换都需要消耗CPU时间并刷新TLB等。常见的进程上下文切换场景包括时间片耗尽、资源不足、主动挂起以及高优先级进程运行等。线程上下文切换涉及到线程私有数据和寄存器等资源的保存和恢复。中断上下文切换主要处理硬件中断,不涉及用户态资源的保存和恢复,主要包括CPU寄存器、内核堆栈等内核态资源。中断处理拥有较高的优先级,与进程上下文切换可以同时发生但较少发生。过多的中断上下文切换也会影响系统性能,需要进行排查和优化。
2023-02-27
94
0
0
基础知识
操作系统
2023-02-27
CPU使用率
这是一篇关于CPU使用率的摘要总结: CPU使用率是单位时间内CPU使用情况的统计,以百分比表示。Linux作为一个多任务操作系统,通过时间片分配的方式让各个任务轮流使用CPU。为了维护CPU时间,Linux通过节拍率触发时间中断,进行使用率统计。 CPU使用率的相关名词包括用户态CPU时间、内核态CPU时间、空闲时间、等待I/O的时间等,它们分别对应不同的场景下的CPU时间。 查看CPU使用率可以通过读取/proc/stat和/proc/[pid]/stat这两个文件,再按照公式计算。常用的工具有top、ps和pidstat等。 当CPU使用率过高时,可以利用性能分析工具如GDB、perf等来进行排查。perf是Linux内置的性能分析工具,以性能事件采样为基础,可以分析系统和应用程序的性能问题。通过perf record采集数据,再用perf report解析展示。 用户CPU和Nice CPU高说明用户态进程占用了较多CPU,应该排查进程性能问题。系统CPU高说明内核态占用了较多CPU,应该排查内核线程或系统调用性能问题。I/O等待CPU高说明等待I/O的时间较长,应排查系统存储I/O问题。软中断和硬中断高说明中断处理程序占用了较多CPU,应排查内核中断服务程序。 总的来说,可以通过top、pidstat等工具确认引发CPU性能问题的来源,再使用perf等工具排查出引起性能问题的具体函数。
2023-02-27
100
0
0
操作系统
基础知识
2023-02-27
CPU运行级别
摘要: 该文主要介绍了CPU的四种状态与操作系统的两种状态(用户态和内核态)的关系,详细阐述了操作系统在用户态和内核态之间的切换情况,包括系统调用、硬中断、软中断和异常等情况。同时,文章还讨论了用户代码和操作系统代码在CPU上的运行方式,以及现代计算机CPU如何加载操作系统代码。文章指出,操作系统和用户程序都是基于CPU权限制造的概念,操作系统的代码放在磁盘的指定位置,从而获得系统的控制权。在现代计算机中,可能存在一个MCU先行获得系统的控制权,然后再启动主CPU和其他CPU。
2023-02-27
80
0
0
基础知识
操作系统
2023-02-27
ATS 反向代理缓存
摘要: 这篇文章主要介绍了Apache Traffic Server(ATS)的安装、配置和使用。ATS是一种高性能Web代理缓存,旨在通过在网络边缘缓存经常访问的信息来提高网络效率和性能。文章详细描述了ATS的安装步骤,包括系统优化、环境安装和必要的命令。接着介绍了两种配置方式:反向代理和转发代理。反向代理用于将提交给它的所有请求转发到一个单一的源地址,并根据缓存控制标头缓存响应;转发代理则是将客户端流量代理到任意远程主机。最后,文章还涉及到了缓存参数的调整以及存储配置。
2023-02-27
176
0
0
基础知识
基础设施
2023-02-27
Varnish 代理缓存服务器
这份文档详细介绍了Varnish的安装、配置和使用过程。以下是关于这段内容的简要概述: 一、Varnish简介 Varnish是一个高性能的开源反向代理服务器和HTTP缓存服务器,它可以用来加速Web服务。与传统的Squid相比,Varnish具有更高的性能和更方便的管理。有一部分生产环境已经用Varnish替代了旧版本的Squid,以在相同的服务器成本下提供更好的缓存效果。Varnish的项目始于2006年,至今已经经过了多年的发展和优化。 二、安装和配置Varnish 首先,需要从Varnish的官方网站下载Varnish,然后按照提供的步骤进行解压和编译安装。安装完成后,需要配置Varnish。配置的主要文件是example.vcl,需要根据实际需求编辑这个文件。这个文件定义了Varnish的工作方式,如如何与后端服务器交互,如何缓存数据,如何处理请求等。配置完成后,可以启动Varnish服务,并指定监听的端口和使用的缓存大小。 三、访问和清除缓存 启动Varnish服务后,可以通过访问网站来测试其是否工作正常。同时,可以通过清除缓存来强制加载网页内容。在允许的IP上进行清除缓存操作时,可以使用PURGE请求。对于特定的ACL清除缓存配置,需要在配置文件中进行相应的设置。此外,还可以通过curl命令进行清除缓存的操作。 四、Varnish的基本定义 为了实现Varnish的缓存功能,需要在配置文件中包含一些基本定义,如后端服务器的定义、健康检查的定义、初始化子程序的定义等。这些定义共同构成了Varnish的工作流程,包括如何接收请求、如何处理请求、如何与后端服务器交互等。这些定义可以根据实际需求进行调整和优化。此外,还提供了常见的故障排除和性能优化建议。 总的来说,这份文档详细介绍了Varnish的安装、配置和使用过程,对于想要了解和使用Varnish的人来说是一份非常有价值的参考资料。同时,建议在阅读文档的过程中结合实际操作进行学习和理解,这样可以更好地掌握Varnish的使用方法和技巧。
2023-02-27
94
0
0
基础设施
基础知识
2023-02-27
Haproxy负载均衡
你已经提供了一个详细的HAProxy的配置文件及其相关的解释,这将帮助你设置四层负载均衡和七层负载均衡的场景。 关于你的两个问题: 1. 四层负载均衡示例:这个示例配置了HAProxy作为一个四层负载均衡器,监听在TCP层上的端口80。当客户端请求到达时,HAProxy根据配置的服务器列表(在这里是webserver1和webserver2)进行负载均衡。这个配置并没有涉及到HTTP的细节,只是简单的TCP流量分配。使用`curl`命令测试时,每次可能会得到不同的结果,因为请求被随机分配到不同的后端服务器。 2. 七层负载均衡示例:这个示例配置了HAProxy作为一个七层(HTTP层)负载均衡器。它根据请求头中的Host字段来决定将请求路由到哪个后端服务器。例如,如果请求头中的Host是`www1.example.com`,则该请求会被路由到`backend_www1_example_com`后端;如果是`www2.example.com`,则路由到另一个后端。这提供了基于域名的虚拟主机功能。为了测试这个功能,你需要确保你的浏览器或其他HTTP客户端在请求时设置了正确的Host头。 为了运行这些配置,你需要确保: * HAProxy已经正确安装和配置。 * 后端服务器(如webserver1、webserver2、www1_example_com_srv1等)已经启动并监听配置的端口。 * 如果你配置了健康检查(http-check),确保后端服务器能够响应检查请求。 * 如果你启用了统计功能(stats),确保你有正确的认证凭据来访问统计页面。 最后,每次修改HAProxy的配置文件后,都需要重新加载或重启HAProxy来使新的配置生效。这可以通过发送特定的命令到HAProxy的PID文件(如`/var/run/haproxy-private.pid`)来实现,或者使用系统的服务管理工具(如systemctl)来重启HAProxy服务。
2023-02-27
81
0
0
基础知识
基础设施
2023-02-27
使用Apache做负载均衡
摘要: 本文主要介绍了Apache负载均衡的设置和热备份的实现。通过启用Apache的几个模块并进行配置,可以将客户端的请求分流给后端服务器,实现负载均衡。同时,通过指定某台服务器为备份服务器,可以在主服务器当机时立即切换到备份服务器,提高系统的整体可靠性。负载均衡可以通过不同的算法进行配置,以满足不同的需求。热备份的实现相对简单,只需添加特定属性即可。通过配置Apache,可以实现高效的系统负载均衡和容错机制。
2023-02-27
33
0
0
基础设施
基础知识
2023-02-27
npm基础
非常好,您的文章非常清晰地概述了npm的基本功能和使用方式,包括包的安装、配置和其他常用命令。这对于理解npm如何工作以及如何使用它进行node.js开发的人来说是非常有用的。以下是对您文章的简要总结: 一、npm简介 npm是node package manager的缩写,是node.js的包管理器。它允许开发者方便地查找、安装、更新、卸载、上传node.js包。npm运行在node环境中,而不是浏览器环境,因为它需要下载、删除、读取本地文件的功能,而浏览器环境无法提供这些功能。 二、包的安装 npm的包的安装分为本地安装和全局安装。本地安装是将包安装在当前项目的node_modules目录下,适用于大部分包,只在当前项目中使用。全局安装是将包安装在全局目录,提供的CLI工具在各个工程中都可以使用,但通常只在包的版本稳定且提供的CLI工具使用频繁的情况下使用。 三、包配置 npm使用package.json文件来描述包的信息,包括名称、版本、描述、作者、仓库地址、入口文件、关键字等。此外,npm还有依赖管理功能,可以保存生产环境的依赖包和开发环境的依赖包。 四、其他npm命令 npm还有许多其他命令,如查询包安装路径、查询包信息、更新包、卸载包、配置管理等。这些命令可以帮助开发者更方便地管理和使用npm包。 总的来说,您的文章对npm的使用进行了全面而详细的介绍,对于初学者和需要复习的人来说都是非常有用的参考资料。
2023-02-27
138
0
0
Devops
前端
2023-02-27
vim编辑器使用
这是一篇关于 `vi` 和 `vim` 编辑器操作及其特性的摘要总结。以下是针对你给出的内容的摘要: **vi 和 vim 简介** * `vi` 和 `vim` 是文本编辑器,用于在 Linux 中进行文本编辑。它们具有强大的编辑功能,但学习曲线较陡峭。 **命令模式中的基本操作** * 模式切换:使用 `a`、`A`、`i`、`I`、`o` 和 `O` 等命令在当前光标位置进行插入或跳转操作。 * 移动光标:使用翻页、行内快速跳转和行间快速跳转等命令。 * 复制、粘贴和删除:使用 `x`、`dd`、`yy` 等命令进行字符、行或选定区域的复制、粘贴和删除操作。 * 查找文件内容:使用 `/` 或 `?` 命令进行正向或反向查找。 **撤销编辑及保存和退出** * 使用 `u` 撤销最近的操作,多次按 `u` 可逐步撤销。 * 使用 `ZZ` 保存当前文件并退出 vi 编辑器。 * 其他退出命令如 `ZQ` 不保存退出。 **字符编辑** * 使用 `r` 替换光标处的字符,`R` 进入 REPLACE 模式。 * 使用 `J` 删除当前行后的换行符。 **替换命令** * 使用 `s` 命令进行替换操作,可结合正则表达式和修饰符进行高级替换。 **vim 的工作特性** * 配置文件:`/etc/vimrc` 为全局配置,`~/.vimrc` 为个人配置。 * 扩展命令模式:某些命令只在当前 vim 进程有效。 * 行号显示和其他设置:如忽略字符大小写、自动缩进、复制保留格式等,可以通过 `set` 命令进行设置。 **末行模式中的基本操作** * 保存文件及退出 vi 编辑器,如 `:w /root/newfile` 保存,`:q!` 强制退出,`:wq` 或 `:x` 保存退出。 * 打开新文件或读入其他文件内容,使用 `:e` 命令。 * 地址定界:用于指定操作的范围,结合 d、y、w、r 等命令进行操作。 这只是对 `vi` 和 `vim` 编辑器的简单介绍和操作指南。为了完全掌握这些工具,建议深入学习和实践。
2023-02-27
104
0
0
Linux基础
基础知识
2023-02-27
系统目录说明
这是一个非常详细的Linux目录结构摘要,非常有助于理解Linux文件系统的组织方式。对于初学者来说,这是一个很好的学习资源。以下是针对您提供的摘要的简洁版本: 一、Linux目录主要分类: 1. 管理类目录:如/bin、/sbin、/var等,包含系统管理和运行时的文件。 2. 用户类目录:如/home,存放用户数据。 3. 应用程序类目录:如/usr,存放程序和相关数据。 4. 信息类目录:如/lost+found,存放意外删除的文件碎片。 二、部分重要目录详解: 1. /etc:存放系统配置文件。 2. /dev:设备文件。 3. /proc:系统信息和运行状态。 4. /usr:程序安装和共享数据。 5. /var:系统运行时变化的数据,如日志。 三、需要注意的目录: 1. /etc:重要系统配置文件所在地,包括开机自启动脚本。 2. /bin和/sbin:/bin存放普通用户执行的命令,/sbin存放管理员执行的命令。 3. /usr/local:用于安装第三方软件。 4. /home:用户家目录。 5. /var:系统运行时日志文件等可变数据的存放地。 理解Linux的文件系统结构对于系统管理和维护非常重要。希望这个简洁版本能帮助你更好地理解Linux目录结构。
2023-02-27
112
0
0
Linux基础
基础知识
1
...
6
7
8
...
18