前言

论坛也有好多mjj分享过各种各样的监控方案,但是基本上没有docker版的,并且很多也没有自动关机。
就怕被刷流量了,万一是在半夜刷的就算通知了也看不到,有自动关机还是保险一点。

特点

基于vnstat + docker的流量监控,可以配置流量达标后自动关机和通知,有企业微信WebHook和邮件通知方案 取的是当月流量,需要注意:vnstat是启动后才会记录,当月vnstat启动前服务器到底消耗了多少流量vnstat其实是不知道的 源码和Dockerfile都在这里,可以自己修改和编译:Github

使用

1.启动vnstat容器(用于监控流量)

指定web端口为 28685,首次开启数据会延迟5分钟显示,因为vnstat默认是5分钟统计一次流量。

shell

docker run -d --name vnstat \ --restart=always \ --network=host \ -e HTTP_PORT=28685 \ -e TZ=Asia/Shanghai \ vergoh/vnstat
Shell
就是监控的红框中的月份流量
notion image

2.启动监控程序

注意:网卡名称参数INTERFACE一定要指定否则不知道监控哪个网卡,每个服务器网卡名称都不一样,可以用ip a查看网卡
挂载dbus关机方式 + 企业微信通知 + 邮件通知(不支持Alpine系统)

shell

ocker run -d --name network-monitor --net=host --restart=always \ -v /proc/uptime:/proc/uptime \ -v /var/run/dbus/system_bus_socket:/var/run/dbus/system_bus_socket \ -e NAME=gcp \ -e HOST=127.0.0.1:28685 \ -e GB=180 \ -e INTERFACE=ens4 \ -e WXKEY=xxxxxxxxxxxx \ -e SHUTDOWN=yes \ -e SMTPEMAIL=[email protected] \ -e SMTPPWD=xxxxxx \ javaow/network-monitor
Shell
ssh关机方式 + 企业微信通知

shell

docker run -d --name network-monitor --net=host --restart=always \ -v /proc/uptime:/proc/uptime \ -e NAME=gcp \ -e HOST=127.0.0.1:28685 \ -e GB=180 \ -e INTERFACE=ens4 \ -e WXKEY=xxxxxxxxxxxx \ -e SHUTDOWN=yes \ -e SHUTDOWNTYPE=ssh \ -e SSHHOST=[email protected] \ -e SSHPWD=xxxxxx \ javaow/network-monitor
Shell

参数

关机方式有三种,使用SHUTDOWNTYPE参数指定

  1. host:二进制部署使用的方式,关机命令是 shutdown -h now(不能在容器环境使用)
  1. dbus:挂载宿主机system_bus_socket,通过dbus给宿主机发送关机命令(不支持Alpine系统)
  1. ssh:使用sshpass连接上ssh执行shutdown -h now(不局限于本机)

通知方式有二种

  1. 企业微信群机器人WebHook 我比较喜欢的一种方式,可以直接通知到微信,设置好机器人后拿到WebHook的Key就行了 设置方式参照这个:https://tower.im/help/articles/357
  1. 邮件通知 用的是smtp协议,我只测了qq邮箱,其他邮箱自测
notion image
notion image

镜像-e 参数

notion image
 
新解【本我、自我、超我、真我】甲骨文官方重装系统
Loading...
hexo