上级 项目
type
status
date
slug
summary
password
子级 项目
tags
category
一款基于Golang的Linux流量统计与提醒工具,支持telegram消息和自动关机。
开源程序,项目地址:
依赖:
- Linux系统
- root权限
- 一个telegram机器人
使用教程
下载与重命名
浏览器打开程序的发布页 https://github.com/nodeseeker/netMonitor/releases,在列表中找到对应CPU架构(如下图),比如x86_64的Linux系统,下载
netmonitor-linux-amd64
,而aarch64/arm64的Linux系统,则下载netmonitor-linux-arm64
。随后将程序重命名为
netmonitor
,Linux命令为:mv netmonitor-linux-* netmonitor
文件夹与路径
新建一个文件夹用于储存程序和相关配置文件,以
/opt/
为例:配置文件
在
/opt/NetMonitor
文件夹下,使用vim/nano或者任意编辑器,填写下面内容到config.json
配置文件中。- 需要一个设备名称(即
device
对应的名称),用于在发送消息时区别信息来源,以下的示例的名称为test.example.com
。
- 使用
ip a
查找需要监控的网卡(即interface
对应的网卡名称),输出内容示例如下,一般是lo
下的第一个网卡,名称一般是eth0
或enp3s0
之类的,以下示例是eth0
:
interval
为更新时间,单位为秒,默认每60秒更新一次流量统计信息。
start_day
是流量的更新时间,有些VPS的销售系统默认月初更新,有的是根据购买时间更新,按照实际情况即可。示例为每月9号更新一次,只需要填写日期,即1-31的某一天。
statistics
的子项是以字节bytes
为单位的流量统计信息,首次配置的时候,将last_reset
改为上次流量充值时间,采用yyyy-mm-dd
格式,其他项为0,不需要改动。
comparison
中的category
有三个选项。其一,upload
为单向统计上传流量;其二,download
为单向统计下载流量;其三,upload+download
为双向统计流量。实际使用哪个,依据商家/机房/自己的流量统计需求填写。limit
是设置的流量限制,单位为GB;threshold
是发消息提醒的阈值,以配置为例,当流量达到200×0.85=170GB的时候,会通过电报发送消息提醒;ratio
为自动关系的阈值,以配置为例,当流量达到200×0.95=190GB的时候,系统会自动关机,并在关机的前30秒发送关机提醒。
nessage
中的token
和chat_id
为telegram机器人的密钥和聊天ID,按照实际情况填写。其他的选项,默认false即可,会在月周期之后自动重置,不需要手动修改。
开机自启动
新建一个systemctl的文件:
向其写入以下内容,如果工作文件夹不是以上默认,需要进行对应的修改:
随后,设置开机自启并启动:
此外,还可以重启或者查看程序运行状态:
运行情况示例
程序运行状态查看
消息提醒
常见问题
其他CPU架构
纯
golang
实现,适配所有golang
支持的CPU架构上,例如:龙芯loong64,RISC-V(64位)等,只需自行编译。以下为编译示例:其他系统
程序读取
/proc/net/dev
信息进行统计,理论上支持Unix系统的部分发行版,例如freeBSD
等。家穷,用不起BSD或者MacOS,故没有编译程序也没有做适配。- 作者:团子
- 链接:https://ikun.su//article/NetMonitor
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章