오픈소스 모니터링 툴 Zabbix(2) : 설치편

반응형

오픈소스 모니터링 툴 Zabbix(2) : 설치편

안녕하세요 김민욱입니다.

 

이번 포스팅에서는 Zabbix 1편 오픈소스 모니터링 툴 Zabbix(1) : 이론 편[1]에 이어서 설치 편을 말씀드리고자 합니다. Zabbix가 무엇인지에 대한 설명이 필요하시면 해당 링크를 눌러 읽어보시는 것을 추천드립니다. Zabbix는 도커 컨테이너로도 설치 간편하게 가능하며, 천천히 따라 하시기만 하면 아주 쉽게 매뉴얼대로 설치하실 수 있습니다. 

 

따라서 이번 포스팅에서는 먼저 Zabbix 서버를 설치하고 구축한 뒤, Zabbix 웹 UI를 살펴보고 Zabbix 에이전트를 모니터링 대상에 설치하고 정상적으로 모니터링을 수행하는 것에 대해 설명하도록 하겠습니다. 

 

해당 포스팅의 설치 과정은 다음의 글을 참고하여 작성되었습니다. [2]

 

OS VERSION : Ubuntu 18.04 LTS (Bionic)

Zabbix Version: 4.0

 

Zabbix 서버 설치

Zabbix 서버의 설치는 크게 php, Zabbix, 웹 인스톨, Zabbix 에이전트로 나뉩니다. Zabbix는 워낙 오래되었고, 유명한 모니터링 솔루션이기 때문에 이미 많은 자료도 나와있어서 어렵지 않게 설치하실 수 있을 것 같습니다. 

 

먼저 기본적으로 패키지 리스트를 업데이트해주고 패키지들을 업그레이드해주셔야 합니다. 

root@monit-server:~# apt-get update -y && apt-get dist-upgrade -y

그 다음 아래와 같이 Apache 서버 및 mysql 관련 모듈을 설치해주도록 합니다. 만약 설치가 되어 있으시다면, 해당 부분은 넘어가셔도 됩니다. 

root@monit-server:~# apt-get install apache2 libapache2-mod-php mysql-server

이제 Zabbix가 웹 서비스를 제공하기 위해 php와 관련된 여러 패키지들을 설치해주도록 합니다. 해당 모듈들은 Zabbix 설치 시 일반적으로 설치하는 모듈들입니다. ( 검색하시면 쉽게 찾을 수 있습니다.) 

root@monit-server:~# apt-get install php-mbstring php-bcmath php php-gd php-xml php-ldap php-mysql

아래와 같이 wget 명령어를 이용하여 zabbix 서버의 데비안 패키지 파일을 다운로드하고 dpkg라는 패키지 관리 도구를 통해 다운로드 한 zabbix 서버 데비안 패키지 파일을 설치하도록 합니다. 참고로 OS는 ubuntu 18.04 그리고 zabbix 버전은 4.0버전입니다. (4.4, 4.3을 설치하려고 하였으나 충돌이 나는 관계로 4.0으로 하였습니다.)

root@monit-server:~# wget https://repo.zabbix.com/zabbix/4.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.0-3%2Bbionic_all.deb
root@monit-server:~# dpkg -i zabbix-release_4.0-3+bionic_all.deb 

먼저 update 명령어를 통해 패키지를 업데이트 하여 줍니다. 그 다음 zabbix 에이전트가 수집한 데이터를 저장하기 위해 zabbix-server-mysql을 설치하고 웹 UI 제공을 위한 zabbix-frontend-php 또한 설치합니다. 

root@monit-server:~# apt-get update
root@monit-server:~# apt-get install zabbix-server-mysql zabbix-frontend-php

이제 mysql에 접속하여 zabbix 데이터 베이스를 생성해주어야 합니다. <root_password>는 mysql의 root 유저의 비밀번호를 입력하시면 됩니다. <password>는 zabbix 데이터 베이스의 비밀번호를 입력하시면 됩니다. 참고로 grant는 권한 설정을 위한 mysql 명령어입니다. 

