Ubuntu Linux에 Nginx로 Zabbix를 설치하는 방법

이 튜토리얼에서는 Ubuntu Linux에서 Nginx 및 PHP-FPM과 함께 Zabbix 4를 설치하는 데 필요한 모든 단계를 보여줍니다.

이 튜토리얼은 Ubuntu 18.04에서 테스트되었습니다.

1. NTP를 사용하여 날짜 및 시간 구성

시스템을 올바른 날짜와 시간으로 유지하는 것은 매우 중요합니다.

올바른 시간대를 설정하십시오.

# dpkg-reconfigure tzdata

Ntpdate 패키지를 설치하고 올바른 날짜와 시간을 설정하십시오.

# apt-get update
# apt-get install ntpdate
# ntpdate pool.ntp.br

우분투 기본 NTP 클라이언트를 비활성화하십시오.

NTP 서비스를 설치하여 재부팅 후 컴퓨터의 날짜와 시간을 업데이트하십시오.

# timedatectl set-ntp 0
# apt-get install ntp

컴퓨터에 올바른 날짜와 시간이 설정되어 있는지 확인하십시오.

# date

2. 우분투 리눅스에 MySQL 설치하기

Zabbix는 모든 구성을 저장하기 위해 데이터베이스 시스템이 필요합니다.

Ubuntu APT 명령을 사용하여 MySQL 서버를 설치하십시오.

# apt-get update
# apt-get install mysql-server mysql-client

다음 명령을 사용하여 MySQL 서비스 콘솔에 액세스하십시오.

# mysql -u root -p

MySQL 콘솔에서 다음 작업을 수행해야합니다.

• zabbix라는 데이터베이스를 만듭니다.
• zabbix라는 MySQL 사용자 계정을 만듭니다.
• zabbix 사용자에게 zabbix 데이터베이스에 대한 모든 권한을 부여하십시오.

CREATE DATABASE zabbix CHARACTER SET UTF8 COLLATE UTF8_BIN;
CREATE USER 'zabbix'@'%' IDENTIFIED BY 'kamisama123';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'%';
quit;

데이터베이스 템플릿을 얻으려면 Zabbix 설치 패키지를 다운로드하십시오.

# mkdir /downloads
# cd /downloads
# wget https://ufpr.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/4.0.3/zabbix-4.0.3.tar.gz

Zabbix 설치 패키지의 압축을 풉니 다.

Zabbix 데이터베이스 템플릿을 MySQL 데이터베이스로 가져옵니다.

질문을 받으면 Zabbix 사용자의 MySQL 암호를 입력해야합니다.

# tar -zxvf zabbix-4.0.3.tar.gz
# cd zabbix-4.0.3/database/mysql/
# mysql -u zabbix -p zabbix < schema.sql
# mysql -u zabbix -p zabbix < images.sql
# mysql -u zabbix -p zabbix < data.sql

Zabbix 데이터베이스 설치가 완료되었습니다.

3. Ubuntu Linux에 Nginx를 설치하십시오.

Ubuntu APT 명령을 사용하여 Nginx 서버를 설치하십시오.

# apt-get update
# apt-get install nginx

nginx.conf 구성 파일을 편집하십시오.

client_max_body_size를 HTTP 섹션에 추가하십시오.

최대 업로드 크기를 32 메가 바이트로 구성하십시오.

# vi /etc/nginx/nginx.conf

여기에 우리의 구성 파일이 있습니다.

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 768;
}
http {
client_max_body_size 32M;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
gzip on;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}

Nginx 웹 서버를 수동으로 다시 시작하십시오.

# service nginx restart
# service nginx status

Nginx 서비스 상태를 확인하십시오.

● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2018-12-29 04:29:22 UTC; 1h 17min ago
Docs: man:nginx(8)
Process: 2233 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status
Process: 2221 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exite
Main PID: 2238 (nginx)
Tasks: 2 (limit: 1152)
CGroup: /system.slice/nginx.service
├─2238 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─2239 nginx: worker process

Nginx 웹 서버가 성공적으로 설치되었습니다.

4. Nginx에 PHP 지원 추가

Nginx는 PHP 지원을 추가하기 위해 외부 프로그램이 필요합니다.

Ubuntu APT 명령을 사용하여 PHP 필수 패키지를 설치하십시오.

# apt-get update
# apt-get install php7.2-fpm

다음 명령을 사용하여 필요한 PHP 모듈을 설치하십시오.

# apt-get install php7.2-mysql php7.2-mbstring php7.2-xml
# apt-get install php7.2-gd php7.2-curl php7.2-bcmath php7.2-ldap

시스템에서 PHP 구성 파일의 위치를 찾으십시오.

php.ini 구성 파일을 편집하십시오.

# updatedb
# locate php.ini
# vi /etc/php/7.2/fpm/php.ini

귀하의 PHP 버전이 우리와 다를 수 있습니다.

귀하의 PHP 구성 파일 위치가 우리와 다를 수 있습니다.

여기에 우리의 구성 파일이 있습니다.

max_execution_time = 300
memory_limit = 256M
post_max_size = 32M
upload_max_filesize = 32M
max_input_time = 300
date.timezone = America/Sao_Paulo

Nginx 기본 웹 사이트 구성 파일을 편집하십시오.

# vi /etc/nginx/sites-available/default

여기에 우리의 구성 이전의 원본 파일이 있습니다.

server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
try_files $uri $uri/ =404;
}
}

우리의 구성을 가진 새로운 파일이 있습니다.

