서버 모니터링 · 4 min read · Oct 20, 2025
우분투 16.04에서 Shinken으로 서버 모니터링
Shinken은 파이썬으로 작성된 오픈 소스 컴퓨터 및 네트워크 모니터링 프레임워크로, Nagios와 호환됩니다. Shinken은 리눅스, 유닉스 및 윈도우와 같은 파이썬 애플리케이션을 실행할 수 있는 모든 운영 체제에서 사용할 수 있습니다. Shinken은 Jean Gabes가 새로운 Nagios 아키텍처의 개념 증명을 위해 작성했지만, Nagios 저자에 의해 거부되었고 Nagios와 호환되는 독립적인 네트워크 및 시스템 모니터링 도구가 되었습니다.
이 튜토리얼에서는 소스에서 Shinken을 설치하고 모니터링 시스템에 리눅스 호스트를 추가하는 방법을 보여드리겠습니다. Shinken 서버와 모니터링 호스트의 운영 체제로 우분투 16.04 Xenial Xerus를 사용할 것입니다.
1단계 - Shinken 서버 설치
Shinken은 파이썬 프레임워크로, pip를 사용하여 설치하거나 소스에서 설치할 수 있습니다. 이 단계에서는 소스에서 Shinken을 설치합니다.
Shinken 설치를 시작하기 전에 완료해야 할 몇 가지 작업이 있습니다.
새로운 파이썬 패키지를 설치하고 이름이 “shinken”인 리눅스 사용자를 생성합니다:
sudo apt-get install python-setuptools python-pip python-pycurl
useradd -m -s /bin/bash shinkenGitHub 리포지토리에서 Shinken 소스를 다운로드합니다:
git clone https://github.com/naparuba/shinken.git
cd shinken/그런 다음 아래 명령어로 Shinken을 설치합니다:
git checkout 2.4.3
python setup.py install다음으로, 더 나은 결과를 위해 우분투 리포지토리에서 ‘python-cherrypy3’를 설치해야 합니다:
sudo apt-get install python-cherrypy3이제 Shinken이 설치되었습니다. 다음으로 Shinken을 부팅 시 시작하도록 추가하고 시작합니다:
update-rc.d shinken defaults
systemctl start shinken2단계 - Shinken Webui2 설치
Webui2는 shinken.io에서 제공되는 Shinken 웹 인터페이스입니다. Sshinken webui2를 설치하는 가장 쉬운 방법은 shinken CLI 명령을 사용하는 것입니다(이 명령은 shinken 사용자로 실행해야 합니다).
shinken 사용자로 로그인합니다:
su - shinkenshinken 구성 파일을 초기화합니다 - 이 명령은 새로운 구성 .shinken.ini를 생성합니다:
shinken --init그리고 이 shinken CLI 명령으로 webui2를 설치합니다:
shinken install webui2Webui2가 설치되었지만, MongoDB와 pip로 다른 파이썬 패키지를 설치해야 합니다. 아래 명령을 root로 실행합니다:
sudo apt-get install mongodb
pip install pymongo>=3.0.3 requests arrow bottle==0.12.8다음으로, shinken 디렉토리로 이동하여 ‘broker-master.cfg’ 파일을 편집하여 새로운 webui2 모듈을 추가합니다:
cd /etc/shinken/brokers/
vim broker-master.cfg40번째 줄에 새로운 옵션을 추가합니다:
modules webui2파일을 저장하고 편집기를 종료합니다.
이제 연락처 디렉토리로 이동하여 관리 구성에 대한 ‘admin.cfg’ 파일을 편집합니다.
cd /etc/shinken/contacts/
vim admin.cfg아래에 표시된 값을 변경합니다:
contact_name admin # 사용자 이름 'admin'
password yourpass # 비밀번호 'mypass'저장하고 종료합니다.
3단계 - Nagios-plugins 및 Shinken 패키지 설치
이 단계에서는 Nagios-plugins와 일부 Perl 모듈을 설치합니다. 그런 다음 모니터링을 수행하기 위해 shinken.io에서 추가 shinken 패키지를 설치합니다.
Nagios-plugins와 Perl 모듈을 빌드하고 설치하는 데 필요한 cpanminus를 설치합니다:
sudo apt-get install nagios-plugins* cpanminuscpanm 명령으로 이러한 Perl 모듈을 설치합니다:
cpanm Net::SNMP
cpanm Time::HiRes
cpanm DBI이제 utils.pm 파일에 대한 새 링크를 shinken 디렉토리에 생성하고 Log_File_Health에 대한 새 디렉토리를 생성합니다:
chmod u+s /usr/lib/nagios/plugins/check_icmp
ln -s /usr/lib/nagios/plugins/utils.pm /var/lib/shinken/libexec/
mkdir -p /var/log/rhosts/
touch /var/log/rhosts/remote-hosts.log다음으로, shinken.io에서 SSH 및 SNMP 소스를 모니터링하기 위해 shinken 패키지 ssh 및 linux-snmp를 설치합니다:
su - shinken
shinken install ssh
shinken install linux-snmp4단계 - 새로운 리눅스 호스트/host-one 추가
우리는 IP 주소가 192.168.1.121이고 호스트 이름이 ‘host-one’인 우분투 16.04 서버를 사용하여 모니터링할 새로운 리눅스 호스트를 추가할 것입니다.
리눅스 호스트-one에 연결합니다:
ssh [email protected]우분투 리포지토리에서 snmp 및 snmpd 패키지를 설치합니다:
sudo apt-get install snmp snmpd다음으로, vim으로 ‘snmpd.conf’ 구성 파일을 편집합니다:
vim /etc/snmp/snmpd.conf15번째 줄을 주석 처리하고 17번째 줄의 주석을 제거합니다:
#agentAddress udp:127.0.0.1:161
agentAddress udp:161,udp6:[::1]:16151번째 줄과 53번째 줄을 주석 처리한 후 아래에 새로운 줄 구성을 추가합니다:
#rocommunity mypass default -V systemonly
#rocommunity6 mypass default -V systemonly
rocommunity mypass저장하고 종료합니다.
이제 systemctl 명령으로 snmpd 서비스를 시작합니다:
systemctl start snmpdShinken 서버로 가서 ‘hosts’ 디렉토리에 새로운 파일을 생성하여 새로운 호스트를 정의합니다.
cd /etc/shinken/hosts/
vim host-one.cfg아래 구성을 붙여넣습니다:
define host{
use generic-host,linux-snmp,ssh
contact_groups admins
host_name host-one
address 192.168.1.121
_SNMPCOMMUNITY mypass # SNMP Pass Config on snmpd.conf
}저장하고 종료합니다.
Shinken 서버에서 SNMP 구성을 편집합니다:
vim /etc/shinken/resource.d/snmp.cfg‘public’을 ‘mypass’로 변경합니다 - 이는 클라이언트 호스트-one의 snmpd 구성 파일에서 사용한 비밀번호와 동일해야 합니다.
$SNMPCOMMUNITYREAD$=mypass저장하고 종료합니다.
이제 두 서버 - Shinken 서버와 모니터링되는 리눅스 호스트를 재부팅합니다:
reboot새로운 리눅스 호스트가 Shinken 서버에 성공적으로 추가되었습니다.
5단계 - Shinken Webui2 접근
포트 7677에서 Shinken webui2를 방문합니다(URL의 IP를 귀하의 IP로 교체):
사용자 admin과 비밀번호(관리자.cfg 구성 파일에서 설정한 비밀번호)로 로그인합니다.

