상세 컨텐츠

본문 제목

Rocky 9 자비스 설치 자동화 스크립트로 빠르게 구축하기

리눅스 정보실

by 고지존 2025. 7. 19. 14:26

본문

Rocky Linux 9.5 서버에 자비스(Zabbix)를 설치하고 운영 환경을 자동으로 구성하는 방법을 소개합니다. 복잡한 설치 과정을 스크립트로 자동화하여, 빠르고 안정적인 서버 모니터링 환경을 쉽고 효율적으로 구축할 수 있습니다. 본 글에서는 스크립트 구성과 실행 방법을 상세히 다뤄 실제 운영 환경에 바로 적용할 수 있도록 안내합니다.

1. 설치 자동화의 필요성

서버 모니터링 툴인 자비스(Zabbix)를 수동으로 설치할 경우, 의존성 문제, 설정 누락, 보안 설정 등 다양한 문제를 겪을 수 있습니다. 특히 여러 대의 서버를 운영하거나 반복 설치가 필요한 상황에서는 수작업으로 진행하는 데 시간과 노력이 많이 듭니다. 자동 설치 스크립트는 이런 문제를 해결하며, 일관성 있는 환경 구축과 빠른 배포를 가능하게 합니다.

2. 사전 준비사항

본 스크립트는 Rocky Linux 9.5 환경에 최적화되어 있으며, root 권한 또는 sudo 권한이 필요합니다. 또한 MariaDB(또는 MySQL) 서버가 설치 및 활성화되어 있어야 하며, root 사용자 비밀번호를 알고 있어야 합니다. 네트워크 환경에 따라 외부 리포지터리 접근이 가능해야 하며, 기본적인 Linux 명령어 사용에 익숙한 사용자를 대상으로 합니다.

3. 자비스 설치 자동화 스크립트

다음은 Rocky 9.5 서버에 자비스(Zabbix) 7.4 버전을 설치하고 MariaDB 연동까지 자동으로 수행하는 셸 스크립트입니다.

#!/bin/bash

# 1. 한글 지원 설치
dnf install -y glibc-langpack-ko

# 2. EPEL 리포지터리 설치 및 zabbix 패키지 제외 설정
if [ ! -f /etc/yum.repos.d/epel.repo ]; then
  dnf install -y epel-release
fi

# 중복 추가 방지를 위해 먼저 기존 라인 삭제 후 추가
sed -i '/^excludepkgs=zabbix*/d' /etc/yum.repos.d/epel.repo
echo "excludepkgs=zabbix*" >> /etc/yum.repos.d/epel.repo

# 3. Zabbix 공식 리포지터리 추가
rpm -Uvh https://repo.zabbix.com/zabbix/7.4/release/rocky/9/noarch/zabbix-release-latest-7.4.el9.noarch.rpm

# 4. 캐시 정리
dnf clean all

# 5. Zabbix 및 관련 패키지 설치 (충돌 회피용 --allowerasing 옵션 사용)
dnf install -y zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent --allowerasing --nobest

# 6. MariaDB 서버 활성화 및 시작
systemctl enable --now mariadb

# 7. MariaDB root 비밀번호 확인 (3회까지 시도)
for i in {1..3}; do
  read -s -p "MariaDB root 비밀번호를 입력하세요: " MYSQL_ROOT_PASS
  echo
  mysql -uroot -p"$MYSQL_ROOT_PASS" -e "exit" 2>/dev/null && break
  echo "틀렸습니다. 다시 시도해주세요. ($i/3)"
  if [ $i -eq 3 ]; then
    echo "비밀번호 확인에 3회 실패하여 설치를 중단합니다."
    exit 1
  fi
done

# 8. 새 DB 사용자 이름 입력 (admin 금지)
while true; do
  read -p "생성할 MariaDB 사용자 이름을 입력하세요: " DB_USER
  if [ "$DB_USER" == "admin" ]; then
    echo "'admin'은 사용할 수 없습니다. 다른 이름을 입력해주세요."
  elif [ -z "$DB_USER" ]; then
    echo "사용자 이름은 비워둘 수 없습니다."
  else
    break
  fi
done

# 9. 새 사용자 비밀번호 입력 및 확인
while true; do
  read -s -p "비밀번호를 입력하세요: " DB_PASS1
  echo
  read -s -p "비밀번호를 한 번 더 입력하세요: " DB_PASS2
  echo
  if [ "$DB_PASS1" != "$DB_PASS2" ]; then
    echo "비밀번호가 일치하지 않습니다. 다시 시도해주세요."
  elif [ -z "$DB_PASS1" ]; then
    echo "비밀번호는 비워둘 수 없습니다."
  else
    break
  fi
done

# 10. DB 생성 및 사용자 추가
mysql -uroot -p"$MYSQL_ROOT_PASS" <> /etc/zabbix/zabbix_server.conf
echo "DBUser=$DB_USER" >> /etc/zabbix/zabbix_server.conf
echo "DBPassword=$DB_PASS1" >> /etc/zabbix/zabbix_server.conf

# 14. 서비스 재시작 및 부팅 시 자동 실행 설정
systemctl restart zabbix-server zabbix-agent httpd php-fpm
systemctl enable zabbix-server zabbix-agent httpd php-fpm

# 15. 완료 메시지 출력
echo -e "\nZabbix 7.4 설치 및 설정이 완료되었습니다!"
echo "웹 브라우저에서 http://<서버 IP 또는 도메인>/zabbix 에 접속하여 마무리 설정을 진행하세요."

4. 스크립트 실행 방법

위 스크립트를 복사하여 Rocky 9.5 서버에 `install_zabbix.sh` 같은 이름으로 저장합니다. 스크립트에 실행 권한을 부여한 뒤, root 권한으로 실행하면 자동으로 설치 및 초기 설정이 진행됩니다.

chmod +x install_zabbix.sh
sudo ./install_zabbix.sh

스크립트 실행 중 MariaDB root 비밀번호와 신규 데이터베이스 사용자 정보, 비밀번호를 입력해야 하므로 미리 준비해두면 원활합니다.

install_zabbix.sh 실행이 끝나면 다음과 같은 화면입니다.

슽크립트 완료 화면

스크립트 완료전 mysql 비번을 정상적으로 입력해야 하며 

입력이 정상적일경우 계정 생성에 들어갑니다. 

계정 생성 후 정상적으로 비번을 만들것을 입력하면 설치가 완료됩니다.

다음과장은 http://<서버 IP 또는 도메인>/zabbix 에 접속 합니다.

기본 언어 설정 화면

자비스 기본 설정 언어를 한국어 로 설정해서 다음 으로 진행하였습니다

전체 조건 화면

전체 조건의 체크 부분 확인 후 다음으로 진행합니다.

db 접속 설정

DB 접속 설정 화면 입니다. 설치 과정에서 입력하신 계정 및 암호를 입력해주세요 

기본 설정 부분입니다.

기본 설정 및 시간 설정 후 다음으로 진행하세요

설치 기본 설정 확인

저는 블랙으로 진행하였습니다. 준비가 완료 되면 다음으로 진행해주세요 

설치 완료 창

설치가 완료 되었습니다. 종료 버튼을 눌러주세요

로그인 창

로그인 창이 나오는데요 기본적으로 ID : Admin  암호 : zabbis 으로 설정 되어있습니다

로그인 화면

정상적으로 설치 후 로그인 화면입니다. 

 

관련글 더보기