본문 바로가기

IT지식

1. 자빅스 모니터링 시스템 구축하기 (ZABBIX)

반응형

안녕하세요. 세상 모두의 IT 잇츠입니다~!


이번 글은 ZABBIX라는 오픈소스를 통해 모니터링 시스템을 구축해보려고 합니다.

회사에서 서버, 네트워크 업무를 보시는 분들에게 유용한 시스템이고 나만의 모니터링 시스템을 구축해서 장애가 생겼을 때 빠르게 대응할 수 있다는 장점이 있습니다. 먼저 ZABBIX에 대해서 알아볼까요?

1. ZABBIX란

[ 소개 ]

- Zabbix는 엔터프라이즈에 대응한 모니터링 솔루션이며, 오픈 소스로 배포
- Zabbix는 다수의 네트워크 매개 변수 및 서버의 상태와 무결성을 모니터링하는 소프트웨어
- Zabbix는 유연한 알림 메커니즘을 갖추고 있어 사용자는 모든 이벤트에서 메일 기반 통지를 하도록 설정할 수 있다. 따라서, 이러한 기능을 통해 서버의 장애에 신속하게 대응할 수 있다.
- Zabbix는 저장된 데이터를 바탕으로 뛰어난 보고서 및 데이터의 그래픽 표시 기능을 제공
- Zabbix는 폴링과 트래핑을 모두 지원합니다. Zabbix의 모든 보고서, 통계 및 구성 매개 변수는 웹 인터페이스를 통해 액세스할 수 있으며 웹 인터페이스는 어떤 장소에서도 액세스할 네트워크 나 서버의 상태를 확인할 수 있습니다.

[ 장점 ]

- 강력한 모니터링 기능과 그래프를 하나의 도구로 결합시킨 점
- 알림에 대해 구성을 고도화할 수 있음
- 알림에 완벽하게 사용자 정의 메시지를 이용할 수 있음
- 기본적으로 30초마다 지표를 수집하며, 인터벌을 조정할 수 있음
- 빠른 웹 인터페이스
- 시스템에 대한 사용자 권한 설정으로 특정 사용자를 특정 뷰에 한정
- 수집된 데이터를 유연하지 못한 RRD 파일 대신 MySQL 등의 데이터베이스에 저장
- 데이터 저장 기간을 자유롭게 구성할 수 있으며, 데이터베이스를 백업 기능이 지원
- 템플릿을 사용하여 검사 시간을 절약
- 사용자 정의에 따른 다양한 그래프 지원
- 다양한 스크린과 슬라이드 쇼를 이용하여 대시보드를 구현
- 매우 유연한 트리거 설정
- 쉘 스크립트를 사용하여 알림을 쉽게 스크립팅
- Zabbix 프록시를 사용하여 원격 모니터링을 쉽게 할 수 있음

[ 단점 ]

-알림 설정 부분에서 다량의 임계치 설정이 필요
-웹 인터페이스 기능이 너무 많고 복잡
-맵 편집기를 이용해 설정하는 시간이 많이 소요
- 아이템 당 하나의 값만을 리턴 받을 수 있음
-같은 종류의 개별 자산을 모니터링할 때 템플릿이 적용되지 않아 일일이 트리거 설정이 필요해 번거로움

2. 환경 구성

- 환경 구성은 Zabbix Server, Linux Client, Windows Client로 구성했습니다.
- Server 설정이 완료된 후에 Client에 Agent 설치를 진행하기 위해 VMware를 이용하여 총 3대로 구성했습니다.

Machine OS IP
Zabbix Server CentOS 6.9 64bit 192.168.100.30
Zabbix Linux Agent CentOS 6.9 64bit 192.168.100.40
Zabbix Windows Agent Windows Server 2012 R2 192.168.100.50

[구조]

3. Zabbix Server 설치

- 먼저 Server 구성이 완료된 후에 다음 포스팅에서 Agent 다루는 방법에 대해 설명하겠습니다. 차례대로 진행하시면
설치하는데 큰 어려움은 없습니다~^^

3-1 Apache 설치

# yum -y install httpd //아파치 데몬 설치
# vi /etc/httpd/conf/httpd.conf //아파치 설치 완료 후에 httpd.conf 파일에 들어가 해당 행을 수정
# service httpd start // 서비스 시작# chkconfighttpd on // 부팅 시 아파치 데몬 실행

276 ServerName localhost:80 242 User apache 243 Group apache 536 ServerSignature Off

3-2 MariaDB 설치

# vi /etc/yum.repo.d/mariadb.repo // 아래 내용 추가하여 MariaDB yum으로 설치하기 위한 repository 추가

mariadb.repo 편집
# yum -y install MariaDB-server MariaDB-clinet // 패키지 설치
# service mysql start // DB 서비스 시작
# mysql_secure_installation // MariaDB 보안 설정
# chkconfigmysql on // 부팅 시 DB 서비스 시작# service mysql restart //데몬 재시작

Enter current password for root (enter for none): // 현재 비밀번호가 없으므로 엔터 Set root password? [Y/n]Y // root 비밀번호 설정 New password: // 비밀번호 입력 Re-enter new password: // 비밀번호 재입력 Remove anonymous users? [Y/n] Y // 익명의 접근 차단 여부 Y Disallow root login remotely? [Y/n] Y // root의 원격 접근 차단 여부 Y Remove test database and access to it? [Y/n] Y //TEST DB 제거 Y Reload privilege tables now? [Y/n] Y //현재 설정값 적용 Y

