카테고리 없음

[8월 8일] Zabbix 구축하기(NMS)

ljm 2025. 8. 8. 15:04

NMS (Network Management System) : 네트워크 관리 시스템

 

네트워크 엔지니어 :
ip 주소 관리대장, mac 주소 관리대장 , 프로그램, OS, CPU, 메모리, 디스크 등 하드웨어/소프트웨어 관련 정보 관리

 

몇백개의 node가 있더라도 NMS와 동기화가 된다면 간단하고 효율적으로 쉽게 관리 가능

 

여러가지 솔루션이 있는데 여기서 사용할것은 ZABBIX

www.zabbix.com 

 

Zabbix :: The Enterprise-Class Open Source Network Monitoring Solution

We support your success Backed by 20 years of experience, a global partner network, and worldwide support, we make sure your monitoring challenges are resolved quickly and reliably. Response time that sets the standard Get instant access to the Zabbix team

www.zabbix.com

 

 

시작하기 전에 실행해주기
sudo atp update
sudo atp upgrade

 

 

웹이 아닌 Ubuntu 내에서 다운받기

 

httpd가 아닌 apache2 로 구축하기

 

 

APACHE MariaDB PHP를 설치하기 (웹 서비스 환경 구축)

sudo apt install -y apache2 php php-fpm mariadb-server

 

 

Zabbix 모니터링 솔루션의 공식 저장소 설정 파일 다운로드

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

sudo apt update

 

 

잘 설치된 모습

 

최초 Ubuntu설치후 puTTy에서 접속 안될때 SSH 설치
sudo apt update
sudo apt install openssh-server

 

 

다운로드한 Zabbix 저장소 설정 파일(.deb 파일) 시스템에 설치

sudo dpkg -i zabbix-release_7.0-1+ubuntu24.04_all.deb

 

 

ZABBIX 설치하기

sudo apt -y install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent2 php-mysql php-gd php-bcmath php-net-socket

 

DB의 SQL -> php 파싱. 최소한의 권한 부여하기

 

설치한 DB 시작 및 설정하기

sudo systemctl start mariadb
sudo systemctl status mariadb

 

 

MySQL 데이터베이스를 처음 설치했을 때 보안을 강화하기 위해 실행하는 스크립

sudo mysql_secure_installation

 

* 여기서 root패스워드는 DB의 패스워드

 

 

MariaDB 설정 과정

 

 

MySQL 데이터베이스에 root 계정으로 로그인

sudo mysql -u root -p

 

 

Zabbix에서 사용할 my_zabbix_db라는 이름의 데이터베이스를 생성 (문자 인코딩 : utf8, 정렬 규칙 : utf8_bin)

create database my_zabbix_db character set utf8 collate utf8_bin;

 

 

DB 호출

show databases;

 

 

 

'zabbix_user' MySQL 사용자를 생성 (패스워드는 qwer1234!)

create user 'zabbix_user'@'localhost' identified by 'qwer1234!';
'@'localhost'
: 사용자가 접속할 수 있는 호스트를 지정합니다. **'localhost'**는 MySQL 서버가 실행 중인 로컬 컴퓨터에서만 접속할 수 있도록 제한합니다.

 

 

'zabbix_user' 에게 my_zabbix_db 데이터베이스에 대한 모든 권한을 부여

grant all privileges  on my_zabbix_db.* to 'zabbix_user'@'localhost'  with grant option;

 

 

MySQL 서버에 권한 정보를 갱신하도록 요청

flush privileges;

 

 

현재 MySQL 세션에서 my_zabbix_db 데이터베이스를 사용하겠다고 선언

use my_zabbix_db;

 

 

테이블 확인 후 MariaDB 종료

show tables;
quit

 

 

압축된 Zabbix 데이터베이스 스키마 파일을 해제하여 MySQL 데이터베이스로 불러오기

sudo zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix_user -p'qwer1234!' my_zabbix_db
zcat : gz로 압축된 파일을 해제하는 명령어

 

 

Zabbix 서버의 주 설정 파일을 vi 편집기로 열기 (Zabbix 서버의 동작 방식을 수정 가능)

sudo vi /etc/zabbix/zabbix_server.conf

 

DB이름 User이름 Password 변경하기

 

 

 

Zabbix Agent 2의 주 설정 파일을 vi 편집기로 열기 (Zabbix Agent 2의 동작 방식 변경 가능)

