如何魔改vnstat-docker项目使其支持每1分钟采样?

文章目录

  • 一、概述
  • 二、官网参考
    • 1. 官网地址
    • 2. 查看打包过程
    • 3.打包命令
  • 三、修改过的文件
  • 四、部署运行
    • 1. 编排文件
    • 2. 运行效果

一、概述

接前文 网络流量监控神器vnStat初探 我们已经了解了vnStat的作用、使用和docker部署。

同时也了解到官方版本支持的采样统计间隔最小为5分钟级,现在我们有一个需求希望将采样统计间隔修改为分钟级,我们该怎么做呢?

二、官网参考

1. 官网地址

点击 vnstat-docker 进入官网,我们看到:
在这里插入图片描述
下载Dockerfile文件,该文件定义了镜像打包过程。

2. 查看打包过程

Dockerfile

FROM alpine:latest AS baseLABEL org.opencontainers.image.authors="Teemu Toivola"
LABEL org.opencontainers.image.url="https://humdi.net/vnstat/"
LABEL org.opencontainers.image.source="https://github.com/vergoh/vnstat-docker"
LABEL org.opencontainers.image.title="vnStat"
LABEL org.opencontainers.image.description="vnStat (https://humdi.net/vnstat/) in a container with image output via http"ENV HTTP_PORT=8685
ENV HTTP_BIND=*
ENV HTTP_LOG=/dev/stdout
ENV LARGE_FONTS=0
ENV CACHE_TIME=1
ENV RATE_UNIT=1
ENV INTERFACE_ORDER=0
ENV QUERY_MODE=0
ENV DARK_MODE=0
ENV PAGE_REFRESH=0
ENV RUN_VNSTATD=1COPY favicon.ico /var/www/localhost/htdocs/favicon.ico
COPY start.sh /RUN true \&& set -ex \&& apk add --no-cache \tzdata \gd \perl \lighttpd \sqlite-libs \curlFROM alpine:latest AS builderRUN true \&& set -ex \&& apk add --no-cache \gcc \make \musl-dev \linux-headers \gd-dev \sqlite-dev \&& wget https://humdi.net/vnstat/vnstat-latest.tar.gz \&& tar zxvf vnstat-latest.tar.gz \&& cd vnstat-*/ \&& ./configure --prefix=/usr --sysconfdir=/etc \&& make \&& make installFROM base AS runtimeCOPY --from=builder /usr/bin/vnstat /usr/bin/vnstat
COPY --from=builder /usr/bin/vnstati /usr/bin/vnstati
COPY --from=builder /usr/sbin/vnstatd /usr/sbin/vnstatd
COPY --from=builder /etc/vnstat.conf /etc/vnstat.conf
COPY --from=builder vnstat-*/examples/vnstat.cgi /var/www/localhost/htdocs/index.cgi
COPY --from=builder vnstat-*/examples/vnstat-json.cgi /var/www/localhost/htdocs/json.cgi
COPY --from=builder vnstat-*/examples/vnstat-metrics.cgi /var/www/localhost/htdocs/metrics.cgiRUN true \&& set -ex \&& addgroup -S vnstat  \&& adduser -S -h /var/lib/vnstat -s /sbin/nologin -g vnStat -D -H -G vnstat vnstatVOLUME /var/lib/vnstat
EXPOSE ${HTTP_PORT}CMD [ "/start.sh" ]

阅读此文件,注意到
在这里插入图片描述
此部分脚本实现了https://humdi.net/vnstat/vnstat-latest.tar.gz 源码下载与解压
我们提前下载源码,并修改脚本为:

COPY vnstat-latest.tar.gz \
&& tar zxvf vnstat-latest.tar.gz \

此代码与上面的管方代码功能基本等价,区别是我们需要提前将源码下载到本地

为啥这么做呢?

当然是为了方便我们在官方源码的基础上做修改

3.打包命令

在Dockerfile 文件同级目录新建build.sh文件,内容如下:

#!/bin/sh
docker build -t vergoh/vnstat:test .

执行下面的命令打包镜像

sh build.sh

三、修改过的文件

修改过程就不详细说明了,这边把修改结果文件放出来,方便有兴趣的同学研究! 阅读源码需要有一点C语言基础!

注意: vnstat-latest.bak.tar.gz 为官方原始文件,vnstat-latest.tar.gz为修改后的文件

https://gitcode.com/00fly/vnstat-docker/overview

在这里插入图片描述

四、部署运行

