월별 발신 트래픽 제한

월별 발신 트래픽 제한

저는 한 달 동안 나가는 트래픽을 제한하고 트래픽이 초과되면 요금이 청구되는 가상 서버 요금제를 연구하고 있습니다.

나가는 트래픽을 자동으로 추적하여 서비스가 한도에 가까워지면 자동으로 중지할 수 있도록 하고 싶습니다.

Linux에서 이를 달성하기 위해 어떤 도구를 사용할 수 있습니까?

감사해요!

답변1

글쎄요, 제한 사항이 무엇인지, 스크립팅 능력이 무엇인지 모르더라도 여기에 제안 사항이 있습니다.

설치 vnstat- Ubuntu에서는 포함된 악마 프로세스가 자동으로 시작되어 네트워크 모니터링이 즉시 시작됩니다(컨텐츠 스누핑이 아닌 트래픽 통계에만 해당).

다음과 같이 대화형으로 볼 수 있습니다.

vnstat
Database updated: 2023-09-30 09:40:00

   enp0s31f6 since 2023-09-30

          rx:  7.85 GiB      tx:  93.23 MiB      total:  7.94 GiB

   monthly
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
       2023-09      7.85 GiB |   93.23 MiB |    7.94 GiB |   26.88 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated      8.02 GiB |   93.93 MiB |    8.11 GiB |

   daily
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
         today      7.85 GiB |   93.23 MiB |    7.94 GiB |    1.96 Mbit/s
     ------------------------+-------------+-------------+---------------
     estimated     19.48 GiB |  231.46 MiB |   19.71 GiB |

명령줄 스위치를 사용하여 전송된 데이터만 추출할 수도 있습니다(예: awk. 아래 예에서는 전송되는 111MB의 데이터를 살펴봅니다.

vnstat --oneline b |awk -F';' '{print $10/1024/1024}'
111.726

이것을 cron에서 실행하는 쉘 스크립트에 붙여넣고 5분마다 전송 볼륨을 임계값과 비교한 다음 스크립트가 서비스를 중지하도록 할 수 있습니다. 한 달 동안 5GB의 발신 트래픽을 허용한다고 가정해 보겠습니다.

#!/bin/bash
[  $(/usr/bin/vnstat --oneline b |/usr/bin/awk -F';' '{printf "%d", $10/1024/1024}') -gt 5000 ] && /usr/bin/systemctl stop service

넣어 root두면 crontab웃을 것입니다.

답변2

그라파나 + 프로메테우스.

시스템/서버에 이를 설정하고 클라이언트 시스템에 prometheus-node-exporter를 설치하십시오. 그런 다음 Grafana에서는 유출되는 데이터 양과 같은 특정 임계값에 도달하면 사용자 지정 경고를 작성할 수 있습니다.

관련 정보