Webui2의 Shinken 대시보드.

우리의 2대 서버가 Shinken으로 모니터링되고 있습니다.

linux-snmp로 모니터링되는 모든 서비스 목록.

모든 호스트 및 서비스의 상태.

6단계 - Shinken의 일반적인 문제
- NTP 서버 문제
NTP와 함께 이 오류가 발생할 때:
TimeSync - CRITICAL ( NTP CRITICAL: No response from the NTP server)
TimeSync - CRITICAL ( NTP CRITICAL: Offset unknown )이 문제를 해결하려면 모든 리눅스 호스트에 ntp를 설치합니다:
sudo apt-get install ntp ntpdatentp 구성을 편집합니다:
vim /etc/ntp.conf모든 풀을 주석 처리하고 다음으로 교체합니다:
#pool 0.ubuntu.pool.ntp.org iburst
#pool 1.ubuntu.pool.ntp.org iburst
#pool 2.ubuntu.pool.ntp.org iburst
#pool 3.ubuntu.pool.ntp.org iburst
pool 0.id.pool.ntp.org
pool 1.asia.pool.ntp.org
pool 0.asia.pool.ntp.org다음으로 restrict 내부에 새로운 줄을 추가합니다:
# 로컬 사용자는 ntp 서버를 더 면밀히 조사할 수 있습니다.
restrict 127.0.0.1
restrict 192.168.1.120 #shinken 서버 IP 주소
restrict ::1참고: 192.168.1.120은 Shinken 서버 IP 주소입니다.
저장하고 종료합니다.
ntp를 시작하고 Shinken 대시보드를 확인합니다:
tnpd- check_netint.pl을 찾을 수 없음 문제
shinken lib 디렉토리에 소스를 다운로드합니다:
cd /var/lib/shinken/libexec/
wget https://raw.githubusercontent.com/Sysnove/shinken-plugins/master/check_netint.pl
chmod +x check_netint.pl
chown shinken:shinken check_netint.pl- NetworkUsage 문제
다음과 같은 오류 메시지가 있습니다:
ERROR : Unknown interface eth\d+네트워크 인터페이스를 확인하고 linux-snmp 템플릿을 편집합니다.
내 우분투 서버에서 네트워크 인터페이스는 ‘enp0s8’이며, eth0가 아니므로 이 오류가 발생했습니다.
vim으로 linux-snmp 템플릿 팩을 편집합니다:
vim /etc/shinken/packs/linux-snmp/templates.cfg24번째 줄에 네트워크 인터페이스를 추가합니다:
_NET_IFACES eth\d+|em\d+|enp0s8저장하고 종료합니다.
참고문헌
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.