강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

Glances : 종합적인 서버 모니터링 도구(TUI)

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문


Glances : 종합적인 서버 모니터링 도구(TUI)


    작성자 : 에스유
    작성일 : 2014.05.
    대상 OS : SULinux Server 2014 64Bit


  얼마전 top 보다 향상된 프로세스 모니터링 도구인 htop에 대한 강좌를 올렸는데 아시는 분이 Glances를 추천하여 Glances에 대한 강좌를 써 보도록 하겠다. Glances는 SSH등을 이용하여 서버에 터미널로 접속하여 시스템 상황을 볼 수 있는 TUI 프로그램이다.

  Glances는 서버의 전반적인 상황을 모니터링 할 수 있으며, Server/Client로 작동시킬 수 있다.
  Glances는 Python으로 작성된 크로스플랫폼 커서 기반 모니터링 툴이다. psutil 라이브러리를 사용하여 시스템의 정보를 가져온다.


다음과 같은 기능이 있다. (1.7.6 기준)
    - CPU사용량 (user%, system%, idle%, LoadAVG)
    - 메모리 사용량
    - 네트워크 사용량
    - 센서(CPU온도등) (lm-sensors와 pysensors Python 라이브러리 필요)
    - Disk I/O, 용량
    - Disk 온도 (hddtemp Python 라이브러리 필요)
    - 베터리 정보 (batinfo Python 라이브러리 필요)
    - 프로세스 리스트
    - 프로세스 그룹 모니터링 (설정파일에 설정)
    - 로깅(화면하단, /var/log/glances/)
    - HTMP, CSV 형식으로 출력 (HTML 출력시 jinja2 Python 라이브러리 필요)