root@monit-server:~# mysql -uroot -p<root_paasword>
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user zabbix@localhost IDENTIFIED BY '<password>';
mysql> grant all privileges on zabbix.* TO zabbix@localhost WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
mysql> quit;

아래의 경로로 이동한 후 앞서 생성한 zabbix의 데이터베이스에 zabbix-server-mysql에 있는 테이블, 스키마 등의 정보를 zabbix 데이터베이스로 옮깁니다. 

root@monit-server:~# cd /usr/share/doc/zabbix-server-mysql
root@monit-server:/usr/share/doc/zabbix-server-mysql# zcat create.sql.gz | mysql -u root -p zabbix(Database 명)

zabbix 서버와 데이터 베이스를 연동하기 위해 설정을 해주어야 하는데 vi 편집기를 이용하여 zabbix_server.conf를 열어주고, 앞서 설정했던 정보를 입력하게 됩니다. 만약 모두 기본값으로 설정하셨다면 비밀번호만 설정하셨던 것으로 변경하시면 될 것 같습니다. 

root@monit-server:~# vi /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=<DBpassword>

우분투에서는 부팅 시 서비스를 등록할 수 있는데 이를 update-rc.d를 이용하여 zabbix server를 zabbix-server를 새로 시작하는 서비스로 등록하여 줍니다.

root@monit-server:~# service zabbix-server start
root@monit-server:~# update-rc.d zabbix-server enable

마지막으로 아래의 파일을 열어 시간을 Asia/seoul로 변경하여 줍니다. 

root@monit-server:~# vi /etc/php/<버젼>/apache2/php.ini
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone ='Asia/Seoul'

모든 서비스를 재시작해주도록 합니다. 

root@monit-server:~# service zabbix-server restart
root@monit-server:~# service apache2 restart

Zabbix 웹 인터페이스 설치

zabbix 서버가 정상적으로 설치되었다면 아래의 주소를 통해 웹 인터페이스를 설치할 수 있습니다. 그림 1은 처음 웹으로 접속하였을 때 보이는 화면을 나타냅니다. 

http://<Zabbix server IP address>/zabbix

 

그림 1. 웹 설치 진행화면

웹 설치는 굉장히 간단 합니다. 단순하게 데이터베이스의 정보를 입력해주고 설치되지 않은 패키지가 있는지 확인하는 과정으로 이루어져 있습니다. 

 

그림 2. PHP 패키지 확인

그림 2에서는 PHP 패키지 리스트를 나타냅니다. 해당 화면에서 설치 되지 않은 패키지가 있다면, 설치해주어야 합니다. 모두 OK로 확인된다면 다음을 선택하시면 됩니다. 

 

그림 3. 데이터베이스 설정

그림 3에서는 데이터베이스 설정을 나타내는데, 기본으로 설정하셨다면 앞서 선택한 Zabbix 데이터베이스의 비밀번호를 입력하고 다음을 누르시면 됩니다. 

 

그림 4. Zabbix 서버 설정

그림 4에서는 Zabbix 서버 설정을 나타내는데 특별히 포트를 변경하시지 않으셨다면, 다음을 누르시면 됩니다. 그 이후 모두 다음을 누르시게 되면 아래 그림 5와 같이 Zabbix 로그인 화면을 확인하실 수 있습니다. 초기 아이디는 Admin이며 비밀번호는 zabbix입니다. 

 

그림 5. zabbix 로그인 화면

 

Zabbix 에이전트 설치 및 구성

이제 모니터링 대상에 Zabbix 에이전트를 설치하고 Zabbix를 통해 모니터링이 진행되는지 확인해보도록 하겠습니다. 그럼 에이전트를 통해  Zabbix 서버의 리소스를 모니터링하겠습니다.

root@monit-server:~# apt-get install zabbix-agent

apt 명령어를 통해 zabbix-agent를 설치하여 줍니다. 그다음 아래의 파일에서 해당 내용을 수정하여 줍니다. 

