Ubuntu 16.04에서 Shinken으로 서버 모니터링
이 페이지에서
- 1단계 - Shinken 서버 설치
- 2단계 - Shinken Webui2 설치
- 3단계 - Nagios 플러그인 및 Shinken 패키지 설치\n
- 4단계 - 새 Linux 호스트/host-one 추가\n
- 5단계 - Shinken Webui2에 액세스
- 6단계 - Shinken의 일반적인 문제
- 참조
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 패키지 ssh 및 linux-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