주말에 압축했던 패키지를 서버로 옮겨서 설치를 시도했다.
# 패키지를 저장할 폴더
$ mkdir /opt/zabbix
# 압축 풀기
$ tar -zxvf zop.tar.gz -C /opt/zabbix
# createrepo_c 먼저 설치
$ sudo rpm -ivh /opt/zabbix/createrepo_c-*.rpm
libdrpm.so.0()이 없다면서 오류가 발생했다. 노트북을 챙겨오지 않아서 pkgs.org에서 drpm 패키지를 다운로드 했다.
# drpm 설치
$ sudo dnf install drpm-*.rpm
# createrepo_c 다시 설치
$ sudo dnf install createrepo_c-*.rpm
# 설치 성공 했으니 RPM 파일들이 있는 폴더를 리포지토리로 만들기
$ sudo createrepo_c /opt/zabbix
# 리포지토리 파일 작성
sudo nano /etc/yum.repos.d/zabbix-local.repo
# 파일 내용
[zabbix-local]
name=Zabbix Local Repository
baseurl=file:///opt/zabbix/
enabled=1
gpgcheck=0
# 파일 내용
# 나머지 파일 설치
$ sudo dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-agent mariadb-server
실행하니까 Updating Subscription Management repositories. Unable to read consumer identity. This system is not registered with an entitlement server. You can use subscription-manager to register. AppStream Errors During downloading metadata for repository 'AppStream': .. 오류가 발생했는데 폐쇄망이라 그런가보다.
# disablerepo="*": 모든 리포지토리 비활성화
# enablerepo="zabbix-local": 방금 만든 리포지토리만 활성화
$ sudo dnf --disablerepo="*" --enablerepo="zabbix-local" install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-agent mariadb-server
이것도 실행하니까 Error: No available modular metadata for modular package 오류가 발생했다.
# /opt/zabbix 에서 모든 rpm 설치
$ sudo dnf --disablerepo="*" install *.rpm
몰랐는데 서버에 이미 MySQL이 설치되어있어서 오류가 났다. 관련 패키지 파일 삭제 후 설치에 성공했다. 근데 나는 MySQL이 설치되어있는지 몰랐기 때문에 계정과 패스워드도 모른다. 그래서 root 패스워드를 초기화 했다.
# 안전모드로 MySQL 시작
$ sudo systemctl stop mysqld
$ sudo systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
$ sudo systemctl start mysqld
# 접속 성공
$ sudo mysql -uroot
> FLUSH PRIVILEGES;
> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
> quit;
# 안전모드 제거
$ sudo systemctl stop mysqld
$ sudo systemctl unset-environment MYSQLD_OPTS
$ sudo systemctl start mysqld
# 변경한 비밀번호로 접속 성공
$ sudo mysql -uroot -p
# Zabbix 데이터베이스 생성(utf8mb4 형식 필수)
> create database zabbix character set utf8mb4 collate utf8mb4_bin;
# Zabbix 사용자 생성
> create user zabbix@localhost identified by 'zabbix';
# Zabbix 사용자에게 zabbix 데이터베이스의 모든 권한을 부여
> grant all privileges on zabbix.* to zabbix@localhost;
# Zabbix 6.0 이상은 SUPERUSER 권한 필요(스키마 가져오고 0으로 초기화)
> set global log_bin_trust_function_creators = 1;
# 변경사항을 적용 후 종료
> flush privileges;
> quit;
# Zabbix 초기 스키마 가져오기
$ zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
# Zabbix 설정 파일 수정(DBPassword)
$ sudo vim /etc/zabbix/zabbix_server.conf
# 파일 수정
# 주석 풀고 비밀번호 입력
DBPassword=zabbix
# 파일 수정
# 서비스 재시작 및 자동 실행 등록
$ sudo systemctl restart zabbix-server zabbix-agent httpd
$ sudo systemctl enable zabbix-server zabbix-agent httpd
Zabbix 설치하면서 Apache도 하나 더 설치가 되었는데, 기존에 설치가 된게 있어서 포트 충돌이 났다.
# Apache 포트 수정
$ sudo vim /etc/httpd/conf/httpd.conf
# 파일 수정
Listen 80 → 8080
# 파일 수정
# Apache 서비스 시작
$ sudo systemctl start httpd
이제 {서버 IP}:8080/zabbix으로 접근은 되지만 'Minimum required PHP version is 8.0.0' 메시지가 나왔다. 기존에 7 버전대 패키지가 다운로드 되었고, 그걸 설치해서 그런가보다. 또 pkgs에서 PHP 8.0.0 필요한 패키지 다운로드했다.
# 7 버전 삭제
$ sudo dnf remove 'php*'
# 8 버전 설치
$ sudo dnf --disablerepo="*" install php*.rpm
# PHP 재시작 및 자동 실행 등록
$ sudo systemctl restart php-fpm
$ sudo systemctl enable php-fpm
# Apache 서비스 재시작
$ sudo systemctl restart httpd
다시 {서버 IP}:8080/zabbix로 접근하면 Zabbix 설치 화면이 나오고, Check of pre-requisites의 모든 항목이 OK로 표시되는지 확인 후 다음으로 넘어가서 DB 정보 입력하고 완료되었다.

'DevOps > 모니터링' 카테고리의 다른 글
| Zabbix 설치기 - 1 (2) | 2025.08.23 |
|---|