vi /etc/zabbix/zabbix_agentd.conf

Server = <Zabbix server의 IP 주소>
hostname = <Zabbix 웹에 등록한 이름>

해당 파일에서 Server와 hostname만 수정한 뒤 zabbix -agent를 재시작해줍니다. 추가적으로 zabbix는 zabbix-agent를 통해 원격으로 명령을 수행할 수 있는 기능을 제공합니다. 해당 기능은 zabbix 유저에게 권한을 부여하고 zabbix_agentd.conf에서 특정 옵션을 설정해주어야 합니다. 

 

이제 Zabbix 웹으로 돌아와서 모니터링 하기 위한 호스트를 등록하겠습니다. 우선 Zabbix 웹의 상단에서 Configuration -> Hosts를 누르면 그림 6과 같은 화면이 나타납니다. 해당 화면에서 Create host를 눌러주시면 됩니다. 

 

그림 6. Create Host.

Create Host를 누르게 되면 그림 7과 같은 화면이 나타나게 되는데, 앞서 zabbix 에이전트 구성 파일에서 입력한 hostname을 그대로 작성해주고, Groups은 별도의 그룹을 생성하지 않았다면 Zabbix servers 그룹을 선택하고 왼쪽으로 이동을 시킵니다. 에이전트 인터페이스의 IP 주소는 모니터링 대상에 대한 IP 주소를 넣어주셔야 합니다. 그 외에는 별도로 설정할 것이 없습니다. 

 

그림 7. Zabbix 모니터링 호스트등록

다음은 상단의 Templates 탭을 누르게 되면 Link new templates 세션의 Select 버튼을 확인할 수 있습니다. 해당 버튼을 누르게 되면,  템플릿의 리스트를 확인할 수 있습니다. 원하는 템플릿을 누르고 하단의 select를 누르면 그림 8과 같이 확인할 수 있습니다. 템플릿은 여러 개 선택할 수 있지만, 중복되는 데이터를 수집하는 템플릿은 동시에 선택할 수 없습니다. 

 

그림 8. Template 추가

그림 8에서는 두 개의 Add가 존재하는데 그중 Link new templates의 Add를 먼저 누르게 되면 Linked templates에 Link new templates의 템플릿이 추가됩니다. 그 뒤 Add 버튼을 눌러야 비로소 템플릿이 추가된 것입니다. 

 

맨 처음 Host의 리스트를 확인하는 화면에서 ZBX에 초록불이 들어와야 정상적으로 데이터를 수집하고 있음을 나타냅니다. 만약 Zabbix 에이전트와 연결이 되어있지 않다면 붉은색 불로 점등되어있으므로 zabbix 에이전트의 프로세스 상태를 확인하시거나, 설정 파일 점검이 필요합니다.

 

결론

이번 포스팅에서는 Zabbix 설치 과정을 포스팅으로 정리하였습니다. Zabbix는 이미 많은 자료들이 아주 잘 정리되어 있지만, 지금까지 Zabbix를 설치하면서 장애 혹은 에러 없이 안전하게 Zabbix를 설치하고 모니터링하는 여러 방법 중 하나를 말씀드렸습니다. 

 

혹 문제가 있으시다면, 언제든지 말씀해주시면 답변드리겠습니다.

 

감사합니다.

인용글

[1] 오픈소스 모니터링 툴 Zabbix(1) : 이론편 : https://delightwook.tistory.com/26

[2] zabbix install : https://tecadmin.net/install-zabbix-on-ubuntu/

업데이트로그

[1] 20200108 : Zabbix 3.2 설치 과정에서 Zabbix 4.0 설치로 업데이트 진행.

 

해당 글은 스스로 연구한 내용을 통한 주관적인 이해를 바탕으로 작성 되었습니다. 수정 할 부분이 있거나, 다른 의견이 있으시다면 언제든지 말씀해주시면 반영하도록 하겠습니다. 읽어 주셔서 감사합니다. 끝으로 불법으로 복제하는 것은 금합니다.

 

반응형

댓글

Designed by JB FACTORY