1. 编排文件

docker-compose.yml

version: "3.7"
services:vnstat-data:image: vergoh/vnstat:testcontainer_name: vnstatdeploy:resources:limits:cpus: '1.0'memory: 10Mreservations:cpus: '0.80'memory: 6Mrestart: unless-stoppednetwork_mode: "host"volumes:- /etc/localtime:/etc/localtime:ro- /etc/timezone:/etc/timezone:ro- ./vnstatdb:/var/lib/vnstatenvironment:- HTTP_PORT=0- EXCLUDE_PATTERN=^docker|^veth|^br-logging:driver: 'json-file'options:max-size: '5m'max-file: '1'vnstat-web:image: vergoh/vnstat:testcontainer_name: vnstat-webdeploy:resources:limits:cpus: '1.0'memory: 20Mreservations:cpus: '0.80'memory: 10Mrestart: unless-stoppedports:- 8086:8685volumes:- /etc/localtime:/etc/localtime:ro- /etc/timezone:/etc/timezone:ro- ./vnstatdb:/var/lib/vnstat:roenvironment:- HTTP_PORT=8685- HTTP_LOG=/dev/stdout- LARGE_FONTS=0- CACHE_TIME=1- RATE_UNIT=1- INTERFACE_ORDER=0- QUERY_MODE=0- DARK_MODE=0- PAGE_REFRESH=30- RUN_VNSTATD=0logging:driver: 'json-file'options:max-size: '5m'max-file: '1'

2. 运行效果

http://124.71.129.204:8086/?s-0-5

在这里插入图片描述

有任何问题和建议,都可以向我提问讨论,大家一起进步,谢谢!

-over-

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/43655.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用tkinter拖入excel文件并显示

