검색 엔진의 방문이 늘어나고 있군...

Posted
Filed under 프로그램과 명령어/모니터링
참조 원문: Monitor disk io on linux server with iotop and cron

  iotop을 그냥 실행하면 프로세스들의 디스크IO 현황을 보여줍니다. 여기서 cron을 사용하여 지속적으로 현황을 기록한 후 분석하는 것이 이 글의 목표입니다. 이 글에서는 cron을 통해 iotop을 백그라운드로 실행하여 디스크IO 현황을 파일로 기록합니다. 아래는 cron에 적용할 명령어와 출력 예제입니다.
$ iotop -botqqqk --iter=60
17:38:13   335 be/3 root        0.00 K/s    7.64 K/s  0.00 %  2.30 % [jbd2/sda6-8]
17:38:13  3296 be/4 enlighte    0.00 K/s   15.28 K/s  0.00 %  0.00 % chrome
17:38:14   335 be/3 root        0.00 K/s    7.62 K/s  0.00 %  3.35 % [jbd2/sda6-8]
17:38:14  3293 be/4 enlighte    0.00 K/s    7.62 K/s  0.00 %  0.02 % chrome
17:38:15  3319 be/4 enlighte    0.00 K/s   19.09 K/s  0.00 %  0.00 % chrome
  iotop을 실행하기 위해선 root 권한이 있어야 하므로 우분투 계열에서 시험해보려면 sudo 명령어가 필요합니다. 위 옵션 중 가장 중요한 것은 "b"로서 배치 모드로 실행하게 만듭니다. 배치 모드일 때는 한 화면에 지속적으로 출력을 갱신시키지 않고 결과를 그대로 출력합니다. 이를 통해 일정 기간 동안의 IO 사용률을 기록할 수 있습니다. "o" 옵션은 실제로 IO가 발생한 프로세스들만 출력시키는 옵션입니다. 이 옵션을 주지 않으면 모든 프로세스가 출력되어 필요하지 않은 내용까지 출력됩니다. "t" 옵션은 출력에 시간을 포함시키는 역할을 합니다. "k" 옵션은 모든 크기 수치를 킬로바이트로 표시하게 합니다.

  출력 내용을 기록하기 위해 간단히 파일로 리다이렉트를 할 겁니다. 위치는 /var/log, 파일명은 iotop로 할 것입니다.
$ iotop -botqqqk --iter=60 >> /var/log/iotop
  이 명령어를 실행하면 1초당 1번씩 총 60번의 iotop 출력 결과가 /var/log/iotop 파일에 기록됩니다. 그러므로 이 명령어는 cron을 통해 매분 실행해야 합니다. root 권한으로 /etc/cron.d/iotop 파일을 생성하여 아래의 내용을 넣습니다.
* * * * * root /usr/sbin/iotop -botqqqk --iter=60 >> /var/log/iotop
  이제 cron이 매분 위 명령어를 실행할 것이며 그때마다 1분 동안 1초마다 샘플을 수집하여 모든 IO 활동을 /var/log/iotop에 기록합니다. 행여나 프로그램의 경로가 위와 다를 수 있으니 which 명령어를 통해 iotop이 있는 위치를 확인합니다.
$ which iotop
/usr/sbin/iotop
  이제 출력 결과 중 디스크IO가 10K/s 이상인 것들만 기록하도록 실행 명령어를 변경해보겠습니다.
$ sudo iotop -botqqqk --iter=60 | grep -P "\d\d\.\d\d K/s"
17:49:02   335 be/3 root        0.00 K/s   41.90 K/s  0.00 %  8.43 % [jbd2/sda6-8]
17:49:02  3307 be/4 enlighte    0.00 K/s  152.36 K/s  0.00 %  0.87 % chrome
17:49:10  3310 be/4 enlighte    0.00 K/s   22.80 K/s  0.00 %  0.10 % chrome
17:49:15  3319 be/4 enlighte    0.00 K/s   26.54 K/s  0.00 %  2.50 % chrome
17:49:16  3310 be/4 enlighte    0.00 K/s   19.02 K/s  0.00 %  0.00 % chrome
  정규식 부분만 바꾸면 원하는 조건으로 쉽게 추출할 수 있습니다. 예를 들어 1M/s 이상만 추출하고 싶다면 정수 부분을 위의 2개에서 4개로만 바꾸면 됩니다.

  위의 명령어를 이전에 생성한 cron 파일에 적용합니다.
