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

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 프로그램과 명령어/모니터링
참조 원문 : 3 Command line tool to test bandwidth between 2 servers

  네트워크 속도를 측정하는 툴 2가지를 소개하는 글입니다. 본문에는 3가지가 있는데 마지막 툴은 과도하게 복잡하고 실제 사용법이 없어서 제외했습니다.

  대역폭을 측정할 때 파일 전송 프로그램을 통해 측정하는 경우가 많은데 그런 경우 CPU나 디스크의 한계로 제대로 된 네트워크 성능을 측정할 수 없습니다. 이 글에서 소개하는 툴들은 디스크를 사용하지 않고 대역폭을 측정할 수 있습니다.


IPERF(홈페이지: http://openmaniak.com/iperf.php)
  Iperf는 TCP와 UDP의 최대 대역폭 성능을 측정하기 위한 툴입니다. 여러 파라미터를 조작할 수 있으며 대역폭, 딜레이 지터, 데이터그램 로스를 볼 수 있습니다.

  링크의 품질은 아래와 같은 것들로 테스트할 수 있습니다.
  • Latency(반응 시간 또는 RTT): Ping 명령어로 측정 가능.
  • Jitter(Latency 변동): Iperf UDP 테스트로 측정 가능.
  • Datagram loss: Iperf UDP 테스트로 측정 가능.
  대역폭은 TCP 테스트를 통해 특정할 수 있습니다.

  아래는 Iperf를 이용하여 한 쪽에서 서버 역할을 하고 반대쪽에서 클라이언트 역할을 하는 그림과 예제입니다.

사용자 삽입 이미지
서버
#iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 8.00 KByte (default)
------------------------------------------------------------
[852] local 10.1.1.1 port 5001 connected with 10.6.2.5 port 54355
[ ID]   Interval          Transfer        Bandwidth
[852]   0.0-10.1 sec   1.15 MBytes   956 Kbits/sec
------------------------------------------------------------
Client connecting to 10.6.2.5, TCP port 5001
TCP window size: 8.00 KByte (default)
------------------------------------------------------------
[824] local 10.1.1.1 port 1646 connected with 10.6.2.5 port 5001
[ ID]   Interval          Transfer        Bandwidth
[824]   0.0-10.0 sec   73.3 MBytes   61.4 Mbits/sec

클라이언트
#iperf -c 10.1.1.1 -d
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
------------------------------------------------------------
Client connecting to 10.1.1.1, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[ 5] local 10.6.2.5 port 60270 connected with 10.1.1.1 port 5001
[ 4] local 10.6.2.5 port 5001 connected with 10.1.1.1 port 2643
[ 4] 0.0-10.0 sec 76.3 MBytes 63.9 Mbits/sec
[ 5] 0.0-10.1 sec 1.55 MBytes 1.29 Mbits/sec
  Iperf는 윈도우에서도 사용이 가능합니다.


NETCAT(참조: http://deice.daug.net/netcat_speed.html)
  yes라는 명령어의 출력을 netcat을 통해 전송하여 대역폭을 측정하는 방법입니다. 위와 마찬가지로 한 쪽에서 서버를 맡아 데이터를 받고 다른 쪽에서 클라이언트를 맡아  데이터를 보내는 방식입니다.
서버
# nc -v -v -l -n  2222 > /dev/null (우분투의 경우 포트 번호 앞에 -p 옵션 추가)
listening on [any] 2222 ...

클라이언트
# time yes | nc -v -v -n 10.1.1.1 2222 > /dev/null
  대략 10초 후에 클라이언트에서 ctrl+c를 눌러 프로세스를 종료하면 아래와 같은 결과가 나옵니다.
sent 87478272, rcvd 0
 
real 0m9.993s
user 0m2.075s
sys 0m0.939s
  서버에서도 거의 같은 결과가 나옵니다.
sent 0, rcvd 87478392
  위에서 출력되는 sent와 rcvd 값의 단위는 바이트이므로 비트 수를 구하기 위해 8을 곱합니다. 그리고 그 값을 클라이언트에서 출력된 시간으로 나눕니다. 위의 예제의 경우 그 결과로 70 Mb/s가 나옵니다.



2011/01/24 10:35 2011/01/24 10:35
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