웹사이트 검색

Linux 서버의 그리드 및 클러스터에 대한 'Ganglia'를 통한 실시간 모니터링 설정


시스템 관리자가 서버 및 시스템 그룹 관리를 담당한 이후로 모니터링 애플리케이션과 같은 도구는 가장 친한 친구였습니다. 아마도 Nagios, Zabbix, Icinga 및 Centreon과 같은 도구에 익숙할 것입니다. 이는 모니터링의 비중이 크지만, 신규 사용자에게는 설정하고 해당 기능을 최대한 활용하는 것이 다소 어려울 수 있습니다.

이 기사에서는 쉽게 확장할 수 있고 Linux 서버 및 클러스터의 다양한 시스템 측정항목(그래프 포함)을 실시간으로 볼 수 있는 모니터링 시스템인 Ganglia를 소개합니다.

Ganglia를 사용하면 더 나은 구성을 위해 그리드(위치) 및 클러스터(서버 그룹)를 설정할 수 있습니다.

따라서 원격 환경의 모든 시스템으로 구성된 그리드를 생성한 다음 해당 시스템을 다른 기준에 따라 더 작은 세트로 그룹화할 수 있습니다.

또한 Ganglia의 웹 인터페이스는 모바일 장치에 최적화되어 있으며 .csv.json 형식으로 데이터를 내보낼 수도 있습니다.

테스트 환경은 Ganglia를 설치할 중앙 CentOS 7 서버(IP 주소 192.168.0.29)와 Ubuntu 14.04 시스템(192.168.0.32), Ganglia의 웹 인터페이스를 통해 모니터링하려는 상자입니다.

이 가이드 전체에서는 CentOS 7 시스템을 마스터 노드로, Ubuntu 상자를 모니터링되는 시스템으로 참조합니다.

Ganglia 설치 및 구성

마스터 노드에 모니터링 유틸리티를 설치하려면 다음 단계를 따르세요.

1. EPEL 저장소를 활성화한 다음 거기에서 Ganglia 및 관련 유틸리티를 설치합니다.

yum update && yum install epel-release
yum install ganglia rrdtool ganglia-gmetad ganglia-gmond ganglia-web 

위 단계에서 애플리케이션 자체인 Ganglia와 함께 설치된 패키지는 다음 기능을 수행합니다.

  1. 라운드 로빈 데이터베이스인 rrdtool은 시간에 따른 데이터의 변화를 그래프로 저장하고 표시하는 데 사용되는 도구입니다.
  2. ganglia-gmetad는 모니터링하려는 호스트에서 모니터링 데이터를 수집하는 데몬입니다. 해당 호스트와 마스터 노드에는 ganglia-gmond(모니터링 데몬 자체)도 설치해야 합니다.
  3. ganglia-web은 모니터링되는 시스템에 대한 기록 그래프와 데이터를 볼 수 있는 웹 프런트엔드를 제공합니다.

2. Ganglia 웹 인터페이스(/usr/share/ganglia)에 대한 인증을 설정합니다. Apache에서 제공하는 기본 인증을 사용하겠습니다.

고급 보안 메커니즘을 살펴보려면 Apache 문서의 권한 부여 및 인증 섹션을 참조하세요.

이 목표를 달성하려면 사용자 이름을 만들고 Apache로 보호되는 리소스에 액세스하기 위한 비밀번호를 할당하세요. 이 예에서는 adminganglia라는 사용자 이름을 만들고 원하는 비밀번호를 할당합니다. 이 비밀번호는 /etc/httpd/auth.basic에 저장됩니다. 다른 디렉토리 및/또는 파일 이름을 선택하십시오. Apache가 해당 리소스에 대한 읽기 권한을 갖고 있는 한 괜찮습니다.

htpasswd -c /etc/httpd/auth.basic adminganglia

계속 진행하기 전에 adminganglia의 비밀번호를 두 번 입력하세요.

3. /etc/httpd/conf.d/ganglia.conf를 다음과 같이 수정합니다.

Alias /ganglia /usr/share/ganglia
<Location /ganglia>
    AuthType basic
    AuthName "Ganglia web UI"
    AuthBasicProvider file
    AuthUserFile "/etc/httpd/auth.basic"
    Require user adminganglia
</Location>

4. /etc/ganglia/gmetad.conf를 편집합니다.

먼저, 설정하려는 그리드에 대한 설명 이름이 뒤에 오는 Gridname 지시문을 사용합니다.

gridname "Home office"

그런 다음 data_source 뒤에 클러스터(서버 그룹)를 설명하는 이름, 폴링 간격(초), 마스터 및 모니터링 노드의 IP 주소를 입력합니다.

data_source "Labs" 60 192.168.0.29:8649 # Master node
data_source "Labs" 60 192.168.0.32 # Monitored node