* * * * * root /usr/sbin/iotop -botqqqk --iter=60 | grep -P "\d\d\.\d\d K/s"  >> /var/log/iotop
  아래는 그 결과의 예입니다.
13:19:01  1325 be/4 root        0.00 K/s 1897.74 K/s  0.00 %  5.65 % [kjournald]
13:24:22  2836 be/4 mysql       0.00 K/s 1071.07 K/s  0.00 %  0.18 % mysqld
13:32:01  1325 be/4 root        0.00 K/s 1469.17 K/s  0.00 %  7.13 % [kjournald]
13:46:18 10978 be/4 binary   1634.31 K/s    0.00 K/s  0.00 % 23.87 % php-fpm: pool binary
13:47:01  2955 be/4 mysql       0.00 K/s 8738.80 K/s  0.00 %  0.00 % mysqld
14:17:01  1325 be/4 root        0.00 K/s 1354.01 K/s  0.00 %  6.84 % [kjournald]
14:23:02  1325 be/4 root        0.00 K/s 1146.18 K/s  0.00 %  4.69 % [kjournald]
14:25:01  1325 be/4 root        0.00 K/s 1494.21 K/s  0.00 % 11.05 % [kjournald]
14:34:01  9938 be/4 mysql       0.00 K/s 2878.55 K/s  0.00 %  0.00 % mysqld
14:36:01  9424 be/4 mysql       0.00 K/s 2694.21 K/s  0.00 %  0.00 % mysqld
  여기에 추가로 logrotate를 사용하여 매주 로그 파일을 교체해주면 더 좋습니다. /etc/logrotate.d/iotop 파일을 생성하여 아래 내용을 넣기만 하면 됩니다.
/var/log/iotop.log {
weekly
compress
notifempty
missingok
}
2013/10/25 11:20 2013/10/25 11:20
Posted
Filed under 프로그램과 명령어/모니터링
참조 원문 : Visualize log files using gltail on CentOS RHEL Fedora Debian Ubuntu
관련 글 : [리눅스] 접속 로그를 실시간으로 시각화해서 보여주는 Logstalgia

  gltail은 얼마 전에 소개한 Logstalgia와 비슷한 프로그램으로 SSH를 이용해 원하는 서버의 로그 파일을 실시간으로 시각화해서 보여주는 프로그램입니다. 아래는 프로그램의 주요 특징입니다.
  • 실시간
  • 다수의 서버에 있는 다수의 로그 파일 처리 가능
  • 레이아웃 설정 가능
  • 다양한 로그 파일 분석 능력(Apache, Rails, IIS, Postfix/spamd/clamd, Nginx, Squid, PostgreSQL, PureFTPD, MySQL, TShark, qmail/vmpop3d)
  • 커스텀 이벤트
  • 비율, 총, 평균 값 출력
  • 'tail'을 할 수 있다면 뭐든 시각화 가능
  • Ruby로 작성했으며 net-ssh, chipmunk, ruby-opengl을 사용
  • 무료(GPLv2)

1. 필요한 라이브러리 설치
(1) 레드햇 계열
# yum groupinstall "Development Tools"
# yum install freeglut libX11-devel mesa-libGL-devel perl-Time-HiRes freeglut-devel readline-devel libffi-devel libtool bison libxml2-devel libxslt-devel zlib zlib-devel sqlite-devel git openssl-devel
(2) 데비안 계열
# sudo apt-get install build-essential libx11-dev libgl1-mesa-dev libxext-dev freeglut3-dev freeglut3 xlibmesa-gl xlibmesa-glu libgl1-mesa-dri libgl1-mesa-glx mesa-common-dev git libssl-dev

2. Ruby와 필요한 gem 설치
wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p392.tar.gz
tar zxvf ruby-1.9.3-p392.tar.gz
cd ruby-1.9.3-p392
./configure --prefix=/usr/local --enable-shared --disable-install-doc --with-opt-dir=/usr/local/lib
make
make install
gem install chipmunk net-ssh-gateway net-ssh mkrf ftools net-ssh ruby-opengl file-tail
gem install opengl -v 0.7.0.pre1

3. github를 사용하여 gltail 설치
git clone git://github.com/Fudge/gltail.git
cd gltail

4. 설정 파일 수정
  config.yaml 파일을 열어서 모니터할 서비스를 추가합니다. 파일은 아래와 같은 형식으로 되어 있습니다.
