웹사이트 검색

Ubuntu 16.04에서 Shinken으로 서버 모니터링


이 페이지에서

  1. 1단계 - Shinken 서버 설치
  2. 2단계 - Shinken Webui2 설치
  3. 3단계 - Nagios 플러그인 및 Shinken 패키지 설치\n
  4. 4단계 - 새 Linux 호스트/host-one 추가\n
  5. 5단계 - Shinken Webui2에 액세스
  6. 6단계 - Shinken의 일반적인 문제
  7. 참조

Shinken은 Python으로 작성되고 Nagios와 호환되는 오픈 소스 컴퓨터 및 네트워크 모니터링 프레임워크입니다. Shinken은 Linux, Unix 및 Windows와 같은 Python 응용 프로그램을 실행할 수 있는 모든 운영 체제에서 사용할 수 있습니다. Shinken은 새로운 Nagios 아키텍처에 대한 개념 증명으로 Jean Gabes에 의해 작성되었지만 Nagios 작성자에 의해 거절되었고 Nagios와 호환되는 독립적인 네트워크 및 시스템 모니터링 도구가 되었습니다.

이 튜토리얼에서는 소스에서 Shinken을 설치하고 Linux 호스트를 모니터링 시스템에 추가하는 방법을 보여드리겠습니다. Shinken 서버 및 모니터링 호스트의 운영 체제로 Ubuntu 16.04 Xenial Xerus를 사용하겠습니다.

1단계 - 신켄 서버 설치

Shinken은 Python 프레임워크이므로 pip로 설치하거나 소스에서 설치할 수 있습니다. 이 단계에서는 소스에서 Shinken을 설치합니다.

Shinken 설치를 시작하기 전에 완료해야 할 몇 가지 작업이 있습니다.

몇 가지 새로운 Python 패키지를 설치하고 "shinken"이라는 이름으로 Linux 사용자를 생성합니다.

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가 설치되어 있지만 pip로 MongoDB 및 다른 Python 패키지를 설치해야 합니다. 아래 명령을 루트로 실행하십시오.

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       # Username 'admin'
password        yourpass    # Pass 'mypass'

저장 및 종료.

3단계 - Nagios 플러그인 및 Shinken 패키지 설치

이 단계에서는 Nagios 플러그인과 일부 Perl 모듈을 설치합니다. 그런 다음 shinken.io에서 추가 shinken 패키지를 설치하여 모니터링을 수행합니다.

Perl 모듈을 빌드하고 설치하는 데 필요한 Nagios 플러그인 및 cpanminus를 설치합니다.

sudo apt-get install nagios-plugins* cpanminus

cpanm 명령어를 사용하여 다음 Perl 모듈을 설치합니다.

cpanm Net::SNMP
cpanm Time::HiRes
cpanm DBI

이제 utils.pm 파일에 대한 새 링크를 만들어 디렉터리를 축소하고 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단계 - 새 Linux 호스트/host-one 추가

IP 주소가 192.168.1.121이고 호스트 이름이 host-one인 Ubuntu 16.04 서버를 사용하여 모니터링할 새 Linux 호스트를 추가합니다.

Linux host-one에 연결:

ssh 

Ubuntu 리포지토리에서 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 서버로 이동하여 호스트 디렉토리에 새 파일을 생성하여 새 호스트를 정의합니다.

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

공용을 mypass로 변경 - 클라이언트 host-one의 snmpd 구성 파일에서 사용한 것과 동일한 암호여야 합니다.

$SNMPCOMMUNITYREAD$=mypass

저장 및 종료.

이제 두 서버(Shinken 서버와 모니터링되는 Linux 호스트)를 모두 재부팅합니다.

reboot

새로운 Linux 호스트가 Shinken 서버에 성공적으로 추가되었습니다.

5단계 - Shinken Webui2에 액세스

포트 7677에서 Shinken webui2를 방문하십시오(URL의 IP를 귀하의 IP로 교체).

사용자 admin과 비밀번호(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 )

이 문제를 해결하려면 모든 Linux 호스트에 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

다음으로, limits 안에 새 줄을 추가합니다.

# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict 192.168.1.120 #shinken server IP address
restrict ::1

참고: 192.168.1.120은 Shinken 서버 IP 주소입니다.

저장 및 종료.

ntp를 시작하고 Shinken 대시보드를 확인합니다.

ntpd

- 문제 check_netint.pl 찾을 수 없음

github 저장소에서 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 템플릿을 편집하십시오.

내 Ubuntu 서버에서 네트워크 인터페이스는 eth0이 아니라 enp0s8이므로 이 오류가 발생했습니다.

vim으로 linux-snmp 템플릿 팩을 편집합니다.

vim /etc/shinken/packs/linux-snmp/templates.cfg

네트워크 인터페이스를 24행에 추가합니다.

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

저장 및 종료.

참조

  • http://www.roblayton.com/search/label/monitoring