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 (대소문자 구분됨)
'Linux > Zabbix' 카테고리의 다른 글
Docker compose로 간편하게 Zabbix 설치하기(7.4 이후 버전) (1) | 2025.07.17 |
---|---|
Docker compose로 간편하게 Zabbix 설치하기(~7.4 이전버전) (0) | 2025.07.17 |
Zabbix 심각도 설정 (0) | 2025.05.06 |
[Zabbix] Ubuntu 20.04 Zabbix Agent가 제대로 작동안하는 오류 (0) | 2025.03.31 |
댓글