servers:

site1:
    host: foobar.com
    user: foo
    password: topsecret
    command: tail -f -n0
    files: /var/log/apache/access_log
    parser: apache
    color: 0.2, 1.0, 0.2, 1.0
rails:
    host: anotherfunsite.com
    user: anotherfunuser
    port: 222
    command: tail -f -n0
    files: /var/www/apps/funapp/current/log/production.log
    parser: rails
    color: 0.2, 0.2, 1.0, 1.0
dev:
    host: clockingit.com
    source: local
    files: /var/www/clockingit/logs/production.log
    parser: rails
    color: 0.2, 0.2, 1.0, 1.0

(이하 생략)

4. gltail 실행
  설정 파일을 사용해 gltail을 실행합니다.
cd bin
./gl_tail ../config.yaml
  사용할 수 있는 옵션은 아래 명령어로 볼 수 있습니다.
./gl_tail ../config.yaml -h
  분석할 수 있는 로그의 종류는 아래 명령어로 볼 수 있습니다.
./gl_tail ../config.yaml -p

출처 : http://linuxdrops.com

2013/07/15 12:06 2013/07/15 12:06
Posted
Filed under 프로그램과 명령어/모니터링
참조 원문 : Apache / Nginx: Visualize Web Server Access Log In Real Time

  Logstalgia는 웹사이트 접속 로그를 직관적으로 보여주는 툴로 Apache, Lighttpd, Nginx의 접속 로그를 분석할 수 있습니다. OpenGL을 지원하는 비디오 카드가 필요하기 때문에 상용 서버에서 사용하기 힘들 것이라 생각할 수도 있지만 ssh를 이용하면 원격 서버에서 로그 파일을 읽어서 보는 것이 가능하기 때문에 큰 문제는 없습니다.

(출처 : 참조 원문 사이트)

1. 필요조건
  1. OpenGL을 지원하는 비디오 카드
  2. 리눅스 OS.

2. 설치(우분투 기준)
(1) 바이너리 패키지를 이용한 방법
$ sudo apt-get install logstalgia
(2) 소스 코드를 이용한 방법
$ sudo apt-get install libsdl1.2-dev libsdl-image1.2-dev libpcre3-dev libftgl-dev libpng12-dev libjpeg62-dev
$ cd /tmp
$ wget https://logstalgia.googlecode.com/files/logstalgia-1.0.3.tar.gz
$ tar xvf logstalgia-1.0.3.tar.gz
$ cd logstalgia
$ ./configure
$ make
$ sudo make install

3. 사용법
# 디폴트 설정으로 로그 파일 분석
$ logstalgia /var/www/apache2/access.log

# 표준 입력으로 로그 읽기
$ tail -f
/var/www/apache2/access.log | logstalgia --sync

# 원격 서버에서 로그 파일 분석
ssh 계정명@서버명 tail -f
/var/www/apache2/access.log | logstalgia --sync

# 결과물을 비디오 파일로 저장
$ logstalgia -1280x720 --output-ppm-stream output.ppm
/var/www/apache2/access.log

# 원격 서버에서 결과물을 비디오 파일로 저장
$ ssh
계정명@서버명 tail -f /var/www/apache2/access.log | logstalgia -1280x720 --output-ppm-stream --sync output.ppm

# ffmpeg를 사용해서 .ppm 파일을 mp4 파일로 변환
$ ffmpeg -y -r 60 -f image2pipe -vcodec ppm -i output.ppm -vcodec libx264 -preset ultrafast -pix_fmt yuv420p -crf 1 -threads 0 -bf 0 logvideo.mp4

4. 단축키
  • n : 다음 로그 항목으로 점프
  • +/- : 시뮬레이션 속도 조정
  • </> : 시간 단위 조정
  • Esc : 종료
2013/07/13 23:32 2013/07/13 23:32
Posted
Filed under 프로그램과 명령어/모니터링
참조 원문 : Linux: See Bandwidth Usage Per Process With Nethogs Tool

  프로세스별 대역폭 사용량을 볼 수 있는 유틸리티로 겉모양은 top과 비슷합니다. 동일한 기능의 GUI로 된 유틸리티도 있었으면 좋겠네요.

1. 데비안 계열에 설치
$ sudo apt-get install nethogs

2. 레드햇 계열에 설치
# yum install nethogs

