관리 메뉴

IT창고

Zabbix 설치 본문

보안/Network Security

Zabbix 설치

방구석여포 2019. 6. 29. 23:13

Zabbix는 엔터프라이즈급의 오픈소스 분산 모니터링 솔루션 입니다. 많은 종류의 네트워크 서비스나 서버 등을 감시하고 추적하여 관리자에게 알려주는 시스템으로 Zabbix는 데이버데이스를 사용하는데 MySQL, SQLite 등을 사용할수 있습니다. 백엔드 언어는 C언어로 만들어졌으며 프론트엔드는 PHP로 만들어졌습니다. Zabbix 에이전트 소프트웨어 사용하면 다른 OS에서 더 많은 정보를 감시할수있습니다. 에이전트를 사용하지 않더라도 Zabbix에 SSH나 Telnet으로 연결하여 감시할수있습니다. 


아래의 링크에서 Zabbix 플랫폼을 선택하여 다운로드 할수있습니다.

Zabbix 다운로드


Zabbix를 설치하는 방법은 3가지가 있습니다. 

1. 배포 패키지(데비안, 오라클 리눅스, 레드헷 리눅스 등)에 설치하는 방법 

2. Zabbix 어플라이언스로 설치하는 방법

3. 최신 소스 아카이브를 다운로드하고 직접 컴파일하는 방법


1번 방법은 이미 존재하는 배포 패키지에  yum이나 apt-get 같은 패키지 설치 도구로 Zabbix를 설치합니다. 

2번 방법은 Zabbix 어플라이언스에 설치iso나 이미 설치되어있는 가상 어플라이언스를 다운받아 바로 사용이 가능합니다. 


먼저 2번 방법을 사용한 Zabbix 설치에 대해 알아보겠습니다. 

테스트 환경은 최소 4GB 이상의 RAM이 필요합니다.



맨 위의 다운로드 링크로 접근하면 위와 같은 페이지가 나오며 Appliance에 iso, .vmdk 등 파일을 다운로드 할수있습니다. 2번 방법으로는 가상머신 VMware로 설치를 진행하므로 .vmdk 파일을 다운받습니다. 

다운받으면 .tar.gz 압축 파일로 되어있으며 압축을 풀고 VMware 에서 file -> open -> zabbix .vmx파일을 선택하면 됩니다.



위와 같이 VMware에서 확인할수있으며 저는 프로세스를 2개로 조정하였습니다. 네트워크를 NAT, Bridged 중 자신이 구축할 네트워크 환경에 맞춰 선택 후 zabbix를 시작합니다.



부팅을 시작하면 위와 같은 화면이 나오며 테스트 환경에 따라 부팅에 시간이 걸립니다. 

부팅되면 login을 해야하는데 appliance임으로 직접 설치를 진행하지 않았기에 계정과 패스워드의 정보를 알수없습니다.


id/pw정보는 링크를 클릭하면 나오는 메뉴얼을 참고하여 확인할 수 있으며 현재 테스트하는 zabbix의 계정은 appliance이며 패스워드는 zabbix 입니다.

root 권한은 sudo su 명령어로 전환이 가능합니다. root권한으로 네트워크 설정을 진행하면 됩니다.


zabbix appliance의 데이터베이스는 MySQL을 사용하며 패스워드는 임의로 생성이 되는데 /root/.my.cnf 파일에 패스워드 내용을 확인할수있습니다. 


zabbix appliance의 파일위치로 구성파일은 /etc/zabbix 이며 zabbix의 프론트엔드 파일은 /usr/share/zabbix 이고 사용자 zabbix의 홈 디렉토리 위치는 /var/lib/zabbix에 위치합니다. 

zabbix의 프론트엔드의 설정은 /etc/apache2/conf-available/zabbix.conf 파일에서 진행합니다. 

zabbix 업데이트의 경우 sudo apt install --only-upgrade 'zabbix. *' 명령어로 업데이트가 가능합니다. 


그 외에 appliance zabbix의 정보는 id/pw정보 링크된 페이지를 참고합니다. 



1번 방법인 기존 OS에 Zabbix를 설치하는 법을 알아보겠습니다. 

테스트 환경은 VMware 가상머신에서 리눅스 CentOS 7.x 입니다. 



