多种工具协同创建一个基于CentOS,包含最新版本sysstat的镜像

2024-02-21 03:59

本文主要是介绍多种工具协同创建一个基于CentOS,包含最新版本sysstat的镜像,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

服务器上部署了sysstat,通过sar可以保留系统监控记录,从服务器下载数据在别处分析时,不是很方便,因此考虑构建一个方便使用的Docker镜像辅助工作。

sysstat: https://github.com/sysstat/sysstat

1. Bing AI 创建 Dockerfile

直接让 AI 帮忙写 Dockerfile
在这里插入图片描述
内容复制如下:

# 基于CentOS7镜像
FROM centos:7# 安装git和编译工具
RUN yum install -y git gcc make# 通过git克隆sysstat仓库
RUN git clone https://github.com/sysstat/sysstat.git# 进入sysstat目录,编译并安装
WORKDIR /sysstat
RUN ./configure && make && make install# 清理缓存数据和源码
RUN yum clean all && rm -rf /sysstat

创建完成后在我本地构建过程中,git clone 下载不了,换一种方式构建。

2. GitHub Codespaces

2.1 打开 sysstat 的页面,创建一个运行环境

在这里插入图片描述

2.2 检查一下是否支持 docker 环境

@abel533 ➜ /workspaces/sysstat (master) $ docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

2.3 创建 Dockerfile

没有问题,从左侧资源管理器创建 Dockerfile,输入上面的内容。
在这里插入图片描述

为了方便我本地使用,把CentOS镜像版本从7改成了具体的7.6.1810

2.4 执行命令构建

@abel533 ➜ /workspaces/sysstat (master) $ docker build -t sysstat:23-0323 .
[+] Building 79.1s (11/11) FINISHED                                                                                                                                                                                => [internal] load build definition from Dockerfile                                                                                                                                                          0.5s=> => transferring dockerfile: 398B                                                                                                                                                                          0.0s=> [internal] load .dockerignore                                                                                                                                                                             0.4s=> => transferring context: 2B                                                                                                                                                                               0.1s=> [internal] load metadata for docker.io/library/centos:7.6.1810                                                                                                                                            3.0s=> [auth] library/centos:pull token for registry-1.docker.io                                                                                                                                                 0.0s=> [1/6] FROM docker.io/library/centos:7.6.1810@sha256:62d9e1c2daa91166139b51577fe4f4f6b4cc41a3a2c7fc36bd895e2a17a3e4e6                                                                                      4.9s=> => resolve docker.io/library/centos:7.6.1810@sha256:62d9e1c2daa91166139b51577fe4f4f6b4cc41a3a2c7fc36bd895e2a17a3e4e6                                                                                      0.1s=> => sha256:62d9e1c2daa91166139b51577fe4f4f6b4cc41a3a2c7fc36bd895e2a17a3e4e6 534B / 534B                                                                                                                    0.0s=> => sha256:747b2de199b6197a26eb1a24d69740d25483995842b2d2f75824095e9d1d19eb 529B / 529B                                                                                                                    0.0s=> => sha256:f1cb7c7d58b73eac859c395882eec49d50651244e342cd6c68a5c7809785f427 2.18kB / 2.18kB                                                                                                                0.0s=> => sha256:ac9208207adaac3a48e54a4dc6b49c69e78c3072d2b3add7efdabf814db2133b 75.16MB / 75.16MB                                                                                                              0.9s=> => extracting sha256:ac9208207adaac3a48e54a4dc6b49c69e78c3072d2b3add7efdabf814db2133b                                                                                                                     3.0s=> [2/6] RUN yum install -y git gcc make                                                                                                                                                                    46.6s=> [3/6] RUN git clone https://github.com/sysstat/sysstat.git                                                                                                                                                3.7s=> [4/6] WORKDIR /sysstat                                                                                                                                                                                    0.3s => [5/6] RUN ./configure && make && make install                                                                                                                                                            13.0s => [6/6] RUN yum clean all && rm -rf /sysstat                                                                                                                                                                1.5s => exporting to image                                                                                                                                                                                        5.2s => => exporting layers                                                                                                                                                                                       5.2s => => writing image sha256:03d82c85a1f5df4f21558e8d43a9632a1119b6a4d52456ed3139bf76fb72c349                                                                                                                  0.0s => => naming to docker.io/library/sysstat:23-0323               

2.5 运行镜像验证一下功能

@abel533 ➜ /workspaces/sysstat (master) $ docker run -it --rm sysstat:23-0323 /bin/bash
[root@38451f6af593 sysstat]# sar 1 10
Linux 5.4.0-1104-azure (38451f6af593)   03/23/23        _x86_64_        (2 CPU)02:17:43        CPU     %user     %nice   %system   %iowait    %steal     %idle
02:17:44        all      3.54      0.00      5.05      0.00      0.00     91.41
02:17:45        all      0.51      0.00      1.02      0.00      0.00     98.47
02:17:46        all      1.51      0.00      4.02      0.50      0.00     93.97
02:17:47        all      7.69      0.00      6.67      0.00      0.00     85.64
02:17:48        all     16.24      0.00      6.09      0.00      0.00     77.66
02:17:49        all      3.54      0.00      2.02      0.00      0.00     94.44
02:17:50        all      2.02      0.00      3.03      0.00      0.00     94.95
02:17:51        all      1.02      0.00      1.02      0.00      0.00     97.97
02:17:52        all      2.54      0.00      3.55      0.00      0.00     93.91
02:17:53        all      2.01      0.00      2.51      0.00      0.00     95.48
Average:        all      4.05      0.00      3.50      0.05      0.00     92.40