3. 사용법
nethogs
nethogs eth1
nethogs [option] eth0 eth1
nethogs [option] eth0 eth1 ppp0
sudo /usr/sbin/nethogs eth0

4. 실행 후 사용할 수 있는 단축키
  • m : 디스플레이 모드 변경(kb/s, kb, b, mb)
  • r : 수신을 기준으로 정렬
  • s : 송신을 기준으로 정렬
  • q : 종료
2013/07/09 16:10 2013/07/09 16:10
Posted
Filed under 프로그램과 명령어/모니터링
참조 원문 : Installing Nagios 3.4.4 On CentOS 6.3

  Nagios는 설명할 필요가 없을 정도로 유명한 오픈 소스 모니터링 툴입니다. 여기서는 단순히 레드햇 기반의 배포판에서 Nagios를 설치하는 방법만 소개합니다.

사전 준비
  이 가이드는 SELinux를 비활성화하고 Nagios를 사용하는 것을 기준으로 하고 있습니다. 먼저 SELinux를 비활성화하기 위해 setenforce 0 명령어를 사용하고 리붓 후 영구적으로 비활성화시키기 위해 /etc/selinux/config 파일을 열고 SELINUX 내용을 disabled로 바꿉니다.

  그 후 필요한 사전 패키지를 모두 설치합니다.
# yum install gd gd-devel httpd php gcc glibc glibc-common

Nagios 설치
  아래는 설치 과정입니다.
# mkdir /root/nagios
# cd /root/nagios


nagios-core와 plugin 설치
# wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.4.4.tar.gz
# wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.16.tar.gz
# tar xvzf nagios-3.4.4.tar.gz
# cd nagios
# ./configure
# make all
# make install
# make install-init
# make install-commandmode
# make install-config
# make install-webconf


웹 인터페이스로 접속하기 위한 패스워드 생성
# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin  <- 원하는 ID로 입력


서비스 시작 및 부팅 시 서비스 시작하게 하기
# service nagios start
# chkconfig nagios on


플러그인 설치
# cd ..
# tar xvzf nagios-plugins-1.4.15.tar.gz
# cd nagios-plugins-1.4.15
# ./configure
# make
# make install


아파치 서비스 시작 및 부팅 시 서비스 시작하게 하기
# service httpd start
# chkconfig httpd on
  http://Nagios의-IP/nagios 로 접속하여 위에서 설정한 ID(nagiosadmin)와 패스워드로 로그인할 수 있습니다.

설치 후
  설치가 끝나면 Nagios 설정 파일을 수정하여 모든 호스트와 서비스를 설정해야 합니다. 이 과정은 상당히 복잡하므로 Centreon 같은 프론트엔드를 사용하는 것도 좋은 방법입니다. Centreon의 설치 방법은 이 블로그 포스트를 참고하시기 바랍니다.


2013/07/07 16:47 2013/07/07 16:47
Posted
Filed under 프로그램과 명령어/모니터링
참조 원문 : Understanding and using htop to monitor system resources

시스템 전체 CPU 사용률
  최상단 왼쪽에 CPU/코어별 사용률이 나타납니다. 막대기의 색이 다른데 의미하는 바는 아래와 같습니다.
  • 파랑: 우선 순위가 낮은 프로세스(nice > 0)
  • 초록: 일반(사용자) 프로세스
  • 빨강: 커널 프로세스
  • 노랑: IRQ time
  • 자주: Soft IRQ time
  • 회색: IO Wait time

시스템 전체 메모리 사용률
  CPU 사용률 아래에 메모리와 스왑 사용량이 있습니다. 마찬가지로 색이 있는데 의미하는 바는 아래와 같습니다.
  • 초록: 사용 중인 메모리 페이지
  • 파랑: 버퍼 페이지
  • 노랑: 캐쉬 페이지

평균 부하율(Load average)
  일정 시간 동안의 평균 부하율로 top이나 uptime과 마찬가지로 1, 5, 15분 평균 수치가 나옵니다. 싱글 코어 CPU일 때 1.0이면 사용률이 100%임을 의미합니다. 쿼드 코어라면 4.0이 100%인 셈이죠. 다만 이때 1.0을 넘을 수도 있는데 이는 CPU를 할당받기 위해 프로세스들이 기다려야 함을 뜻합니다.

