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

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 프로그램과 명령어/서버와 서비스
참조 원문 : How to Install and Setup Monit (Linux Process and Services Monitoring) Program

  Monit은 서버 프로세스, 파일, 디렉토리, 체크섬, 퍼미션, 파일시스템과 Apache, Nginx, MySQL, FTP, SSH, Sendmail 등 서비스를 모니터하고 관리하는 오픈 소스 툴입니다. 웹 인터페이스를 쓰고 있기 때문에 웹 서버가 필요하며 이를 이용해 시스템 상태를 보고, 프로세스를 제어할 수 있습니다.

Monit로 할 수 있는 것
  프로세스가 돌아가고 있지 않다면 시작할 수 있고, 반응이 없으면 재시작할 수 있으며, 자원을 많이 소모할 경우 중지할 수 있습니다. 또한 파일, 디렉토리, 파일시스템의 변화, 체크섬 변화, 파일 크기 변화, 타임스탬프의 변화를 감시할 수 있습니다. 그리고 원격 호스트의 TCP/IP 포트, 서버 프로토콜, ping을 감사하는 것도 가능합니다. 물론 자체적으로 로그를 기록하며 치명적인 에러와 복구 상태에 대해 경고합니다.


Monit 설치
  레드햇 계열의 경우 EPEL 저장소를 추가해야 합니다. 추가 후 yum으로 설치합니다.
# yum install monit
  데비안 계열은 apt-get으로 바로 설치합니다.
$ sudo apt-get install monit

Monit 설정
  기본적으로 2분마다 서비스를 검사하며 /var/log/monit 파일에 로그를 기록합니다. 웹 서버를 통해 2812 포트로 웹 인터페이스를 제공하며 이를 위해 monit 설정 파일을 수정해야 합니다. 주 설정 파일은 레드햇 계열의 경우 /etc/monit.conf, 데비안 계열의 경우 /etc/monit/monitrc 입니다. 이 파일 안에서 아래에 해당하는 부분의 주석을 제거하고 서버의 IP와 도메인을 입력합니다.
 set httpd port 2812 and
     use address localhost  # only accept connection from localhost
     allow localhost        # allow localhost to connect to the server and
     allow admin:monit      # require user 'admin' with password 'monit'
     allow @monit           # allow users of group 'monit' to connect (rw)
     allow @users readonly  # allow users of group 'users' to connect readonly
  그 후 monit 서비스를 재시작하여 새 설정을 읽도록 합니다.
$ sudo /etc/init.d/monit start
  이제 http://주소:2812로 웹 인터페이스에 접속할 수 있습니다. 사용자명엔 admin, 패스워드엔 monit을 넣어 로그인하면 아래와 같은 화면을 볼 수 있습니다.

출처 : 참조 원문


서비스 추가
  웹 인터페이스의 작동을 확인하면 레드햇 계열의 경우 /etc/monit.conf, 데비안 계열의 경우 /etc/monit/monitrc 파일의 끝부분에 감시할 프로그램을 추가합니다. 아래는 기본적인 설정 예제입니다.

Apache
check process httpd with pidfile /var/run/httpd.pid
group apache
start program = "/etc/init.d/httpd start"
stop program = "/etc/init.d/httpd stop"
if failed host 127.0.0.1 port 80
protocol http then restart
if 5 restarts within 5 cycles then timeout
Apache2
check process apache with pidfile /run/apache2.pid
start program = "/etc/init.d/apache2 start" with timeout 60 seconds
stop program  = "/etc/init.d/apache2 stop"
Nginx
check process nginx with pidfile /var/run/nginx.pid
start program = "/etc/init.d/nginx start"
stop program = "/etc/init.d/nginx stop"
MySQL
check process mysqld with pidfile /var/run/mysqld/mysqld.pid
group mysql
start program = "/etc/init.d/mysqld start"
stop program = "/etc/init.d/mysqld stop"
if failed host 127.0.0.1 port 3306 then restart
if 5 restarts within 5 cycles then timeout
SSH
check process sshd with pidfile /var/run/sshd.pid
start program "/etc/init.d/sshd start"
stop program "/etc/init.d/sshd stop"
if failed host 127.0.0.1 port 22 protocol ssh then restart
if 5 restarts within 5 cycles then timeout

  감시할 프로그램에 대한 내용을 모두 추가한 후 아래 명령어로 틀린 부분이 없는지 확인합니다.
$ sudo monit -t
  이상이 없으면 서비스를 재시작합니다.
$ sudo /etc/init.d/monit restart
  로그 파일을 확인하여 서비스 시작에 문제가 없는지 확인할 수도 있습니다.
$ sudo tail -f /var/log/monit.log
[BDT Apr  3 03:06:04] info     : Starting monit HTTP server at [localhost:2812]
[BDT Apr  3 03:06:04] info     : monit HTTP server started
[BDT Apr  3 03:06:04] info     : 'tecmint.com' Monit started
[BDT Apr  3 03:06:04] error    : 'nginx' process is not running
[BDT Apr  3 03:06:04] info     : 'nginx' trying to restart
[BDT Apr  3 03:06:04] info     : 'nginx' start: /etc/init.d/nginx