使用tkinter拖入excel文件并显示 效果代码 效果 代码 import tkinter as tk from tkinter import ttk from tkinterdnd2 import TkinterDnD, DND_FILES import pandas as pdclass ExcelViewerApp(TkinterDnD.Tk):def __init__(self):super().__init__()self.title("Excel…

C# Bitmap类型与Byte[]类型相互转化详解与示例

文章目录 一、Bitmap类型转Byte[]类型使用Bitmap类的Save方法使用Bitmap类的GetBytes方法 二、Byte[]类型转Bitmap类型使用MemoryStream将Byte[]数组转换为Bitmap对象使用System.Drawing.Imaging.BitmapImage类 总结 在C#编程中,Bitmap类型和Byte[]类型之间的相互转…

Linux:进程间通信(二.共享内存详细讲解以及小项目使用和相关指令、消息队列、信号量)

Linux:进程间通信(二.共享内存详细讲解以及小项目使用和相关指令、消息队列、信号量) 上次结束了进程间通信一:Linux:进程间通信(一.初识进程间通信、匿名管道与命名管道、共享内存) 文章目录 …

C++进阶:继承和多态

文章目录 ❤️继承🩷继承与友元🧡继承和静态成员💛菱形继承及菱形虚拟继承💚继承和组合 ❤️多态🩷什么是多态?🧡多态的定义以及实现💛虚函数💚虚函数的重写&#x1f499…

吴恩达机器学习作业ex8:K 异常检测和推荐系统(Python实现)详细注释

文章目录 1 异常检测1.1 高斯分布1.2 估计高斯参数1.3 选择阈值 ε1.4 高维数据集 2 推荐系统2.1 电影评分数据集2.2 协作过滤学习算法2.2.1 协同过滤成本函数2.2.2 梯度协同过滤2.2.3 Regularized cost function2.2.4 正则梯度 2.3 学习电影推荐2.3.1 推荐 后记 1 异常检测 在…

c++入门基础篇(上)

前言: 我们在之前学完了c语言的大部分语法知识,是不是意味着我们可以马上从事开发呢?其实行业中的绝大部分岗位都用不到c语言,那我们为什么要学c语言呢。c语言虽然和我们日常开发没有很大的关系,但是学习c语言可以为我…

14.x86游戏实战-汇编指令cmp test

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 本次游戏没法给 内容参考于:微尘网络安全 工具下载: 链接:https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd6tw3 提…

LLm与微调

推荐尝试的微调模型 internlm2-20b-chat,internlm2-7b-chat, Qwen2-7B-Instruct, Qwen2-1.5B-Instruct, Qwen1.5-32B-Chat (Qwen2-0.5B、Qwen2-1.5B, qwen1.5的4B,7B,14B,32B) glm-4-9b-chat, glm-4-9b-chat-1m, gl…

SLAM相关知识

目前在SLAM上的传感器主要分为两大类:激光雷达和摄像头 激光雷达:单线、多线 摄像头:单目相机(普通USB相机)、双目相机(2个普通的USB相机)、单目结构光(深度相机)、双目…

【二】Ubuntu24虚拟机在Mac OS的VMware Fusion下无法联网问题

文章目录 1.环境背景2. 需求背景3. 解决方法3.1 在mac的终端查看虚拟机NAT网络3.2 查看unbuntu节点2的网络配置3.3 问题定位与解决3.3.1 检查是否有冲突3.3.2 冲突解决方法 4. 总结4.1 NAT 网关的原理4.2 VMware Fusion 的 NAT 模式4.3 为什么网关冲突会引起问题4.4 理解配置冲…

AutoHotKey自动热键(五)添加WINDOWS秘笈指令-输入瞬间启动功能

在AUTOHOTKEY的使用中,不仅仅可以监听组合热键,还可以监听正常文本击键录入,这是另一种监听方式,比如依次击键jsq之后直接弹出<计算器>工具,或者依次击键sj之后直接输出135****5564的手机号码,等等,这就是autohotkey的录入击键监听,以双冒号为开头:: 因这种录入监听像极了…

【UE5】仅修改结构体的若干个数据

蓝图中的结构体变量 | 虚幻引擎4.27文档 (unrealengine.com) 连线连到傻&#xff0c;因为如果某个变量set空值也一起过去了。一查发现有这个节点。

EEG源定位(EEG Source Localization)

EEG源定位&#xff08;EEG Source Localization&#xff09;是一种用于确定大脑内部电活动来源的方法。通过在头皮上记录的电信号&#xff08;EEG&#xff09;&#xff0c;源定位技术可以推断这些信号的起源&#xff0c;即确定大脑中的哪些区域产生了这些电活动。这对于理解大脑…

【面向就业的Linux的基础】从入门到熟练,探索Linux的秘密(十三)-常用的命令

上述是一些系统命令的基本练习&#xff0c;可以当做日常笔记学习收藏一下&#xff01;&#xff01;&#xff01; 目录 前言 一、文件权限 二、文件检索 三、查看文件内容 四、用户相关 五、工具 六、安装软件 七、作业​​​​​​​ 总结 前言 上述是一些系统命令的…

简单仿写MVC

代码地址&#xff08;需要自取&#xff09;&#xff1a;mvc_Imitation: 简单仿写实现MVC (gitee.com) 项目目录 先把架子搭好 Controller注解 Documented Retention(RetentionPolicy.RUNTIME) Target(ElementType.TYPE) public interface Controller { }RequestMapping Do…

大模型lora微调中,rank参数代表什么,怎么选择合适的rank参数

在大模型的LoRA&#xff08;Low-Rank Adaptation&#xff09;微调中&#xff0c;rank参数&#xff08;秩&#xff09;是一个关键的超参数&#xff0c;它决定了微调过程中引入的低秩矩阵的维度。具体来说&#xff0c;rank参数r表示将原始权重矩阵分解成两个低秩矩阵的维度&#…

互助学习平台小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;学生管理&#xff0c;课程信息管理&#xff0c;课程分类管理&#xff0c;课程评价管理&#xff0c;学习计划管理&#xff0c;留言板管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;课程信息…

Databend 开源周报第 152 期

Databend 是一款现代云数仓。专为弹性和高效设计&#xff0c;为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务&#xff1a;https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展&#xff0c;遇到更贴近你心意的 Databend。 支持内置 UDFs …

数学建模美赛入门

数学建模需要的学科知识 高等数学线性代数 有很多算法的掌握是需要高等数学和线代的相关知识 如&#xff1a;灰色预测模型需要微积分知识&#xff1b;神经网络需要用到导数知识&#xff1b;图论和层次分析法等都需要用到矩阵计算的相关知识等&#xff1b; 概率论与数理统计&am…

忘记Apple ID密码怎么退出苹果ID账号?

忘记Apple ID密码怎么退出账号&#xff1f;Apple ID对每个苹果用户来说都是必不可少的&#xff0c;没有它&#xff0c;用户就不能享受iCloud、App Store、iTunes等服务。苹果手机软件下载、丢失解锁、恢复出厂设置等都需要使用Apple ID。如果忘记Apple ID 密码&#xff0c;这会…