5. /etc/ganglia/gmond.conf를 편집합니다.

a) 클러스터 블록이 다음과 같은지 확인하세요.

cluster {
name = "Labs" # The name in the data_source directive in gmetad.conf
owner = "unspecified"
latlong = "unspecified"
url = "unspecified"
}

b) udp_send_chanel 블록에서 mcast_join 지시문을 주석 처리합니다.

udp_send_channel   {
  #mcast_join = 239.2.11.71
  host = localhost
  port = 8649
  ttl = 1
}

c) 마지막으로 udp_recv_channel 블록에서 mcast_join 및 바인딩 지시문을 주석 처리합니다.

udp_recv_channel {
  #mcast_join = 239.2.11.71 ## comment out
  port = 8649
  #bind = 239.2.11.71 ## comment out
}

변경 사항을 저장하고 종료합니다.

6. 8649/udp 포트를 열고 필요한 SELinux 부울을 사용하여 PHP 스크립트(Apache를 통해 실행)가 네트워크에 연결되도록 허용합니다.

firewall-cmd --add-port=8649/udp
firewall-cmd --add-port=8649/udp --permanent
setsebool -P httpd_can_network_connect 1

7. Apache, gmetad 및 gmond를 다시 시작합니다. 또한 부팅 시 시작할 수 있도록 활성화되어 있는지 확인하세요.

systemctl restart httpd gmetad gmond
systemctl enable httpd gmetad httpd

이제 http://192.168.0.29/ganglia에서 Ganglia 웹 인터페이스를 열고 #2단계의 자격 증명으로 로그인할 수 있습니다.

8. Ubuntu 호스트에서는 에 해당하는 ganglia-monitor만 설치합니다. CentOS의 ganglia-gmond:

sudo aptitude update && aptitude install ganglia-monitor

9. 모니터링되는 상자에서 /etc/ganglia/gmond.conf 파일을 편집합니다. 이는 클러스터, udp_send_channeludp_recv_channel에서 주석 처리된 행을 제외하고 마스터 노드의 동일한 파일과 동일해야 합니다. 을 활성화해야 합니다.

cluster {
name = "Labs" # The name in the data_source directive in gmetad.conf
owner = "unspecified"
latlong = "unspecified"
url = "unspecified"
}

udp_send_channel   {
  mcast_join = 239.2.11.71
  host = localhost
  port = 8649
  ttl = 1
}

udp_recv_channel {
  mcast_join = 239.2.11.71 ## comment out
  port = 8649
  bind = 239.2.11.71 ## comment out
}

그런 다음 서비스를 다시 시작합니다.

sudo service ganglia-monitor restart

10. 웹 인터페이스를 새로 고치면 홈 오피스 그리드/Labs 클러스터 내에서 두 호스트에 대한 통계 및 그래프를 볼 수 있습니다( 홈 오피스 그리드 옆에 있는 드롭다운 메뉴를 사용하여 클러스터(이 경우에는 실험실)를 선택합니다.

위에 강조 표시된 메뉴 탭을 사용하면 각 서버에 대한 많은 흥미로운 정보에 개별적으로 또는 그룹별로 액세스할 수 있습니다. 호스트 비교 탭을 사용하면 클러스터에 있는 모든 서버의 통계를 나란히 비교할 수도 있습니다.

정규식을 사용하여 서버 그룹을 선택하면 서버의 성능을 빠르게 비교할 수 있습니다.

개인적으로 가장 매력적이라고 생각하는 기능 중 하나는 모바일 탭을 사용하여 액세스할 수 있는 모바일 친화적인 요약입니다. 관심 있는 클러스터를 선택한 다음 개별 호스트를 선택합니다.

요약

이 기사에서는 서버 그리드 및 클러스터를 위한 강력하고 확장 가능한 모니터링 솔루션인 Ganglia를 소개했습니다. 원하는 만큼 자유롭게 Ganglia를 설치하고 탐색하고 플레이해 보세요(그런데 프로젝트 공식 웹사이트에서 제공되는 데모에서 Ganglia를 시험해 볼 수도 있습니다.

그 과정에서 IT 업계에 있거나 Ganglia를 사용하지 않는 여러 유명 회사를 발견하게 될 것입니다. 여기에는 이 기사에서 공유한 것 외에도 사용의 용이성, 통계와 함께 그래프(이름에 얼굴을 붙이는 것이 좋지 않습니까?) 등이 아마도 상위에 있을 가능성이 있는 많은 이유가 있습니다.

그러나 우리의 말을 그대로 받아들이지 말고 직접 시험해보고 궁금한 점이 있으면 주저하지 말고 아래 의견 양식을 사용하여 우리에게 연락하십시오.