출처 : 참조 원문

2013/07/12 10:45 2013/07/12 10:45
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 프로그램과 명령어/모니터링
참조 원문 : 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 프로그램과 명령어/모니터링
참조 원문 : System Monitoring With sar And ksar

  sar는 오래된 시스템 퍼포먼스 모니터링(이라기보다 리포팅) 툴로써 대부분의 리눅스 배포판과 상용 유닉스에서 사용이 가능합니다. 그런데 고전적인 툴이라 리포트의 모양새가 영 보기 편하지 않습니다.

  이런 문제를 보완하기 위해 ksar라는 프로그램이 있습니다. 이 프로그램은 자바 기반으로 만들어진 sar의 GUI 프론트 엔드입니다. GUI이므로 그래픽 기반의 리포팅을 볼 수 있어 편리합니다. 또한 덤으로 pdf 같은 형식으로도 추출이 가능합니다.

  이 글은 ksar를 소개하는 글로 sar에 대한 자세한 사용법은 다루지 않습니다. ksar는 sar의 프론트 엔드이므로 먼저 대상 서버에 sar를 (없다면)설치해야 합니다. sar는 대부분의 리눅스 배포판에서 sysstat이라는 이름의 패키지에 포함되어 있습니다.

  sar는 일반적으로 cron을 통해 정기적으로 실행되어 시스템의 데이터를 수집합니다. sar를 설치하면 일반적으로 /etc/cron.d/sysstat이나 그와 유사한 이름의 파일이 생깁니다. 이 파일의 내용은 대략 아래와 같거나 비슷합니다.(아래는 CentOS 기준)
# run system activity accounting tool every 10 minutes
*/10 * * * * root /usr/lib/sa/sa1 1 1
# generate a daily summary of process accounting at 23:53
53 23 * * * root /usr/lib/sa/sa2 -A
  위에 따르면 sar는 매 10분마다 실행되어 시스템의 상태를 바이너리 스넵샷으로 생성하며 매일 23:53에 일일 요약 보고서를 작성합니다. 생성된 일일 보고서와 바이너리 데이터베이스는 /var/log/sa(CentOS)나 /var/log/sysstat(데비안, 우분투)에 저장됩니다. 디폴트로 최대 한 달 분량의 데이터를 보관합니다.

  대충 sar에 대한 내용은 여기까지입니다. 이렇게 sar가 돌고 있는 상태에서 ksar를 이용하면 GUI를 통해 보기 좋은 형태로 sar의 리포트를 볼 수 있습니다. 중요한 점은 ksar를 서버에서 실행할 필요가 없다는 겁니다. 이게 아니었으면 소개도 안 했을 겁니다. 어차피 서버에 GUI 환경을 돌리는 일이 많지 않으니까요.

  먼저 여기서 ksar를 받습니다. 이 프로그램은 자바 기반이므로 당연히 자바도 필요합니다. 없다면 자바 사이트에서 JRE를 다운받아 설치합시다. 이제 실행하면 아래처럼 썰렁한 창이 하나 뜹니다.

생긴 거 참 썰렁합니다.

  생긴 게 참 별 볼 일 없게 생겼는데 아까도 언급했지만 ksar에는 원격 시스템의 sar 데이터를 보는 기능이 있습니다. 이 기능은 SSH를 통해 이뤄지며 아래의 메뉴에서 사용할 수 있습니다.

사용자 삽입 이미지
  그 외에도 scp 같은 툴을 이용해 대상 시스템에 있는 리포트 파일을 ksar가 있는 시스템으로 가져와 볼 수도 있습니다.

  아래는 ksar의 일부 모습들입니다.

하루 동안의 CPU 로드


하루 동안의 메모리 사용률


하루 동안의 페이징 활동 정보




2011/02/01 16:25 2011/02/01 16:25
Posted
Filed under 프로그램과 명령어/모니터링
참조 원문 : 6 More of the Best Free Linux Monitoring Tools

모니터링과 관련된 툴 6가지인데 여기서 직접 소개하는 건 아니고 혹시 나중에 찾게 될 일이 있을지 몰라 주요 특징만 간단히 적어 제품별 기능이 정리된 페이지로 링크했습니다.

  • Zabbix : 엔터프라이즈급 분산 모니터링 솔루션
  • Zenoss Core : 프로그램, 서버, 네트워크 관리 플랫폼
  • Hyperic : 시스템과 서버 모니터링, IT 관리 소프트웨어
  • Ganglia : 고성능 컴퓨팅 시스템을 위한 확장성 높은 분산 모니터링 시스템
  • Cacti : RRDTool 기반의 네트워크 그래픽 솔루션
  • Monitorix : 서버와 임베디드 디바이스를 위한 가벼운 모니터링 툴
2010/12/13 15:33 2010/12/13 15:33