3-3. PHP 5.6 설치

- CentOS6의 기본 Repository로는 5.3.3 이 설치됨
- Zabbix의 필요 최소 버전은 5.4이므로 다른 저장소를 추가해서 PHP를 설치
- 추가 저장소로는 PHP 저장소인 Remi 저장소를 사용함

# yum -y installepel-release // epel-release 등록
// 그림과 같이 rpm으로 remi-release 설치(epel에 의존성이 있음)

# yum --enablerepo=remi-php56 install -y phpphp-mysqlphp-develphp-gdphp-imapphp-ldapphp-mbstringphp-odbcphp-pear php-xml php-xmlrpcphp-pecl-apcphp-bcmathlibjpeg* libpng* freetype* gd-* // 필요 PHP 패키지 설치

# vi /etc/php.ini // PHP 설정 파일

202 short_open_tag = On
// OFF를 ON으로 바꿔준다 OFF로 해놓으면<? ?> 사이에서 PHP가 작동하지 않는다.

3-4. ntp 설치 및 selinux 비활성화

# yum -y install ntp // 서버 시간 동기화를 위한 ntp 설치
# vi /etc/ntp.conf //ntp.conf 수정
기존의 22~25라인 주석 처리하고 26번 라인에 국내 서버인 time.bora.net을 추가 후 저장


ntp.conf 수정
# service ntpd start
# chkconfigntpd on
# ntpq -p // ntp 동작 확인


ntp 동작 확인
# vi /etc/sysconfig/selinux // selinux 설정 파일

7 SELINUX=disabled // 사용 안 함으로 변경

# sestatus // 재부팅 후 selinux 활성화 여부 확인 명령어# reboot //서버 재부팅
- SELinux status: disabled // 이렇게 되면 정상

4. Zabbix 3설치

Zabbix를 구성하기 위한 기본적인 설정이 모두 끝났으니 이제 Zabbix를 설치해볼까요? 먼저 Zabbix를 설치하고 설정 부분을 하나씩 채워보겠습니다~^^

# rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm
# yum install -y zabbix-get zabbix-server-mysqlzabbix-web-mysqlzabbix-agent //zabbix 설치

- Zabbix 관련 DB 설정

- zabbix 설치 진행
# cd /usr/share/doc/zabbix-server-mysql-3.0.10/ //경로 이동
# gunzip create.sql.gz // Zabbix 관련 DB 설정 파일 압축 해제
# mysql -u root -pp@ssw0rd zabbix<create.sql // Zabbix DB에 해당 설정 파일 복원

- Zabbix server 설정 파일 변경
# vi /etc/zabbix/zabbix_server.conf //아래 라인에 해당하는 거 변경

81 DBHost=localhost 91 DBName=zabbix // DB에 생성한 자비스 DB 명 입력 107 DBUser=zabbix 115 DBPassword=p@ssw0rd //zabbix DB에 설정한 패스워드를 입력

# vi /etc/zabbix/zabbix_agentd.conf- Zabbix agent 설정 파일 변경 (서버 자원도 모니터링하기 위해 필요)

95 Server=192.168.100.30// zabbix server IP 입력 136 ServerActive=192.168.100.30 // zabbix server IP 입력 147 Hostname=Zabbix server // Web에서 호스트 추가할 때 hostname과 일치해야 하므로 기억해둬야 함

# cp /usr/share/doc/zabbix-web-*/httpd22-example.conf /etc/httpd/conf.d/zabbix.conf- zabbix frontend 웹서버 파일 복사 및 파일 수정

14 php_valuemax_execution_time 600 15 php_valuememory_limit 256M 16 php_valuepost_max_size 32M 17 php_valueupload_max_filesize 16M 18 php_valuemax_input_time 600 19 php_valuealways_populate_raw_post_data -1 20 php_valuedate.timezone Asia/Seoul //원래 #으로 주석이 달려있으니 해제

# vi /etc/sysconfig/iptables설정 수정- iptables 방화벽 포트 허용 및 재시작

방화벽 포트 허용 및 재시작
# service iptables restart

- Zabbix Web server setup
웹 접속 http://(zabbix server ip or localhost)/zabbix
첫 접속 시 /zabbix/setup.php 페이지로 접속하여 설치가 진행된다.


Zabbix 설정 확인
모두 OK라고 표시되어야 진행이 된다.


Zabbix DB 설정
- 위에서 설정한 Zabbix 관련 DB 설정 부분 참조
Database name : 생성한 자비스 DB 명
User :자빅스유저명
Password :zabbix 패스워드


여기서는 사용자가 운영할 Zabbix의 이름을 지어주시면 됩니다~! 메인 페이지 제목에 표시될 이름이에요.
이후에는 설정한 부분을 확인하고 Nest Step 을 눌러주시면 됩니다. 자 이제 마지막이에요~!


Zabbix 로그인 화면
초기 ID : Admin // 대소문자 구분해 주세요
Password :zabbix


Zabbix 초기화면 입니다.


이렇게 Zabbix Server 설정을 해보았는데요~! 모니터링 시스템은 이렇게 구축하는 것보다 Agent를 하나씩 관리하는 부분에서 더 힘든 것 같아요ㅠ.ㅠ
다음 포스팅에서는 Linux, Windows에 Agent 파일을 설치해보고 설정하는 방법에 대해 올리도록 하겠습니다.

Zabbix 서버 설치 완료~!

반응형