본문 바로가기
Linux/Zabbix

Ubuntu 20.04 Zabbix 설치

by 꾸적꾸적 2025. 3. 25.

Zabbix ?

엔터프라이즈급 오픈 소스 분산 모니터링 시스템

* 엔터프라이즈급 : 기업/회사/대규모 사업 급

즉, 대규모 서버 분산 모니터링 시스템.

그런데 오픈 소스라서 무료.

 

장점으로는 무료에 zabbix 서버를 분산으로 설치가 가능하여 부하 분산이 가능하지만,

단점으로는 구축 및 유지보수를 전부 자체 구축해야하므로 기술이 필요함.

 

Zabbix 구성요소

1. 메인 서버 : Agents 정보를 수집하는 중앙 저장소.
                     => 여기서 정보를 수집하고 관리하는 역할을 함

2. DB : 여기서는 MySQL을 활용하며, Agent와 서버를 통해 수집한 정보를 저장하는 저장소

3. 웹 인터페이스 : 서버에서 구축한 인터페이스를 보는 웹 사이트. 기본은 http://localhost/zabbix.

4. 프록시 : Zabbix 서버를 대신해서 데이터를 수집하는 용도. Proxy DB를 따로 구축해야함

5.  Agent : 말 그대로 Zabbix에서 모니터링 하고 싶은 타겟들이며, os에 맞게 Agent를 설치하고 메인서버와 연동 필요

               => 기본 10050 포트를 사용함

 

Zabbix 설치 순서

 

1. 기본 패키지 설치

기본 패키지를 설치하여 Zabbix 설치 시작.

# 우분투 버전에 맞는 해당 deb 파일 다운로드
wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-1+ubuntu20.04_all.deb 
# 만약 7.4 버전(2025.03 기준 최신) 설치를 원한다면 아래 링크로.
wget https://repo.zabbix.com/zabbix/7.4/release/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.4+ubuntu20.04_all.deb
# 링크 https://repo.zabbix.com/zabbix/ 로 접속하여 원하는 파일 주소 + 파일 이름으로 wget하면 됨.


# 다운로드한 패키지 인스톨
# dpkg(Debian Package Manager) -i(install), deb파일로 수동설치 방법
dpkg -i zabbix-release_6.0-1+ubuntu20.04_all.deb 

# 패키지 목록 최신화
apt update 

# Zabbix 패키지 설치, 저장소에 있는 zabbix 패키지 설치
apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent

 

2. Zabbix DB 설치

Zabbix에서 사용할 DB( Agent와 서버를 통해 수집한 정보를 저장하는 저장소 )를 구축

#MySQL 서버 설치
apt install mysql-server

#MySQL 서버 실행
systemctl start mysql

#MySQL 서버 부팅 시 자동 실행 설정
systemctl enable mysql

#MySQL 서버 현 상태 확인
systemctl status mysql

#MySQL 서버 설정 시작
#root사용자로 로그인, -p : 패스워드 입력 요청
mysql -uroot -p

#zabbix 라는 DB 생성. 이 DB로 Zabbix를 사용할 예정
#utf8mb4는 UTF-8 인코딩.
#utf8mb4_bin은 정렬방식.(대소문자 구분 바이너리 방식, 이를 통해 대소문자를 구분하여 DB 저장 가능)
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;

#zabbix라는 새로운 사용자 생성
#단, @localhost라고 붙었기 때문에, 이 zabbix 라는 사용자는 localhost에서만 사용 가능함.
#만약 모든 IP에서 접속하고싶다면 @'%' 를 뒤에 붙혀서 생성.
#맨 마지막 password는 ''를 꼭 붙여서 사용할 것.
mysql> create user zabbix@localhost identified by '<설정할 password>';

#권한 부여. zabbix DB의 모든 테이블에 있는 모든 권한을 zabbix@localhost에 부여
mysql> grant all privileges on zabbix.* to zabbix@localhost;

#저장함수 생성 허용.
mysql> set global log_bin_trust_function_creators=1;

#MYSQL 종료
mysql> quit;

 

3. DB 스키마 설정

구축된 DB 내에 정보를 어떻게 저장할지 설정.

기본 Zabbix 스키마 정보는 /usr/share/zabbix-sql-scripts/mysql/server.sql.gz 에 있으나,

이건 ubuntu 20.04 기준이며 폴더는 다른 버전에서 달라질수 있음(위치 검색 필요)

※ 만약 해당 파일이 없다면 Zabbix 패키지 설치에서 오류가 나 제대로 다운로드 되지 않은 것. 다시 설치 필요.

#zcat : gz 파일도 압축해제가 가능하며 동시에 출력 하는 패키지
#| 앞 부분 : 해당 파일 위치
#| 뒷 부분 : user zabbix로 로그인하여 -p 패스워드를 요청하고, zabbix DB를 선택함
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p zabbix

 

위 작업을 통해 Zabbix 기본 스키마가 서버에 설치됨.

※ 해당 작업을 하지 않는다면 정상 작동되지 않음.

 

4. DB 정상 설치 확인 및 저장함수 비활성화

보안을 위해 저장함수는 이제 사용하지 못하도록 비활성화

(Why? 해당 함수는 비인가 사용자가 저장 함수를 사용할 수 있도록 하기 때문.

            0으로 변경 시 SUPER 권한이 없다면 불가능해짐.)

#mySQL Root 계정으로 로그인
mysql -uroot -p

#현재 설치된 DB 전체 확인
mysql> show databases;

#사용하기위해 만들었던 zabbix DB 선택
mysql> use zabbix;

#zabbix DB 내에 만들어진 table들 확인.
mysql> show tables;

#저장함수 비활성화
mysql> set global log_bin_trust_function_creators=0;

#종료
mysql> quit;

 

5. 서버 및 DB 연결(패스워드 설정)

서버에서 DB에 접속할때, 사용할 패스워드 설정.

#Zabbix 서버 설정 파일 수정.
#vim이 편해서 vim을 사용했으나, 다른 툴 사용 가능. vi 라던가..
vim /etc/zabbix/zabbix_server.conf

#아래로 내리다보면 DBPassword=<> 라고 된 부분이 있을텐데, 그 부분 수정
DBPassword=MySQL에 만들때 설정한 패스워드

#서버 수정이 되었으므로 재실행하여 적용
#또한 재부팅 시 수정된 설정으로 자동 실행 되도록 적용
systemctl restart zabbix-server zabbix-agent apache2
systemctl enable zabbix-server zabbix-agent apache2

 

6. Zabbix 웹 인터페이스 한글 설정

기본적으로 영어만 지원하므로, 사용할 언어를 설정해두어야 함

#vim을 사용했으나 vi 등 사용 가능.
vim /etc/default/locale

LANG=ko_KR.UTF-8
LANGUAGE="ko_KR:ko:en_US:en"

 

7. Zabbix 웹 인터페이스 설정

주소 : http://localhost/zabbix

          (localhost에서 변경은 다음 게시글에서 계속)

 

접속 설정을 전부 제대로 작성할 것.

DB 접속 패스워드, 서버 이름 외에는 수정할 것이 딱히 없음

 

설정 이후 접속은 Admin / zabbix (대소문자 구분됨)

댓글