glances -o CSV -f /tmp/glances.csv
glances -o HTML -f /tmp
    - API제공(XML-RPC 형태 /https://github.com/nicolargo/glances/wiki/The-Glances-API-How-To)
    - Server/Client제공

 아주 다양한 기능을 빠르고 편리하게 제공한다. 전반적인 시스템 상태를 확인하기에는 아주 좋은 유틸리티이다.
 Glances 설치부터 하나 하나 살펴보도록 하자.


1. Glances 설치
    Glances 1.7.4 버전은 RHEL/CentOS 6에 기본이 아닌 3rd party 저장소에서 제공한다. 조금 오래된 배포판의 경우 최신버전의 패키지를 구하기 어려우니 설치프로그램을 다운로드 받아 설치해 보도록 한다. 다양한 OS에서 설치하기 위해서는 배포사이트를 방문하여 쉽게 그 상황에 맞는 설치법을 확인할 수 있다.
- 참고로 SULinux 2014버전에는 "yum install glances" 을 통해 최신버전(1.7.6)을 설치할 수 있다.
    - 만약 우분투를 사용한다면, apt-get install pip ; pip install Glances 으로 쉽게 설치할 수 있다.

   1.1. 소스 다운로드 
       이렇게 좋은 소프트웨어를 사용하려 한다면, 한번쯤 배포하는 사이트에 방문하는 예의라고 생각한다.
     최신 버전의 기능 또한 확인도 하고..

       배포사이트 : http://nicolargo.github.io/glances/
       매뉴얼 : https://github.com/nicolargo/glances/blob/master/docs/glances-doc.rst

 
      위 사이트에서 "Download TAR"를 클릭하면 최신 버전의 소스코드를 다운로드 할 수 있으나, 개발 진행되고 있는 최신버전이 다운로드 된다.
      그래서 다음과 같은 방식으로 다운로드 한다.
        curl -L https://github.com/nicolargo/glances/archive/v1.7.6.tar.gz -o glances-1.7.6.tar.gz

      2014.05.07 기준 1.7.6 이다.


   1.2. 압축해제 및 설치
tar xvfp glances-1.7.6.tar.gz
  cd glances-1.7.6
        python setup.py install

* python 2.6 이상, psutil 0.5.1이상 필요, python-devel, python-psutil, setuptools  패키지 필요
       

2. Glances 사용

   2.1. Glances 기본 화면

   위와 같이 설치하였다면 터미널 창에서 다음과 같이 입력한다.
      glances


  위 그림과 같은 결과를 얻을 수 있을 것이다. 한 화면에서 다양한 정보를 얻을 수 있다.
- HostName
- OS종류, 아키텍쳐, 커널버전
- glances 가동시간
- CPU부하 (user, system, idle, nice, iowait, irq)
- LoadAvg
- CPU 코어수 (논리적 코어수로 나옴)
- 메모리(Total, Used, Free, buffers, cached)
- SWAP사용량
- 네트워크 장치별 수신, 발신
- 태스크 수및 상태
- 디스크 I/O 
- 디스크 마운트 상태 및 용량
- 프로세스(메모리,CPU,IO등 핵심정보)
  - 로그 : 어떠한 문제가 있다면 하단에 로그가 나타난다.
* 그 밖에 센서, 배터리온도, Disk온도등은 별도의 라이브러리를 설치해야 한다.


   2.2. Glances 대화형 명령어
"h"키를 누르게 되면 위 그림과 같은 도움말을 볼 수 있다.

- Glances 및 PsUtil의 버전을 확인할 수 있고
- 로깅을 하기위한 한계치를 보여준다. (/etc/glances/glances.conf에 설정되어 있다.)
- 각 키들은 다음과 같은 역할을 한다.
a : 자동으로 프로세스 정렬한다. ( iowait가 60%이상이면 I/O 정렬, CPU가 70%이상이면 CPU정렬, MEM이 70%이상이면 MEM 정렬)
b : 네트워크 I/O에서 Bit/Sec, Byte/Sec 단위 스위칭
c : CPU 사용량에 따른 프로세스 정렬
d : Disk I/O 상태 표시/숨김
f : 파일시스템 상태 표시/숨김
h : Help 표시/숨김
i : I/O에 따른 프로세스 정렬
l : 로그 메시지 표시/숨김
m : 메모리 사용량에 따른 프로세스 정렬
n : 네트워크 상태 표시/숨김
p : 프로세스 이름에 따른 프로세스 정렬
q : 종료
s : 센서 상태 표시/숨김 ( -e 옵션 사용시, 센서 모듈 설치시)
t : 네트워크 I/O 수신,송신 합치거나 분리
u : 네트워크 I/O 누적치 표시
w : 경고 로그 삭제
x : 심각로그 삭제
y : HDD 온도 상태 표시/숨김 (-y 옵션 사용시, 관련 모듈 설치시)
z : 프로세스 리스트 표시숨김 (Glances가 차지하는 CPU 부하 감소를 위해)
1 : 각 CPU별 부하 표시(터미널 창이 적으면 보여지지 않음)




   2.3. Glances 프로세스 그룹화


  위 그림을 보면 중간에 HTTPD가 생긴 것을 볼 수 있다. 이는 프로세스들 중 웹서버(httpd)관련 프로세스를 모아 합계를 보여주고 있다.  각 서비스에 맞게 구성하면 아주 유용하게 사용할 수 있다.
 
  위와 같이 구성하기 위해서는 Glances의 설정파일(/etc/glances/glances.conf)에 다음과 같이 추가한다.

        list_1_description=HTTPD
        list_1_regex=.*httpd.*

 위와 같이 프로세스 그룹의 이름과, 프로세스 이름의 정규표현식을 작성하면 glances실행시 합산된 결과를 보여준다. 프로세스 그룹은 총 10개까지 가능하다고한다. 여러 추가 기능들이 설정파일에 설명되어 있으니 참고 하면 된다.



   2.4. Glances 커멘드라인 옵션

옵션:
-b : 네트워크 I/O에서 Bit/Sec, Byte/Sec 단위 스위칭 (기본 : Bit/Sec)
-B @IP|HOST : Glances 서버 구동시 사용할 IP 또는 호스트네임
-c @IP|HOST : Glances 클라이언트 사용시 Glances 서버 IP 또는 호스트네임
-C FILE : 설정파일 지정
-d : Disk I/O 모듈 비활성화
-e : 센서 모듈 활성화 
-f FILE : HTML 출력 폴더 또는 CSV 파일 지정
-h : 본 도움말 표시
-m : 마운트 모듈 비활성화
-n : 네트워크 모듈 비활성화
-o OUTPUT : 출력 방법 지정 ( HTML 또는 CSV)
-p PORT : Glances 서버/클라이언트 사용시 포트 지정(기본: 61209)
-P PASSWORD : Glances 서버/클라이언트 사용시 비밀번호 지정(기본: 없음)
--password : Glances 서버/클라이언트 사용시 비밀번호 프롬프트로 입력받음
-r : 프로세스 리스트 표시안함
-s : Glances를 서버모드로 실행
-t SECONDS : 리플레쉬 초 설정 (기본 3초)
-v : 버전 출력 후 종료
-y : HDD 온도 모듈 활성화
-z : 굵은 컬러 속성 사용안함
-1 : 각 CPU별로 부하 표시


    위와 같은 옵션들이 있다. 
 만약 여러대의 서버를 관리한다면, Glances를 서버모드로 올려 두고 PC에서 Glances를 클라이언트로 동작시켜 서버의 상태를 빠르게 모니터링할 수 있다.

 
  이상으로 Glances에 대한 강좌를 마무리 합니다. Glances는 서버의 전반적인 상태를 모니터링 하기에 더 없이 좋은 유틸리티입니다. 강좌의 설명에 있어 오타가 있거나, 내용이 다른 부분이 있으면 언제든지 service@linux.kr으로 신고 해 주시기 바랍니다. 2014년 이렇게 좋은 것이 있다는 것을 많은 사람들에게 알려 주고 싶어하는 doly가...

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,017 명
  • 현재 강좌수 :  35,690 개
  • 현재 접속자 :  219 명