여기를 클릭하면 위와 같은 웹페이지로 이동합니다.

설치할 zabbix 버전과 OS 그리고 그 OS의 버전을 선택하고 사용할 데이터베이스를 선택합니다. 

선택이 끝나면 웹 페이지 아래에 zabbix 저장소 설치 명령어가 나타나며 이 명령어를 본인이 zabbix를 설치할 리눅스에 사용합니다.


위와 같이 선택한 플랫폼에 맞는 설치법이 웹페이지에 나옵니다. 그럼 위와 같이 진행해보도록 하겠습니다.

테스트를 진행하는 리눅스에는 충돌 방지를 위해 다른 패키지 등을 설치하지 않았습니다.


zabbix 패키지를 설치하고 데이터베이스 설정입니다. 이 과정에서 몇가지 테스트를 해봤는데 처음 OS를 설치하고 아무것도 없는 서버로 mysql은 따로 설치해야만 합니다. 설치 전이나 후에 mysql 혹은 mariadb를 설치해둬야 합니다. 


현재 테스트하는 DB는 MariaDB로 mysql과 큰 차이가 없으므로 mariadb로 사용해도 됩니다.

mariadb 콘솔에 접속하면 위와 같이 초기 데이터베이스 생성 및 설정을 합니다.


초기 스키마 및 데이터를 가져오는 작업입니다. 위의 DB콘솔에서 작업했던 암호를 입력하면 됩니다. 

만약 제대로 진행이 안될 경우 systemctl restart zabbix-server zabbix-agent httpd 명령어를 입력하여 데몬을 시작시켜놓고 위의 사진의 명령어를 사용해봅니다


vi /etc/zabbix/zabbix_server.conf 명령어로 위의 zabbix 사버 설정파일에 몇 가지 내용을 수정해줍니다. 91번과 124번 주석을 해제하고 124번에 zabbix DB계정의 패스워드를 입력합니다. zabbix 패스워드는 DB콘솔에서 작업했던 콘솔입니다.


마지막 설정으로 /etc/httpd/conf.d/zabbix.conf 파일에서 올바른 시간대를 설정합니다. 

여기까지 모든 설정이 끝났습니다. 이제 데몬을 재시작하도록 합니다.


systemctl restart zabbix-server zabbix-agent httpd 명령어로 데몬을 재시작합니다. 

 현재 서버를 zabbix 서버로 만든다면 장애나 셧다운을 대비해서 systemctl enable zabbix-server zabbix-agent httpd 

명령어도 추가로 입력합니다.


설치과정이 모두 끝났습니다. 마무리로 selinux가 disabled되어있는지 확인하고 방화벽 오픈이 되어있는지 확인합니다.

 


zabbix가 웹 브라우저로 정상적으로 접근되는걸 확인할 수 있습니다.  웹 브라우저로의 접속은 http://localhost(자신의ip)/zabiix URL로 접근이 가능합니다. 접근하면 위와 같이 zabbix 프론트엔드 구성을 시작합니다.



check of pre-requisites에서 모든 족건이 충족하는지 확인합니다. 사전 요구 사항을 만족하지 못하면 zabbix를 제대로 실행할수없습니다. 다음으로 DB 연결 설정으로 이 포스팅의 내용과 같이 진행되었다면 DB콘솔에서 만들었던 zabbix계정의 패스워드만 입력하고 넘어가면 됩니다.



zabbix 세부 정보 설정입니다. 이름은 선택사항이므로 그냥 넘어가도 되며 이름을 작성하면 메뉴 막대 및 페이지 제목에 표시 됩니다.


여기까지 진행되면 zabbix 프론트엔드 설정도 모두 끝났습니다.


프론트엔드 설정이 끝났으므로 계정을 입력 후 접속해보도록 하겠습니다. 

zabbix 웹 계정 중 관리자계정은 id: Admin,  pw: zabbix 입니다.  대소문자 구분하며 Brute force attack을 방지하기 위한 기능으로 5번 연속 로그인 실패 시 30초 동안 로그인 기능이 일시 중지 되며 로그인 성공 후에 실패한 로그인 시도의 IP주소가 표시 됩니다.


여기까지 Zabbix 설치과정 이였습니다.

Comments