Computer >> 컴퓨터 >  >> 프로그래밍 >> Bash 프로그래밍

Collectd를 리눅스 클라이언트용 중앙 모니터링 서버로 구축하는 방법

이 튜토리얼에서는 Collectd 데몬의 Network(네트워크) 플러그인을 활성화하여, 네트워크상의 여러 서버에 설치된 Collectd 클라이언트들이 수집한 통계 데이터를 한 곳에서 취합하는 중앙 모니터링 서버로 만드는 방법을 단계별로 살펴봅니다.

Collectd를 리눅스 클라이언트용 중앙 모니터링 서버로 구축하는 방법

이 구성을 위해 필요한 것은 크게 두 가지입니다. 첫째, 사내의 한 대 호스트에 Collectd 데몬과 Collectd-web 웹 인터페이스를 설치하고 서버 모드로 실행해 중앙 모니터링 지점 역할을 맡깁니다. 둘째, 나머지 모니터링 대상 호스트들은 Collectd를 클라이언트 모드로만 설정하여 수집한 통계를 중앙 서버로 전송하도록 합니다.

사전 요구 사항

  1. 리눅스 서버 모니터링을 위한 Collectd 및 Collectd-web 설치 가이드 완료

1단계: Collectd 서버 모드 준비 – NTP 시간 동기화

1. 서버 역할을 할 머신에 Collectd 데몬과 Collectd-web 인터페이스가 이미 설치되어 있다고 가정합니다. 가장 먼저 확인해야 할 사항은 시스템 시간이 근처의 타임 서버와 동기화되어 있는지 여부입니다.

이를 위해 직접 NTP 서버를 운영할 수도 있지만, 더 간편한 방법은 cron 작업으로 ntpdate 명령을 주기적으로 실행해 내부 또는 공개 타임 서버와 시간을 맞추는 것입니다. 사용 가능한 NTP 서버 목록은 pool.ntp.org 웹사이트에서 확인할 수 있습니다.

시스템에 ntpdate가 없다면 아래 명령으로 설치한 뒤, 가장 가까운 타임 서버와 시간을 동기화합니다.

# apt-get install ntpdate    [Debian 계열]
# yum install ntpdate        [RedHat 계열]
또는
# dnf install ntpdate
# ntpdate 0.ro.pool.ntp.org

참고: 위 명령의 NTP 서버 주소는 자신의 위치와 환경에 맞게 교체해서 사용하세요.

Collectd를 리눅스 클라이언트용 중앙 모니터링 서버로 구축하는 방법

2. 다음으로, 매일 자정에 시간 동기화가 자동으로 실행되도록 아래 명령으로 root의 crontab 파일을 엽니다.

# crontab -e

3. root crontab 파일이 열리면 맨 아래에 다음 줄을 추가한 후 저장하고 종료하여 스케줄을 활성화합니다.

@daily ntpdate 0.ro.pool.ntp.org

Collectd를 리눅스 클라이언트용 중앙 모니터링 서버로 구축하는 방법

참고: 네트워크에 존재하는 모든 Collectd 클라이언트에도 동일한 시간 동기화 절차를 반복 적용하여, 모든 시스템의 시간이 중앙 타임 서버와 일치하도록 유지하는 것이 좋습니다.

2단계: 중앙 모니터링 서버에서 Collectd 서버 모드 구성

4. Collectd를 서버로 실행해 클라이언트들의 통계를 수집하려면 Network 플러그인을 활성화해야 합니다.

Network 플러그인의 역할은 기본 포트인 25826/UDP에서 연결을 대기(listen)하면서 클라이언트 인스턴스들이 보내는 데이터를 수신하는 것입니다. collectd 메인 설정 파일을 열어 아래 항목들의 주석을 해제합니다.

# nano /etc/collectd/collectd.conf
또는
# nano /etc/collectd.conf

파일에서 아래 항목들을 찾아 주석을 제거합니다.

LoadPlugin logfile
LoadPlugin syslog
<Plugin logfile>
 LogLevel "info"
 File STDOUT
 Timestamp true
 PrintSeverity false
</Plugin>
<Plugin syslog>
 LogLevel info
</Plugin>
LoadPlugin network

Collectd를 리눅스 클라이언트용 중앙 모니터링 서버로 구축하는 방법

Collectd를 리눅스 클라이언트용 중앙 모니터링 서버로 구축하는 방법

이어서 파일 내용을 더 살펴 Network 플러그인 블록을 찾아 아래와 같이 주석을 해제하고, Listen 주소 부분을 다음 예시처럼 수정합니다.

<Plugin network>
...
# server setup:
 <Listen "0.0.0.0" "25826">
 </Listen>
....
</Plugin>

Collectd를 리눅스 클라이언트용 중앙 모니터링 서버로 구축하는 방법

5. 파일 편집을 마쳤으면 저장하고 닫은 뒤, 변경 사항을 적용하기 위해 Collectd 서비스를 재시작합니다. 그리고 netstat 명령으로 Collectd의 네트워크 소켓이 정상적으로 열렸는지 확인합니다.

# service collectd restart
또는
# systemctl restart collectd    [systemd 기반 시스템]
# netstat -tulpn | grep collectd

Collectd를 리눅스 클라이언트용 중앙 모니터링 서버로 구축하는 방법

마무리

여기까지 완료되면 중앙 서버는 모든 네트워크 인터페이스의 UDP 25826 포트에서 클라이언트 데이터를 수신할 준비가 된 상태입니다. 방화벽을 사용 중이라면 해당 포트의 UDP 트래픽을 허용해야 하며, 이어서 각 모니터링 대상 서버(클라이언트)의 Collectd를 클라이언트 모드로 설정해 수집된 통계를 이 중앙 서버로 전송하면 통합 모니터링 환경 구축이 완료됩니다.