이전에 사용하던 vnstat 이라는 것이 있습니다.
서버를 운영하면서 하루에 500GB 트래픽을 찍으면 기분이 좋아지고 그런 것이 있죠 ㅎㅎ
vnstat 이라는 것으로 트래픽을 일 주 달 시간 등으로 나누어 확인할 수 있는 패키지입니다.
시작합니다.
-- 아래의 글은 U5PVR Debian 9 Stretch 에서 작성된 글입니다. 본래 8버전에서는 php5 가 설치됩니다.
1. apache2 php7 vnstat 설치하기
root@AOL-Debian:~# apt install apache2 libapache2-mod-php php php-gd vnstat
Reading package lists... Done
Building dependency tree
Reading state information... Done
apache2 is already the newest version (2.4.25-3+deb9u6).
apache2 set to manually installed.
The following packages were automatically installed and are no longer required:
libjsoncpp0 libmicrohttpd10 libupnpp4
Use 'apt autoremove' to remove them.
The following additional packages will be installed:
libapache2-mod-php7.0 libgd3 libxpm4 php-common php7.0 php7.0-cli php7.0-common php7.0-gd php7.0-json php7.0-opcache
php7.0-readline
Suggested packages:
php-pear libgd-tools vnstati
The following NEW packages will be installed:
libapache2-mod-php libapache2-mod-php7.0 libgd3 libxpm4 php php-common php-gd php7.0 php7.0-cli php7.0-common php7.0-gd
php7.0-json php7.0-opcache php7.0-readline vnstat
0 upgraded, 15 newly installed, 0 to remove and 6 not upgraded.
Need to get 3,078 kB of archives.
After this operation, 10.3 MB of additional disk space will be used.
Do you want to continue? [Y/n]
2. vnstat 설정하기
vnstat 을 실행하고 모니터링할 대상을 넣어줍니다.
root@AOL-Debian:~# vnstat
No database found, nothing to do. Use --help for help.
A new database can be created with the following command:
vnstat --create -i eth0
Replace 'eth0' with the interface that should be monitored.
The following interfaces are currently available:
wlan0 lo eth0 (1000 Mbit) teql0
# eth0 에 대해서 트래픽 모니터링을 걸어줍니다.
root@AOL-Debian:~# vnstat --create -i eth0
Creating database for interface "eth0"...
Info: -> A new database has been created.
Restart the vnStat daemon if it is currently running in order to start monitoring "eth0".
# 일정 기간 지나야 트래픽이 표시됩니다.
root@AOL-Debian:~# vnstat
eth0: Not enough data available yet.
# vnstat 계정을 aid_inet 그룹에 추가합니다.
root@AOL-Debian:~# adduser vnstat aid_inet
Adding user `vnstat' to group `aid_inet' ...
Adding user vnstat to group aid_inet
Done.
# 서비스를 시작합니다.
root@AOL-Debian:~# service vnstat restart
[ ok ] Stopping vnStat daemon: vnstatd.
[ ok ] Starting vnStat daemon: vnstatd.
# 실행 확인을 해줍니다.
root@AOL-Debian:~# ps -ef | grep vnstat
vnstat 27269 1 0 21:25 ? 00:00:00 /usr/sbin/vnstatd -d --pidfile /run/vnstat/vnstat.pid
root 27389 14114 0 21:26 pts/0 00:00:00 grep vnstat
--여담
대부분 프로세스나 서비스들을 가이드에 따르면, 이때까지 root 계정으로 실행해 왔습니다.
root 권한으로 프로세스가 돌게 되면 보안상 위험이 있지만, 이 이유는 아래와 같습니다.
1. 세팅 과정상 권한이 부족함에서 오는 에러 방지 (스트레스 방지)
--> 이후 익숙하시면 프로세스 실행 주체를 root 에서 다른 것으로 바꾸시면 됩니다.
2. 안드로이드 환경에 맞게 프로세스 실행 계정 통일
3. 리소스에 대한 우선권을 가지기 위함
# vnstat db 업데이트
root@AOL-Debian:~# vnstat -u
# 다시 명령 실행
root@AOL-Debian:~# vnstat
Database updated: Mon Apr 8 21:31:02 2019
eth0 since 04/08/2019
rx: 1.72 GiB tx: 373.91 MiB total: 2.09 GiB
monthly
rx | tx | total | avg. rate
------------------------+-------------+-------------+---------------
Apr '19 1.72 GiB | 373.91 MiB | 2.09 GiB | 26.98 kbit/s
------------------------+-------------+-------------+---------------
estimated 6.88 GiB | 1.45 GiB | 8.33 GiB |
daily
rx | tx | total | avg. rate
------------------------+-------------+-------------+---------------
today 1.72 GiB | 373.91 MiB | 2.09 GiB | 226.34 kbit/s
------------------------+-------------+-------------+---------------
estimated 1.92 GiB | 416 MiB | 2.33 GiB |
root@AOL-Debian:~#
실제로 vnstat 데몬이 알아서 DB 를 갱신하기 때문에 crontab 에 vnstat -u 명령을 넣을 필요는 없습니다.
기본 5분 단위로 되어 있는것 같습니다.
설정을 변경하시려면, /etc/vnstat.conf 파일을 수정하세요.
3. vnstat php web 설치하기
http://www.sqweek.com/sqweek/index.php?p=1
상기에서 배포중입니다.
일단 웹서버 설정을 건들이지 않고 매우 기본적이게 해보겠습니다.
기본적으로 웹서버 잘 구동되는 지 체크합니다.
다음으로 vnstat web 소스를 풀어 넣습니다.
# 웹 기본 루트로 이동합니다.
root@AOL-Debian:~# cd /var/www/html/
# 소스를 받습니다.
root@AOL-Debian:/var/www/html# wget http://www.sqweek.com/sqweek/files/vnstat_php_frontend-1.5.1.tar.gz
--2019-04-08 21:38:58-- http://www.sqweek.com/sqweek/files/vnstat_php_frontend-1.5.1.tar.gz
Resolving www.sqweek.com (www.sqweek.com)... 46.19.33.108
Connecting to www.sqweek.com (www.sqweek.com)|46.19.33.108|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 57460 (56K) [application/x-gzip]
Saving to: ‘vnstat_php_frontend-1.5.1.tar.gz’
vnstat_php_frontend-1.5.1.tar.g 100%[=======================================================>] 56.11K 96.6KB/s in 0.6s
2019-04-08 21:39:00 (96.6 KB/s) - ‘vnstat_php_frontend-1.5.1.tar.gz’ saved [57460/57460]
# 압축을 풀어줍니다.
root@AOL-Debian:/var/www/html# tar xf vnstat_php_frontend-1.5.1.tar.gz
# 잠시 파일 구조 눈치를 봅니다. (폴더 밑에 풀림, 필요없는 파일 삭제해야 됨!)
root@AOL-Debian:/var/www/html# ls
index.html vnstat_php_frontend-1.5.1 vnstat_php_frontend-1.5.1.tar.gz
# 필요없는 압축파일 index.html 파일 지웁니다.
root@AOL-Debian:/var/www/html# rm vnstat_php_frontend-1.5.1.tar.gz index.html
# 하위 폴더 파일을 상위 폴더로 이동합니다.
root@AOL-Debian:/var/www/html# mv vnstat_php_frontend-1.5.1/* .
# 빈폴더를 지웁니다.
root@AOL-Debian:/var/www/html# rm -rf vnstat_php_frontend-1.5.1/
작동을 확인합니다.
언어가 .. 음..
언어설정을 수정합니다.
root@AOL-Debian:/var/www/html# nano config.php
<?php
//
// vnStat PHP frontend (c)2006-2010 Bjorge Dijkstra (bjd@jooz.net)
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
//
// see file COPYING or at http://www.gnu.org/licenses/gpl.html
// for more information.
//
error_reporting(E_ALL | E_NOTICE);
//
// configuration parameters
//
// edit these to reflect your particular situation
//
$locale = 'en_US.UTF-8';
$language = 'en';
아래처럼 표기 됩니다.
차후에 몇일 데이터를 모아서 보여드리겠습니다.
감사합니다.
'서버 > 리눅스 서버' 카테고리의 다른 글
라즈베리파이 RTL8811CU 2.4/5G AC 와이파이 드라이버 설치하기 (0) | 2019.05.08 |
---|---|
리눅스 웹 기반 모니터링 툴 netdata 설치하기 (U5 SERIES) (0) | 2019.04.09 |
리눅스 네트워크 사용량 모니터링 하기 (U5MINI / U5PVR) (0) | 2019.04.08 |
구글 드라이브 마운트 (rclone, cache, api) (7) | 2019.03.18 |
[LTE드론프로젝트] TCP Gender Changer (릴레이 서버) (0) | 2019.03.05 |
댓글