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

이 구성을 위해 필요한 것은 크게 두 가지입니다. 첫째, 사내의 한 대 호스트에 Collectd 데몬과 Collectd-web 웹 인터페이스를 설치하고 서버 모드로 실행해 중앙 모니터링 지점 역할을 맡깁니다. 둘째, 나머지 모니터링 대상 호스트들은 Collectd를 클라이언트 모드로만 설정하여 수집한 통계를 중앙 서버로 전송하도록 합니다.
사전 요구 사항
- 리눅스 서버 모니터링을 위한 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 서버 주소는 자신의 위치와 환경에 맞게 교체해서 사용하세요.

2. 다음으로, 매일 자정에 시간 동기화가 자동으로 실행되도록 아래 명령으로 root의 crontab 파일을 엽니다.
# crontab -e
3. root crontab 파일이 열리면 맨 아래에 다음 줄을 추가한 후 저장하고 종료하여 스케줄을 활성화합니다.
@daily ntpdate 0.ro.pool.ntp.org

참고: 네트워크에 존재하는 모든 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


이어서 파일 내용을 더 살펴 Network 플러그인 블록을 찾아 아래와 같이 주석을 해제하고, Listen 주소 부분을 다음 예시처럼 수정합니다.
<Plugin network> ... # server setup: <Listen "0.0.0.0" "25826"> </Listen> .... </Plugin>

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

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