포스트

[Server] Zabbix로 여러 서버 리소스 모니터링하기

여러 서버의 리소스를 한 화면에서 모니터링하기 위해 Zabbix 서버를 설치하고 agent2를 설정하는 과정을 정리합니다.


여러 서버를 사용하고 있는 환경에서 특정 서버들이 리소스로 문제로 재시작 되거나 멈추는 것들의 원인이 제대로 추적할 수가 없어서, 장기적으로 여러 서버의 리소스들을 모니터링 할 수 있는 툴이 필요했다.

또한 각 서버에서 접속해서 확인하는 것이 아닌 하나의 화면에 보유한 여러 서버의 모니터링이 가능한 것이 필요했다.


그 중 zabbix를 선정한 이유는 agent2 방식으로 각 서버세팅 환경이 다 달라도 모니터링에 필요한 데이터들을 수집하는 것이 가능하다.

그리고 완전한 오픈소스에 꾸준이 버전업 및 이슈 대응을 하고 있어 안정적인 사용이 가능하기 때문이다.

아래는 zabbix의 web UI를 띄울 서버를 선정하고, 그 서버에 zabbix server 세팅을 하는 방법이다.


zabbix server 세팅


주의

현재 각 서버 세팅상황에 따라 설치 상황이 다를 수 있다. 기본적으로는 apach를 설치하며, 버전도 다를 수가 있다.


환경

  • OS: Ubuntu 24.04
  • Zabbix 버전: 7.0 LTS
  • DB: MySQL/MariaDB

Zabbix Repository 설치

1
2
3
wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_7.0-1+ubuntu24.04_all.deb
sudo dpkg -i zabbix-release_7.0-1+ubuntu24.04_all.deb
sudo apt update

Zabbix server, frontend, agent 설치

1
sudo apt install zabbix-server-mysql zabbix-php-plugins zabbix-sql-scripts zabbix-agent2 php-fpm php-mysql

Database 준비

1
sudo apt install mariadb-server

Zabbix DB 생성

1
sudo mysql -uroot
1
2
3
4
5
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY '패스워드';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
FLUSH PRIVILEGES;
EXIT;

초기 스키마 로드

1
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p zabbix

zabbix_server.conf 설정

  • DB 접속 정보 입력
    1
    
    sudo nano /etc/zabbix/zabbix_server.conf
    
  • 수정
    1
    2
    3
    
    DBName=zabbix
    DBUser=zabbix
    DBPassword=패스워드
    

PHP-FPM 설정 확인

  • PHP-FPM 버전에 따라 소켓 파일 경로가 다름
    1
    
    systemctl status php8.1-fpm
    

    Nginx 설정

    1
    
    sudo nano /etc/nginx/sites-available/default
    
  • 아래 내용 추가
1
2
3
4
5
6
7
8
9
10
11
12
location /zabbix {
    alias /usr/share/zabbix/;
    index index.php;
}

location ~ ^/zabbix/.+\.php$ {
    alias /usr/share/zabbix/;
    include fastcgi_params;
    fastcgi_pass unix:/run/php/php8.1-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $request_filename;
}

Nginx 재시작

1
sudo systemctl reload nginx

Zabbix 서비스 시작

1
2
sudo systemctl restart zabbix-server zabbix-agent2
sudo systemctl enable zabbix-server zabbix-agent2

Zabbix 화면 예시

img_file

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.