프로세스 정보
  top을 필두로 한 다른 프로그램들과 별 다른 게 없지만 그래도 설명하자면
  • PID: 프로세스의 프로세스 ID 번호
  • USER: 프로세스의 소유자
  • PR: 프로세스의 우선순위
  • NI: 우선순위에 영향을 주는 프로세스의 nice 값
  • VIRT: 프로세스가 사용 중인 가상 메모리 양
  • RES: 프로세스가 사용 중인 물리 RAM의 양(단위는 킬로바이트)
  • SHR: 프로세스가 사용 중인 공유 메모리 양
  • S: 프로세스의 현재 상태(zombied, sleeping, running, uninterruptedly sleeping, traced)
  • %CPU: 프로세스가 프로세서를 사용한 시간의 백분율
  • %MEM: 프로세스가 사용 중인 물리 RAM의 백분율
  • TIME+: 프로세스가 프로세서를 사용한 시간
  • COMMAND: 프로세스 시작에 사용한 명령어명

VIRT, RES, SHR 간의 차이
  • VIRT: 자신이 사용 중인 메모리의 총량으로 자기 자신에게로 연결된 메모리(예를 들어 X 서버 때문에 사용하는 비디오 카드의 RAM), 자신에게 연결된 디스크의 파일(대부분은 공유 라이브러리), 다른 프로세스와 공유 중인 메모리를 포함합니다. VIRT는 지금 순간에 프로그램이 얼마나 많은 메모리에 접근할 수 있는지를 표현합니다.
  • RES: Resident Size의 약자로 프로세스가 점유 중인 실제 물리 메모리의 정확한 양을 뜻합니다.(그렇기 때문에 %MEM과 직접적으로 연관이 있습니다.)
  • SHR: VIRT 중 공유 메모리나 라이브러리가 차지하는 크기입니다. 라이브러리의 경우 전체가 실제 메모리에 올라가 있어야 하는 건 아닙니다. 예를 들어 어떤 프로그램이 라이브러리에서 몇 개의 함수만 쓴다면 VIRT SHR에 전체 라이브러리의 크기가 포함되지만 물리 메모리에는 실제로 사용하는 부분만 올라가며 그 만큼만 RES에는 포함됩니다.

유용한 단축키
  • 화살표 키: 프로세스 리스트를 수평/수직으로 스크롤 할 수 있다.
  • F9: 프로세스를 죽일 수 있다.
  • F7/F8: 프로세스를 renice 할 수 있다.
  • l: 그 프로세스가 열고 있는 파일들을 볼 수 있다.
  • u: 특정 사용자의 프로세스만 볼 수 있다.
  • F6: 원하는 열을 기준으로 정렬한다.
  • F5: 프로세스를 트리 형태로 출력한다.



2013/07/05 17:30 2013/07/05 17:30
Posted
Filed under 프로그램과 명령어/모니터링
참조 원문 : CentOS / RHEL: Install vnStat Network Traffic Monitor To Keep a Log Of Daily Traffic
관련 글(그래픽 파일 출력 및 PHP 프론트엔드 소개 포함) : Monitor your Bandwidth on Linux with vnstat

  vnStat은 커맨드 라인 기반의 네트워크 트래픽 모니터링 프로그램으로 선택한 인터페이스의 시간별, 일별, 월별 네트워크 트래픽을 기록할 수 있습니다. 하지만 패킷 스니퍼가 아니며 proc 파일시스템의 데이터로 트래픽 정보를 분석하기 때문에 사용에 root 권한이 없이도 사용할 수 있습니다.

  설치는 배포판에 따라 yum이나 apt-get으로 쉽게 설치할 수 있습니다. 다만 레드햇 계열의 경우 EPEL 레포지터리를 추가해야 합니다.

설정
  설정 파일은 /etc/vnstat.conf이며 안에 설정별로 주석이 있습니다. 레드햇 계열이라면 추가적인 설정 파일로 /etc/sysconfig/vnstat 파일이 있습니다만 정확한 용도는 모르겠군요. Init 스크립트에서 사용하나 싶어서 확인해봤지만 그것도 아니었습니다.

  또한 레드햇 계열인 경우 설치 시 vnstat 계정이 생성됩니다. 그리고 이 계정의 쉘을 /bin/bash로 바꿔줘야 합니다.
# chsh -s /bin/bash vnstat
  그리고 역시 레드햇 계열인 경우 runuser 명령어로 대상 인터페이스의 DB도 생성해야 합니다. 모니터링 대상 인터페이스마다 한 번씩 실행합니다.
