Zabbix 구축 전 연습으로 서버 1대에 정상 설치가 되는지 테스트를 진행.
(설치하는 패키지가 왜 필요한지에 대한 상세 정보는 모름)
Zabbix 는 무엇인가?
Zabbix란 엔터프라이즈급 오픈 소스 분산 모니터링 시스템이다.
네트워크, 서버, 클라우드, 애플리케이션 등의 대부분의 IT 인프라를 모니터링할 수 있으며, 실시간으로 문제를 감지하여 알림을 발송해준다. Zabbix에서 제공하는 대시보드가 있어, 수집된 모니터링 데이터들을 시각적인 차트로 확인 가능하다.
오픈 소스... 무료다.!!!!
하지만, 구축 및 유지보수는 직접 해야 되서, 시간이 지남에 따라 머리가 아파질 수 있다.
최종적으로는 부하 분산을 위해 모든 구성요소를 개별 서버에 설치할 예정임.
Zabbix 구성 요소
- 서버: Agents 정보를 수집하는 중앙 저장소
Web 서버와 Backend 간의 미들웨어로 Alerting, HouseKeeper, Poller, Trapper등 수집, 관리 저장 수행 - 데이터베이스 저장소: Zabbix Agent와 Zabbix 서버를 통해 수집된 정보를 저장하는 저장소
- Web Interface: Zabbix 접근을 위한 웹페이지를 제공 (일반적으로 서버와 같은 장비에 설치함)
- 프락시: Zabbix 서버를 대신해 데이터를 수집한다. Zabbix 부하 분산 용도, 별도의 Proxy DB 필요
- 에이전트: 모니터링이 필요한 타켓에 설치해서 정보를 수집 후 Zabbix 서버로 전달 (사용하지 않고 수집도 가능함)
Zabbix 설치 정보 (공식사이트)
https://www.zabbix.com/download?zabbix=6.0&os_distribution=ubuntu&os_version=20.04&components=server_frontend_agent&db=mysql&ws=apache
구성 정보
- OS: Ubuntu 20.04.5 LTS
- Zabbix: Zabbix Version 6.0 LTS (2027년까지 지원 됨 - 설치 시점 최신 버전은 6.2)
모든 설치는 root 계정으로 진행했으며, 일반 계정 사용 시 sudo 를 통해 진행이 가능함
Zabbix 설치
# wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-1+ubuntu20.04_all.deb
# dpkg -i zabbix-release_6.0-1+ubuntu20.04_all.deb
# apt update
# apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent
MySQL 설치
# apt install mysql-server
# systemctl start mysql
# systemctl enable mysql
# systemctl status mysql
MySQL 설정
# mysql -uroot -p
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> create user zabbix@localhost identified by '<설정할 password>';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> set global log_bin_trust_function_creators=1;
mysql> quit;
DB 스키마 셋팅
작업 전 server.sql.gz 파일 위치를 확인 후 진행 (설치 되는 버전마다 위치가 다른 것 같음)
명령어 입력 후 zabbix 패스워드 치고 나서 완료까지 꽤 오랜 시간이 소요 됨
# zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p zabbix
설정하고나면 이런저런 테이블들이 많이 생성 됨.
참고로..
server.sql.gz 파일 안에는 요런 내용들이 들어 있음.
DB 스키마를 가져온 후 log_bin_trust_function_creators 값을 비활성화 한다.
# mysql -uroot -p
mysql> set global log_bin_trust_function_creators=0;
mysql> quit;
Zabbix config 설정
zabbix_server.conf 파일에 DB 접속 패스워드 설정
# vi /etc/zabbix/zabbix_server.conf
------------------------------
DBPassword=<Mysql 에 설정한 패스워드>
------------------------------
# systemctl restart zabbix-server zabbix-agent apache2
# systemctl enable zabbix-server zabbix-agent apache2
Zabbix 한글 설정
기본 설치 후 웹페이지 접속 시 한글이 비활성화 되어 있음
아래 설정으로 한글 선택이 가능함.
# locale-gen ko_KR.UTF-8
# vi /etc/default/locale 에 추가
------------------------------
LANG=ko_KR.UTF-8
LANGUAGE="ko_KR:ko:en_US:en"
------------------------------
Zabbix 웹페이지 접속
접속 주소 - http://server_ip_or_name/zabbix
접속 후 한글 선택 후
DB 접속 패스워드 입력
Zabbix 서버 이름 설정
초기 id/비번: Admin/zabbix (대소문자 구분)
뭔가 그럴싸한 페이지가 나옴