2014년 4월 22일 화요일

Icinga and NagiosQL 사용하기

시스템 및 서비스 모니터링을 위해 Icinga를 사용하고 있으며, Icinga 설정파일들을 직접 editting 할 수 있지만 편의를 위해 다양한 설정은 NagiosQL을 사용하고 있다.
여기에서는 Icinga 및 NagiosQL이 설치되어 있다고 가정한다.

관리해야될 host 및 service가 적을 경우에는 수작업에 의해 모니터링이 가능하나 그 개수가 늘어나게 되면 모니터링을 위해 알맞은 툴이 필요하다. 여기서 언급하는 Icinga는 오픈소스인데 반해 훌륭한 기능을 제공하고 있다.

원하는 서비스를 모니터링하기 위해서는 기본적으로 그에 알맞는 실행파일(혹은 plugin)이 존재해야 한다. Icinga를 설치한 경우(여기서는 CentOS기준) /usr/local/icinga/libexec 아래에 몇개의 실행파일들이 기본으로 존재한다. 이외에 사용자가 작성한 스크립트 또는 exe 파일을 이곳에 위치할 수 있다.
테스트로 solr서버의 health 체크를 위한 check_solr_health.py plugin을 아래와 같이 작성하였다.


* plugin 작성시 참고 - http://docs.icinga.org/latest/en/pluginapi.html

다음으로 NagiosQL을 통해 host, service, command 등을 설정한다.

# Command에 작성된 plugin 등록
$HOSTADDRESS$, $ARGn$ 와 같은 standard macro는 http://docs.icinga.org/latest/en/macrolist.html를 참조한다.

# 모니터링을 위한 host 등록
성격이 유사한 host가 여러개 존재할 경우 check settings, Alarm settings, Addon settings 등에 공통적으로 적용할 사항이 있다면 Template을 만들어 사용할 수 있다.

# Service 등록
service 등록시에 Hosts 항목에서 service를 적용하고자 하는 host를 지정할 수 있다.
$_HOSTHEALTH_PORT$, $_HOSTHEALTH_URL$ 등 custom variable은 http://docs.icinga.org/latest/en/customobjectvars.html을 참조한다.

# Write config

위의 그림에서 missed라고 되어있는 부분은 service 설정시 Active 를 체크해제한 상태를 나타낸다. 즉, 적용을 보류하는 것이다.
각각의 설정은 Write config 또는 Write all config files을 통해 저장되며, icinga service를 restart 하여 적용할 수 있다.

# Icinga-web을 통한 모니터링

2014년 4월 16일 수요일

logrotate 오류

CentOS 환경에서 log파일의 rotate를 위해 logrotae를 사용하고 있다.
공통적인 설정은 /etc/logrotate.conf에 설정되어 있으며, 여러개의 log파일을 개별로 설정하고자 할 경우 /etc/logrotate.d/ 아래에 개별 설정을 아래와 같이 할 수 있다.

logroate는 /etc/cron.daily/logrotate에 등록되어 일단위로 실행되게 되어있다. 하지만 logrotate가 정상동작하지 않아 몇가지를 확인해 보았다.
먼저, /var/log/cron 을 통해 cron job이 정상 실행된 것을 확인하였으나, /var/log/messages에 아래와 같은 ALERT 메시지가 남겨져 있었다.

또한 logrotate -v /etc/logrotate.conf 를 통해 테스트 한 결과 "error creating unique temp file: Permission denied" 와 같은 오류 메시지가 나타났다

이와 같은 logrotate가 정상적으로 실행되지 않은 이유는 SELinux의 enforcing mode 때문이었다.
이를 해결하기 위해서는 다음과 같이 실행할 수 있다.

단, 위와 같은 방법은 시스템 재부팅시 다시 원래대로 되돌아가기 때문에 영구적인 적용을 위해서는 /etc/sysconfig/selinux 의 내용을 변경해야 한다.