# runuser -l vnstat -g vnstat -c '/usr/bin/vnstat -u -i eth0'
  이제 vnstat의 쉘을 다시 원래대로 바꿉니다.
# chsh -s /sbin/nologin vnstat

vnstat 서비스 시작
  chkconfig 명령어를 사용해서 부팅 때 서비스를 시작하도록 합니다.
# chkconfig vnstat on
  그 외에 서비스의 시작/중지/재시작/상태 출력 방법은 다른 서비스들과 동일합니다.
# service vnstat start
# service vnstat stop
# service vnstat restart
# service vnstat status

사용 방법
  그냥 실행하면 설정 파일에서 정한 인터페이스를 모니터링 합니다. -i 옵션을 사용하면 인터페이스를 선택할 수 있습니다.
# vnstat
Database updated: Fri Jul  5 00:26:03 2013

   eth0 since 07/05/13

          rx:  67.23 MiB      tx:  3.08 MiB      total:  70.31 MiB

   monthly
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
       Jul '13     67.23 MiB |    3.08 MiB |   70.31 MiB |    1.66 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated       516 MiB |      23 MiB |     539 MiB |

   daily
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
         today     67.23 MiB |    3.08 MiB |   70.31 MiB |  368.50 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated      3.62 GiB |     166 MiB |    3.79 GiB |
  -d 옵션으로 일별, -h 옵션으로 시간별, -m 옵션으로 월별, -w로 주별 현황을 볼 수 있습니다. 설치 당일 실행했더니 위와 마찬가지로 별 내용이 없군요. -t 옵션을 추가하면 해당 단위별 상위 10위를 볼 수 있습니다.
# vnstat -d

 eth0  /  daily

         day         rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
      07/05/13     67.23 MiB |    3.08 MiB |   70.31 MiB |  368.50 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated      3.62 GiB |     166 MiB |    3.79 GiB |
  결과를 짧은 형태로 출력할 때는 -s 옵션을 사용합니다.
# vnstat -i eth0 -s

                      rx      /      tx      /     total    /   estimated
 eth0:
       Jul '13       232 KiB  /      69 KiB  /     301 KiB  /       0 KiB
     yesterday       216 KiB  /      64 KiB  /     280 KiB
         today        16 KiB  /       5 KiB  /      21 KiB  /      --   
  5초 동안의 평균 트래픽을 보려면 -tr 옵션을 사용합니다. 뒤에 숫자를 지정하면 5초 대신 지정한 시간 동안의 평균을 계산합니다.
# vnstat -i eth0 -tr
538 packets sampled in 5 seconds   
Traffic average for eth0

      rx       508.80 kbit/s            60 packets/s
      tx        38.40 kbit/s            47 packets/s
  전송 속도를 실시간으로 모니터링하고 Ctrl+C로 종료했을 때 초당 바이트와 패킷의 최대/평균/최소 전송량 및 총 모니터링 시간을 보려면 -l 옵션을 사용합니다.
# vnstat -i eth0 -l
Monitoring eth0...    (press CTRL-C to stop)

   rx:        0 kbit/s     1 p/s          tx:        0 kbit/s     2 p/s^C


 eth0  /  traffic statistics

                           rx         |       tx
--------------------------------------+------------------
  bytes                        5 KiB  |           2 KiB
--------------------------------------+------------------
          max              16 kbit/s  |        4 kbit/s
      average            3.08 kbit/s  |     1.23 kbit/s
          min               0 kbit/s  |        0 kbit/s
--------------------------------------+------------------
  packets                         19  |              24
--------------------------------------+------------------
          max                  7 p/s  |           7 p/s
      average                  1 p/s  |           1 p/s
          min                  0 p/s  |           0 p/s
--------------------------------------+------------------
  time                    13 seconds
2013/07/05 00:39 2013/07/05 00:39
Posted
Filed under 프로그램과 명령어/모니터링
참조 원문 : The Sysadmin's Toolbox: iftop

  top이 CPU와 RAM에 대한 모니터링을 한다면 iftop은 네트워크 인터페이스의 대역폭을 모니터링합니다. 레드햇과 데비안 계열용 패키지가 모두 존재하지만 디폴트로 설치되는 일은 거의 없으므로 별도의 설치가 필요할 겁니다. 실행에 루트 권한이 필요합니다.