sudo vi /etc/zabbix/zabbix_agent2.conf

Server, ServerActive,Hostname 변경하기

 

 

아파치 웹 서비스 시작 및 시스템 재부팅 시 자동으로 시작

sudo systemctl start apache2
sudo systemctl enable apache2
sudo systemctl start zabbix-server zabbix-agent2
sudo systemctl enable zabbix-server zabbix-agent2

 

 

PHP-FPM 설정 파일을 vi 편집기로 열기 (PHP-FPM 프로세스의 동작 방식을 변경 가능)

sudo vi /etc/php/8.3/fpm/pool.d/www.conf

492째 줄 부터 추가

 

php_value[max_execution_time] = 300
php_value[memory_limit] = 128M
php_value[post_max_size] = 16M
php_value[upload_max_filesize] = 2M
php_value[max_input_time] = 300
php_value[max_input_vars] = 10000
php_value[always_populate_raw_post_data] = -1
php_value[date.timezone] = Asia/Seoul

 

 

방화벽 관리 도구인 firewalld를 설치

sudo apt install -y firewalld

 

 

방화벽에 웹 서비스(80번), 데이터베이스(3306번), 그리고 Zabbix 서버(10051번) 포트를 영구적으로 허용

sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --permanent --add-port=10051/tcp

 

 

설정을 재적용하고 현재 방화벽 규칙을 확인

sudo firewall-cmd --reload
sudo firewall-cmd --list-all

list로 방화벽 규칙 확인하기

 

 

아파치 웹 서버 / PHP-FPM 서비스 / Zabbix 서버 서비스를 재시작

sudo systemctl restart apache2 php8.3-fpm
sudo systemctl restart zabbix-server

 

 

내 IP 확인하기

ip : 192.168.16.231/24

 

 

http 웹으로 접속하기

http://192.168.16.231

 

 

192.168.16.231/zabbix/ 까지 입력하면 자동으로 setup.php 로 이동

 

 

이미 en_US라고 설정되어있지만, 최초설정에는 되어있지않으므로 따로 설정하기

 

 

locale 설정하기

sudo apt install -y locales
sudo dpkg-reconfigure locales
locale을 en-US로 변경하기
sudo systemctl restart apache2 php8.3-fpm

 

 

아까 DB설정했던거랑 똑같이 부여하기

 

 

Installation Summary

 

 

conf/zabbix.conf.php 라는 파일이 생성됨

 

 

초기설정 : Admin / zabbix

 

 

Dashboard의 system information

 

 

Host 모니터링

 

 

 

아까 설치된 zabbix.conf.php 파일 확인하기

sudo vi /etc/zabbix/web/zabbix.conf.php

잘 생성된것을 확인

 

 

 

기존의 클라이언트의 Ubuntu에 추가로 에이전트 Ubuntu를 실행

 

agent에서

 

sudo apt install -y apache2 php php-fpm mariadb-server
sudo 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
sudo apt install -y zabbix-agent2
sudo vi /etc/zabbix/zabbix_agent2.conf

 

Server, ServerActive, Hostname 변경하기

 

 

sudo apt install -y firewalld
sudo firewall-cmd --permanent --add-port=10050/tcp
sudo firewall-cmd --reload
sudo systemctl start zabbix-agent2
sudo systemctl enable zabbix-agent2

 

 

agent를 추가했음에도 호스트 수가 1인것을 확인 -> Zabbix 에서 호스트 생성하기

 

 

Create host -> Add

 

 

Item이 적다면 Inventory에서 Update 가능

 

 

2대로 바뀐것을 확인

 

 

 

Agents 연결

 

 

Windows 연결을 위해 Zabbix-Agents2 다운받기

 

 

Zabbix_agent2.conf 파일 수정하기

 

 

관리자 모드로 모두 실행하기

 

 

방화벽 끄기

 

 

Windows Client 추가하기

 

 

 

conf 파일에서 192.168.16.231 (Server IP) 설정 . Zabbix에서 각각의 인터페이스 IP 설정

 

** Templates 반드시 Zabbix agent 로 지정해주기!! **

 

msi 파일 다운받고 conf파일 관리자 권한으로 열기 -> ServiceIP/ServiceActiveIP/Name 바꾸기 -> Zabbix 홈페이지에서 인터페이스에 내 PC의 IP 지정해주기