2.6 推送镜像

在DockerHub创建一个公开的镜像,重新命名tag:

docker tag sysstat:23-0323 abel533/sysstat:23.03.23

登录Docker

docker login -u用户名 -p密码

推送镜像

@abel533 ➜ /workspaces/sysstat (master) $ docker push abel533/sysstat:23.03.23
The push refers to repository [docker.io/abel533/sysstat]
68867ac04a78: Pushed 
574e22f85afb: Pushed 
5f70bf18a086: Pushed 
b5e26a4e7785: Pushed 
6a7f717fb326: Pushed 
89169d87dbe2: Pushed 
23.03.23: digest: sha256:e5fdcb8c11f34a43e96e25ffef4572cc71113a47691980655f47871ef981346d size: 1581

至此完成了一个最新版本的 sysstat 镜像。

3. 镜像地址

如果有需要,你可以直接下载该镜像使用:

https://hub.docker.com/r/abel533/sysstat/tags

在这里插入图片描述

4. 特别注意

在Windows上使用时,如果挂载本地目录到容器使用时,WSL2 在容器和宿主机操作文件非常的慢(几乎没有反应),建议把文件拷到容器其他目录进行操作,输出到容器目录(速度特别快),然后在拷贝到挂载的本地目录中。

想要将sar导出为svg图表时,可以参考下面的命令使用:

# 设置起止时间
sadf -s 8:30:00 -e 17:30:00 -t -g sa27 -- -A > sa27.svg# 不设置时间
sadf -t -g sa27 -- -A > sa27.svg# 不同系统的时间不一样,如果使用 -t 起至时间不是0时,可以改成 -T 试试

产生的图表示例如下:
在这里插入图片描述
上面 -- -A 包含了所有的监控数据,上图有缩放,下图是一个没缩放的系统负载图:
在这里插入图片描述

这篇关于多种工具协同创建一个基于CentOS,包含最新版本sysstat的镜像的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/730503

相关文章

Ubuntu如何升级Python版本

《Ubuntu如何升级Python版本》Ubuntu22.04Docker中,安装Python3.11后,使用update-alternatives设置为默认版本,最后用python3-V验证... 目China编程录问题描述前提环境解决方法总结问题描述Ubuntu22.04系统自带python3.10,想升级

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

Spring创建Bean的八种主要方式详解

《Spring创建Bean的八种主要方式详解》Spring(尤其是SpringBoot)提供了多种方式来让容器创建和管理Bean,@Component、@Configuration+@Bean、@En... 目录引言一、Spring 创建 Bean 的 8 种主要方式1. @Component 及其衍生注解

MySQL 数据库表操作完全指南:创建、读取、更新与删除实战

《MySQL数据库表操作完全指南:创建、读取、更新与删除实战》本文系统讲解MySQL表的增删查改(CURD)操作,涵盖创建、更新、查询、删除及插入查询结果,也是贯穿各类项目开发全流程的基础数据交互原... 目录mysql系列前言一、Create(创建)并插入数据1.1 单行数据 + 全列插入1.2 多行数据

Linux查询服务器系统版本号的多种方法

《Linux查询服务器系统版本号的多种方法》在Linux系统管理和维护工作中,了解当前操作系统的版本信息是最基础也是最重要的操作之一,系统版本不仅关系到软件兼容性、安全更新策略,还直接影响到故障排查和... 目录一、引言:系统版本查询的重要性二、基础命令解析:cat /etc/Centos-release详

Conda国内镜像源及配置过程

《Conda国内镜像源及配置过程》文章介绍Conda镜像源使用方法,涵盖临时指定单个/多个源、永久配置及恢复默认设置,同时说明main(官方稳定)、free(逐渐弃用)、conda-forge(社区更... 目录一、Conda国内镜像源二、Conda临时使用镜像源指定单个源临时指定多个源创建环境时临时指定源

MySQL 临时表创建与使用详细说明

《MySQL临时表创建与使用详细说明》MySQL临时表是存储在内存或磁盘的临时数据表,会话结束时自动销毁,适合存储中间计算结果或临时数据集,其名称以#开头(如#TempTable),本文给大家介绍M... 目录mysql 临时表详细说明1.定义2.核心特性3.创建与使用4.典型应用场景5.生命周期管理6.注

MyBatis的xml中字符串类型判空与非字符串类型判空处理方式(最新整理)

《MyBatis的xml中字符串类型判空与非字符串类型判空处理方式(最新整理)》本文给大家介绍MyBatis的xml中字符串类型判空与非字符串类型判空处理方式,本文给大家介绍的非常详细,对大家的学习或... 目录完整 Hutool 写法版本对比优化为什么status变成Long?为什么 price 没事?怎

MySQL慢查询工具的使用小结

《MySQL慢查询工具的使用小结》使用MySQL的慢查询工具可以帮助开发者识别和优化性能不佳的SQL查询,本文就来介绍一下MySQL的慢查询工具,具有一定的参考价值,感兴趣的可以了解一下... 目录一、启用慢查询日志1.1 编辑mysql配置文件1.2 重启MySQL服务二、配置动态参数(可选)三、分析慢查

MySQL的触发器全解析(创建、查看触发器)

《MySQL的触发器全解析(创建、查看触发器)》MySQL触发器是与表关联的存储程序,当INSERT/UPDATE/DELETE事件发生时自动执行,用于维护数据一致性、日志记录和校验,优点包括自动执行... 目录触发器的概念:创建触www.chinasem.cn发器:查看触发器:查看当前数据库的所有触发器的定