사용자 삽입 이미지
  가장 윗 부분은 그래프의 스케일을 보여줍니다. 그 다음부터는 두 호스트 사이의 연결을 보여주며 화살표로 트래픽이 흐르는 방향을 구분합니다. 오른쪽에 있는 3개의 열은 각각 2, 10, 40초 동안의 평균 전송량을 보여줍니다. 아래쪽에는 전체적인 누적, 최대, 평균 전송량을 표시합니다.

  인터페이스가 여러 개 있을 경우 -i 옵션 뒤에 인터페이스명을 적어서 원하는 인터페이스를 모니터링 할 수 있습니다.


DNS Lookup 비활성화
  디폴트로 iftop은 IP 주소를 호스트네임으로 변환시키려고 합니다. 경우에 따라 유용할 수도 있지만 언제나 그렇듯 이는 속도에 악영향을 끼칠 수 있습니다. 실행할 때 -n 옵션을 주면 이를 비활성화시킬 수 있습니다. 만약 이미 실행 중이라면 n을 눌러 같은 결과를 얻을 수 있습니다.


포트 출력하기
  실행 중일 때 p를 누르면 출발지와 목적지 포트를 볼 수 있습니다. S를 누르면 출발지, D를 누르면 목적지 포트를 보이거나 안 보이게 할 수 있습니다.
2013/07/04 14:14 2013/07/04 14:14
Posted
Filed under 프로그램과 명령어/모니터링
참조 원문 : Install and Use nmon Tool To Monitor Linux Systems Performance

  nmon은 성능 정보를 출력 및 기록하는 유명한 툴로 원래 IBM에서 만들었지만 오픈 소스로 공개되어 리눅스에서도 쓰입니다.

1. 데비안 / 우분투 리눅스에서 설치
  그냥 apt-get으로 설치합니다.
# apt-get install nmon
1-1. RHEL / CentOS에서 설치
  이 페이지에서 바이너리를 받습니다.

1-2. 컴파일하여 설치
  소스와 makefile을 wget으로 받습니다. 버전에 따라 파일명이 변할 수 있습니다.
$ wget http://ncu.dl.sourceforge.net/project/nmon/lmon14g.c
$ wget http://ncu.dl.sourceforge.net/project/nmon/makefile
  ncurses-devel 패키지도 필요합니다.
# yum install ncurses-devel
  파일명을 살짝 바꿔줍니다.
$ mv lmon14g.c lmon.c
  makefile을 열어 플랫폼과 리눅스 버전이 일치하는 directive를 찾습니다. 그 후 그것으로 make를 합니다. 예를 들어 x86에서 RHEL/CentOS 5.x 버전을 컴파일할 경우 아래처럼 실행합니다.
$ make nmon_x86_rhel52
  바이너리 파일을 /usr/local/sbin으로 옮깁니다.
# mv nmon_x86_rhel52 /usr/local/sbin/nmon


2. 사용법
  그냥 실행합니다.
# nmon

nmon 실행 화면(출처 : 참조 원문 사이트)



3. 디폴트 모니터링 옵션 설정 방법
  nmon 명령어 실행 즉시 메모리, 네트워크, 디스크, 프로세서 현황을 보려면 아래를 실행하거나 쉘 시작 파일에 추가합니다.
# export NMON=mndc


4. nmon으로 데이터 캡쳐 및 분석
  데이터를 캡처 후 파일로 저장하여 후에 분석 및 그래프로 만들 수 있습니다.
# nmon -f -s2 -c 30
또는
# nmon -ft -s 30 -c 120
  nmon을 백그라운드에 데몬으로 두고 로그 아웃할 수 있으며, 수집한 데이터는 nmon 확장자를 가진 파일로 저장합니다. 아래는 중요 옵션들입니다.
  1. -f : 데이터 수집 모드를 시작하고 스프레드시트 형식으로 출력.
  2. -s <초> : 화면 갱신(수집 모드에서는 수집) 주기.
  3. -c <횟수> : 총 갱신(수집 모드에서는 수집) 횟수.
  4. -t : 출력에 주요 프로세스들 포함.
  5. -x : 15분마다 1번씩 총 하루 동안 성능을 수집. -ft -s 900 -c 96 옵션을 사용한 것과 같은 효과다. cron으로 매일 실행할 때 유용.
  nmonanalyser를 사용하면 수집한 데이터를 엑셀 스프레드시트(분석과 보고에 용이한 그래프 포함)로 변환할 수 있습니다.


2013/07/03 15:33 2013/07/03 15:33