server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.php index.html index.htm;
server_name _;
location / {
try_files $uri $uri/ =404;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
}

Nginx 구성 파일에 오류가 없는지 확인하십시오.

# nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

PHP 서비스를 다시 시작하십시오.
Nginx 서비스를 다시 시작하십시오.

# service php7.2-fpm restart
# service nginx restart

Nginx 서버 PHP 구성이 완료되었습니다.

5. Ubuntu Linux에 Zabbix 4를 설치하십시오.

MySQL과 Nginx 설정을 마치면 Zabbix 설치를 시작할 수 있습니다.

Zabbix 서비스에 필요한 사용자 계정을 만듭니다.

# groupadd zabbix
# useradd -g zabbix -s /bin/bash zabbix

Ubuntu APT 명령을 사용하여 필요한 패키지를 설치하십시오.

# apt-get install build-essential libmysqlclient-dev libssl-dev libsnmp-dev libevent-dev
# apt-get install libopenipmi-dev libcurl4-openssl-dev libxml2-dev libssh2-1-dev libpcre3-dev
# apt-get install libldap2-dev libiksemel-dev libcurl4-openssl-dev libgnutls28-dev

Zabbix 설치 패키지가 다운로드 된 디렉토리에 액세스하십시오.

Zabbix 서버 응용 프로그램을 컴파일하고 설치하십시오.

# cd /downloads/zabbix-4.0.3/
# ./configure --enable-server --enable-agent --with-mysql --with-openssl --with-net-snmp --with-openipmi --with-libcurl --with-libxml2 --with-ssh2 --with-ldap
# make
# make install

시스템에서 Zabbix 서버 구성 파일의 위치를 찾으십시오.

zabbix_server.conf 구성 파일을 편집하십시오.

# updatedb
# locate zabbix_server.conf
# vi /usr/local/etc/zabbix_server.conf

여기에 우리의 구성 이전의 원본 파일이 있습니다.

LogFile=/tmp/zabbix_server.log
DBName=zabbix
DBUser=zabbix
Timeout=4
LogSlowQueries=3000

우리의 구성을 가진 새로운 파일이 있습니다.

LogFile=/tmp/zabbix_server.log
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=kamisama123
Timeout=4
LogSlowQueries=3000

다음 명령을 사용하여 Zabbix 서버를 시작하십시오.

# /usr/local/sbin/zabbix_server

다음 명령을 사용하여 Zabbix 에이전트 응용 프로그램을 시작하십시오.

# /usr/local/sbin/zabbix_agentd

선택 과목! Zabbix 설치 패키지는 서비스 시작 스크립트를 제공합니다.

Zabbix 시작 스크립트를 복사하십시오.

# cd /downloads/zabbix-4.0.3/
# cp misc/init.d/debian/* /etc/init.d/

이제 다음 명령을 사용하여 Zabbix 서버 서비스를 시작할 수 있습니다.

# /etc/init.d/zabbix-server start

이제 다음 명령을 사용하여 Zabbix 서버 서비스를 중지 할 수 있습니다.

# /etc/init.d/zabbix-server stop

Zabbix 프론트 엔드 파일을 Nginx 루트 드라이브 디렉토리로 이동하십시오.

www 데이터 사용자에게 Zabbix 디렉토리 및 파일에 대한 모든 권한을 부여하십시오.

# cd /downloads/zabbix-4.0.3/frontends
# mv php /var/www/html/zabbix
# chown www-data.www-data /var/www/html/zabbix/* -R

Nginx 서비스를 다시 시작하십시오.

# service nginx stop
# service nginx start

6. Ubuntu Linux에서 Zabbix 구성

브라우저를 열고 웹 서버 플러스 / zabbix의 IP 주소를 입력하십시오.

이 예에서는 브라우저에 다음 URL이 입력되었습니다.

• http://200.200.200.200/zabbix

Zabbix 설치 마법사가 나타납니다.

Zabbix Installation

모든 Zabbix 요구 사항이 성공적으로 충족되었는지 확인하십시오.

Zabbix install Nginx requirements

Zabbix 데이터베이스에 연결하는 데 필요한 MySQL 로그인 정보를 입력하십시오.

Zabbix database connetion

다음 버튼을 클릭하십시오.

Zabbix Agent Connection

Zabbix 설치 요약을 확인하십시오.

Zabbis Installation Summary

마침 버튼을 클릭하여 Zabbix 로그인 화면에 액세스하십시오.

Zabbix installation finished

Zabbix 로그인 화면에서 다음 정보를 입력하십시오.

• Zabbix 기본 사용자 이름 : Admin
• Zabbix 기본 암호 : zabbix

Zabbix Login

로그인이 성공하면 Zabbix 대시 보드가 표시됩니다.

Zabbix Dashboard

Zabbix가 시스템에 설치되었습니다.

7. Zabbix 서버 모니터링

Zabbix 서버는 자신을 모니터 할 수 있어야합니다.

Zabbix 대시 보드에서 Configuration 메뉴에 액세스하고 Host 옵션을 선택합니다.

Zabbix menu

화면의 오른쪽 상단에서 이름이 Zabbix 서버 인 옵션을 선택하십시오.

Zabbix Server Group

Zabbix 서버라는 호스트를 찾고 DISABLED라는 단어를 클릭하십시오.

그러면 Zabbix 서버가 자체 모니터 할 수 있습니다.

Zabbix server agent disabled

Zabbix 서버 상태가 DISABLED에서 ENABLED로 바뀝니다.

Zabbix server agent enabled

Zabbix 서버가 현재 자체 모니터링 중입니다.