[Monitoring] zabbix 1편: zabbix server 설치하기
엔터프라이즈급 오픈소스 모니터링 솔루션인 zabbix를 설치하고 초기 설정 하는 방법을 알아보겠습니다.
서버 대수가 늘어날수록 서비스 상태를 일일이 확인하는 것은 불가능에 가깝습니다. zabbix를 이용하면 서버의 CPU, 메모리, 트레픽 상태는 물론 장애 발생 시 실시간 알림까지 받을 수 있는 스마트한 환경을 구축할 수 있습니다.
zabbix 란 무엇인가요?
zabbix는 네트워크 서비스, 서버, 하드웨어 등 다양한 IT리소스를 실시간으로 감시하는 통합 모니터링 도구입니다.
- 높은 확장성 : 수만 대의 서버도 한곳에서 효율적으로 관리할 수 있습니다.
- 시각화 도구 : 수집된 데이터를 그래프나 맵(Map)형태로 대시보드를 구성할 수 있습니다.
- 다양한 알림 : 장애 발생 시 이메일, 슬랙(Slack), SMS 등 다양한 경로로 알림을 보냅니다.
설치 전 준비 사항(Nginx, PHP, MariaDB stack)
zabbix 는 데이터를 저장할 DB와 웹 화면을 보여줄 웹서버가 필요합니다. 본 가이드는 Rocky Linux 9환경에서 MariaDB와 nginx조합을 기준으로 설명합니다.
- nginx 설치
$ cat <<EOF >/etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/\$releasever/\$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/\$releasever/\$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
EOF
$ dnf install nginx -y- php 설치
$ dnf config-manager --set-enabled crb
$ dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
$ dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm
$ dnf module switch-to php:remi-8.3
$ dnf module install php:remi-8.3
$ dnf install php-gd -y- MariaDB 설치
$ wget https://r.mariadb.com/downloads/mariadb_repo_setup
$ echo "ad125f01bada12a1ba2f9986a21c59d2cccbe8d584e7f55079ecbeb7f43a4da4 mariadb_repo_setup" \
| sha256sum -c -
$ chmod +x mariadb_repo_setup
$ ./mariadb_repo_setup \
--mariadb-server-version="mariadb-10.11"
$ dnf install MariaDB-server MariaDB-client MariaDB-backup -yZabbix 서버 설치
zabbix 서버는 현재 7.0 버전이 LTS 버전이라 7.0 기반으로 설치를 진행합니다.
레포지토리 등록
$ rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rocky/9/x86_64/zabbix-release-latest-7.0.el9.noarch.rpm
$ dnf clean allzabbix 서버, frontend, agnet 설치
$ dnf install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent2설치 시 다음과 같은 오류가 발생한다면
GPG key at file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-08EFA7DD (0x08EFA7DD) is already installed
The GPG keys listed for the "Zabbix Official Repository non-supported - x86_64" repository are already installed but they are not correct for this package.
Check that the correct key URLs are configured for this repository.. Failing package is: fping-5.1-1.el8.x86_64
GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-08EFA7DD
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'dnf clean packages'.
Error: GPG check FAILED아래와 같이 처리합니다.
$ rpm --import https://repo.zabbix.com/RPM-GPG-KEY-ZABBIX데이터베이스 생성 및 스키마 가져오기
zabbix 가 사용할 데이터베이스를 생성하고 권한을 부여합니다.
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;MariaDB(또는 MySQL) 접속 후 실행
이후, 기본 데이터를 데이터베이스에 넣어줍니다.
$ zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix기본 데이터 주입이 끝나면 log_bin_trust_function_creators옵션을 비활성화 해줍니다.
mysql> set global log_bin_trust_function_creators = 0;
mysql> quitMariaDB(또는 MySQL) 접속 후 실행
zabbix 서버 설정 수정
zabbix 설정파일에서 아래 내용을 찾아 수정합니다.
/etc/zabbix/zabbix_server.conf 입니다.DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBSocket=/tmp/mysql.sock # mariadb가 사용하는 소켓파일 경로
DBPassword=password
DBPort=3306/etc/zabbix/zabbix_server.conf
nginx 설정
zabbix 설치시 기본적으로 nginx 의 설정파일을 복사해 줍니다. 해당 파일에서 아래 내용을 찾아 수정합니다.
/etc/nginx/conf.d/zabbix.conf 입니다.listen 8080;
server_name your.zabbix.domain.name;PHP 설정
timezone 설정 추가
php_value[date.timezone] = Asia/Seoul/etc/php-fpm.d/zabbix.conf
서비스 구동
모든 설정이 마무리 되면 아래 명령을 통해 서비스를 구동합니다.
$ systemctl enable zabbix-server zabbix-agent2 nginx php-fpm mariadb
$ systemctl start zabbix-server zabbix-agent2 nginx php-fpm mariadbzabbix 웹 인터페이스 접속 및 마무리
이제 브라우저로 http://zabbix주소:8080/로 접속하면 설치 마법사가 나타납니다.
언어 설정, DB정보 확인 등을 거치면 모든 설치가 마무리 됩니다!
마치며
지금까지 zabbix 서버 설치 및 설정에 대해 다루어 보았습니다. 다음 포스팅은 zabbix-agent 설치에 대한 내용을 다뤄보도록 하겠습니다.