서버 모니터링 · 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 shinken

GitHub 리포지토리에서 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 shinken

2단계 - Shinken Webui2 설치

Webui2는 shinken.io에서 제공되는 Shinken 웹 인터페이스입니다. Sshinken webui2를 설치하는 가장 쉬운 방법은 shinken CLI 명령을 사용하는 것입니다(이 명령은 shinken 사용자로 실행해야 합니다).

shinken 사용자로 로그인합니다:

su - shinken

shinken 구성 파일을 초기화합니다 - 이 명령은 새로운 구성 .shinken.ini를 생성합니다:

shinken --init

그리고 이 shinken CLI 명령으로 webui2를 설치합니다:

shinken install webui2

Webui2가 설치되었지만, 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.cfg

40번째 줄에 새로운 옵션을 추가합니다:

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* cpanminus

cpanm 명령으로 이러한 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 패키지 sshlinux-snmp를 설치합니다:

su - shinken  
shinken install ssh  
shinken install linux-snmp

4단계 - 새로운 리눅스 호스트/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.conf

15번째 줄을 주석 처리하고 17번째 줄의 주석을 제거합니다:

#agentAddress  udp:127.0.0.1:161  
agentAddress udp:161,udp6:[::1]:161

51번째 줄과 53번째 줄을 주석 처리한 후 아래에 새로운 줄 구성을 추가합니다:

#rocommunity mypass  default    -V systemonly  
#rocommunity6 mypass  default   -V systemonly  
   
rocommunity mypass

저장하고 종료합니다.

이제 systemctl 명령으로 snmpd 서비스를 시작합니다:

systemctl start snmpd

Shinken 서버로 가서 ‘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로 교체):

http://192.168.1.120:7767

사용자 admin과 비밀번호(관리자.cfg 구성 파일에서 설정한 비밀번호)로 로그인합니다.

Shinken 로그인 페이지

Webui2의 Shinken 대시보드.

Shinken 모니터링 대시보드

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

두 서버가 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 ntpdate

ntp 구성을 편집합니다:

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.cfg

24번째 줄에 네트워크 인터페이스를 추가합니다:

_NET_IFACES         eth\d+|em\d+|enp0s8

저장하고 종료합니다.

참고문헌

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.