Centos服务器接入Prometheus监控预警系统
在这篇技术博文中,我将详细介绍如何在 CentOS 系统上安装和配置 Prometheus 的一个重要组件 —— node_exporter。node_exporter 负责收集主机级别的性能指标,并将这些指标暴露给 Prometheus 服务器。我们还将介绍如何将这些监控数据接入到 Prometheus,并使用 Grafana 来创建一个漂亮的监控面板。 接下来,我们将一步步通过实际操作来完成整个过程。我会从 node_exporter 的安装和配置开始,然后配置 Prometheus 以收集 node_exporter 暴露的指标,最后通过 Grafana 创建仪表板来可视化这些指标。无论你是系统管理员还是开发人员,掌握这些技能都将有助于你更好地维护和优化你的系统。 环境准备 一定要注意各个组件的版本对应问题,博文在这方面吃了大亏,浪费了很多时间。 特别是 Grafana 版本 与 kafka-exporter 版本不能过高,不然不兼容,图标数据不展示 Prometheus版本: v2.36.2 Grafana版本: 9.1.2 Kafka版本:...
Docker快速部署完整监控预警系统
在本篇博文中,我们将探讨如何使用 Docker 快速部署 Prometheus 和 Grafana。Prometheus 是一个开源的监控和警报工具,而 Grafana 则是一个用于可视化监控数据的开源平台。通过结合使用这两个工具,您可以有效地监控您的 IT 基础设施,并通过美观的仪表板展示关键性能指标。 在现代的云计算和微服务架构中,有效的监控系统是不可或缺的。Prometheus 提供了强大的数据采集能力,而 Grafana 则提供了强大的数据可视化支持。使用 Docker 部署这些服务不仅可以简化安装过程,还能保证环境的一致性和可复制性。接下来,我们将一步步通过 Docker Compose 来安装和配置 Prometheus、 Grafana 和 Alertmanager。 环境准备 注意:版本最好与本文中的版本保持一致,避免后续集成监控kafka、redis等组件出现版本不兼容的问题(作者因为版本问题足足搞了一天) Centos7系统 docker docker-compose 环境准备可参考我的博文: #...
关闭CentOS上MySQL的二进制日志功能详解
MySQL 的二进制日志(binlog)用于记录数据库的所有更改操作,是主从复制和数据恢复的重要机制。但在某些场景下,比如不需要复制或想减轻系统负担时,可以选择关闭 binlog 功能。本文针对 CentOS 操作系统上的 MySQL 8.0 及以上版本,详细说明如何关闭二进制日志,并介绍相关注意事项。 定位 MySQL 配置文件MySQL 的主要配置文件通常存放在以下位置: /etc/my.cnf /etc/my.cnf.d/ 目录下的多个配置文件,如 server.cnf 你可以通过以下命令查找所有相关配置文件: 12sudo find /etc -name my.cnfsudo find /etc -name "*.cnf" 建议优先检查 /etc/my.cnf,如果配置较复杂,可能会分散到 /etc/my.cnf.d/ 下的多个文件。 修改配置关闭二进制日志使用你熟悉的文本编辑器打开目标配置文件。若使用 vi,例如: 1sudo vi /etc/my.cnf 或者 1sudo vi...
Flink用户ID高效处理:Roaring Bitmap与布隆过滤器+Redis
在实时大数据处理场景中,如何高效管理与快速查询海量用户ID是提升系统性能与稳定性的关键。Apache Flink作为流处理的核心引擎,面临着海量用户ID存储和快速判重的挑战。本文聚焦于两种高效的数据结构及其应用策略,帮助避免内存溢出(OOM),降低外部存储依赖,提升整体查询效率。 业务场景解析用户画像及相关业务通常需要实时从海量日志或外部系统中拉取用户ID集合,推送至Flink进行实时判定。判定过程需要高效判断流中每条数据的用户ID是否属于预先查询到的ID集合。直接将大规模ID集合保持于Flink内存会导致严重的资源瓶颈,且频繁访问外部存储如Redis,不但增加网络延迟还影响系统吞吐。因此,选择合适的内存存储方案与访问优化策略尤为重要。 优化方案详解Roaring Bitmap:整型用户ID的内存利器对于整型用户ID,Roaring Bitmap是一种理想的选择。作为增强型位图数据结构,它在稀疏整型数据上展现出极高的存储和查询效率。 内存占用极低:Roaring...
解决Flink提交任务时的LinkageError类加载冲突问题
在 Apache Flink 任务提交到 YARN 集群时,常常会遇到依赖冲突引发的类加载异常,典型表现是: 1Caused by: java.lang.LinkageError: loader constraint violation: loader (instance of org/apache/flink/util/ChildFirstClassLoader) previously initiated loading for a different type with name "org/apache/kafka/clients/consumer/ConsumerRecord" 这个错误通常表明 Flink 应用程序中的依赖与集群已有环境中的依赖版本发生冲突,导致 JVM 在加载类时无法明确使用哪个版本。本文将结合 Kafka 依赖冲突示例,分享两种可行的排查与解决方案,适用于类似的依赖重复或版本不一致问题。 操作场景复现使用如下命令将 Flink 应用作为 application 模式提交至 YARN: 1./bin/flink...
基于Gitee、Docker、Jenkins、SonarQube和Harbor的最简CI/CD流水线搭建
本文最终实现的效果是:只需要在idea中提交代码到git远程仓库后,登陆Jenkins点一下“立即构建”,即可可自动触发CI/CD流水线进行自动部署项目。 博主在网上教程的基础上,进行了进一步封装、简化了CI/CD的部署搭建教程。特点如下: 使用的docker、jenkins等组件版本都是最新的。 各个组件的镜像版本都是固定版本号的,不会因为后面官方更新镜像,导致教程失效。 编写shell脚本,帮助用户可以快速安装、配置各个组件(jenkins的插件、镜像、jenkins中使用docker等都已经帮助用户完成了) 没有任何坑(坑我的已经踩过了,跟着我的教程,百分百可以一遍过。 环境准备至少需要一台 Centos7 服务器,并都需要完成下面的配置要求: docker、 docker-compose...
CentOS系统用户管理入门指南
在CentOS系统中,用户管理是日常运维中的重要工作。本文将详细介绍如何创建新用户、设置密码、赋予sudo权限以及切换用户,帮助您高效、安全地管理系统用户。 创建新用户账户使用adduser命令可以便捷地创建一个新用户账户。示例如下: 1sudo adduser 用户名 该命令会自动创建用户的主目录及相关配置文件。 需要使用sudo权限执行该命令,确保有足够的权限来添加用户。 设置用户密码为新建用户设置登录密码,确保账户安全。执行以下命令: 1sudo passwd 用户名 系统会提示您输入并确认新密码。请设置一个强密码以保护用户账户不被非法访问。 授予sudo权限默认情况下,新用户无法执行需要管理员权限的操作。如果需要给予用户sudo权限,以允许其执行管理任务,可以将用户添加到wheel组: 1sudo usermod -aG wheel...
CentOS7与RockyLinux系统时间同步指南
系统时间的准确性对于服务器的稳定运行至关重要。无论是日志记录的准确性、安全认证的时效性,还是数据库事务与分布式系统的协调,时间均扮演关键角色。本文将全面介绍如何在 CentOS 7 和 Rocky Linux 9.4 上配置时间同步方案,重点对比传统工具 ntpdate 与现代工具 chrony 的使用方法和最佳实践,助您打造高效、稳定的服务器环境。 CentOS 7 上使用 ntpdate 进行时间同步在 CentOS 7 中,ntpdate 是一个常用但渐显过时的时间同步工具,适合快速手动同步系统时间,简洁易用但不适合长期自动同步。 安装 ntpdate1sudo yum install -y ntpdate 手动同步系统时间下面命令使用阿里云的 NTP 服务器作为时间源,立即同步系统时间: 1sudo ntpdate ntp.aliyun.com 同步硬件时钟为了确保硬件时钟(RTC)与系统时钟一致,建议执行: 1sudo hwclock --systohc 这有助于避免重启后时间偏差。 配置定时同步任务(可选)虽然不推荐频繁使用 ntpdate...
Rainbond在线快速一键安装K8s集群实战指南
新人学习k8s最难的第一步就是安装k8s集群,笔者为了找到一个省心省力的安装方式也是煞费苦心。前前后后使用过kubeadm、kubekey、rancher等方式,但是无不一存在的大大小小的坑, 属实让我吃了不少的罪。但是今天介绍的Rainbond,真的惊艳到了我,全程一二十分钟、零报错,一个k8s集群从0到1就起来了【当然也有坑,但是我已经解决了】。真的是小白的福利哦,下面就跟着我开始吧! 系统环境 最好之前把防火墙关闭 集群规划 完全可以不按照笔者的规则来,甚至只需要一个节点也可以 角色 IP地址 hostname 配置(最少) 主节点 10.0.0.87 master 2核4G 硬盘40G 普通节点1 10.0.0.88 node1 2核4G 硬盘40G 普通节点2 10.0.0.89 node2 2核4G 硬盘40G 普通节点3 10.0.0.90 node2 2核4G 硬盘40G 建议您的操作系统处于干净状态(不安装任何其他软件),否则可能会发生冲突。 集群安装成功后的版本情况: docker:...
Jenkins容器中如何使用Docker命令实现镜像构建
在基于 Jenkins 和 Docker 构建的 DevOps 流水线中,常见的需求是需要在 Jenkins 容器内部执行 Docker 命令,用于构建、打包镜像等操作。然而,由于 Jenkins 本身运行在容器中,Docker 环境也被隔离,直接调用 Docker 命令通常会失败。本文将重点介绍如何高效、安全地解决这一问题,实现容器内调用宿主机 Docker 引擎的最佳实践。 核心问题Jenkins 容器内的 Docker 命令执行失败,主要源于如下原因: 容器内缺少 Docker 客户端二进制文件 容器无法访问宿主机的 Docker 守护进程(docker daemon) 访问 docker.sock 权限受限 所以,解决方案实际上是让 Jenkins 容器通过共享宿主机环境的方式,调用宿主机的 Docker 引擎,而不是在容器内独立运行 Docker。 完整的 Docker Compose 配置示例以下是一个完整的示例docker-compose.yaml,展示如何部署可调用 Docker 的 Jenkins...