SW/리눅스

Debian 9 : Zabbix 설치, 구성 방법, 예제, 명령어

얇은생각 2021. 6. 7. 07:30
반응형

Zabbix는 네트워크와 응용 프로그램을 모니터링하는 성숙한 오픈 소스 소프트웨어입니다. Zabbix는 다양한 네트워크 장치, 시스템 및 애플리케이션에서 메트릭을 수집할 수 있습니다. 장애가 발생할 경우 Zabbix는 다양한 방법을 통해 알림 경고를 보냅니다.

Zabbix는 에이전트 기반 모니터링과 에이전트 없는 모니터링을 모두 지원합니다. Zabbix 에이전트는 설치 공간이 작고 Linux, UNIX, macOS 및 윈도우즈를 비롯한 다양한 플랫폼에서 실행할 수 있습니다.

이 튜토리얼에서는 MySQL을 데이터베이스 백엔드로 사용하여 Debian 9 리눅스 서버에 최신 버전의 Zabbix 4.0을 설치하고 구성하는 방법을 설명합니다. 또한 원격 호스트에 Zabbix 에이전트를 설치하고 Zabbix 서버에 호스트를 추가하는 방법도 보여드리겠습니다.

 

 

 

전제조건

로그인한 사용자에게 sudo 권한이 있어야 패키지를 설치할 수 있습니다.

 

 

 

MySQL 데이터베이스 생성

Zabbix는 MySQL/MariaDB와 PostgreSQL을 모두 지원합니다. 이 가이드에서는 MariaDB를 데이터베이스 백엔드로 사용합니다.

Debian 서버에 MariaDB가 설치되어 있지 않은 경우 다음 지침을 따라 설치합니다.

sudo mysql

 

 

다음 SQL 문을 실행하여 새 데이터베이스를 생성합니다.

CREATE DATABASE zabbix CHARACTER SET utf8 collate utf8_bin;

 

 

그런 다음 MySQL 사용자 계정을 만들고 데이터베이스에 대한 액세스 권한을 부여합니다.

GRANT ALL ON zabbix.* TO 'zabbix'@'localhost' IDENTIFIED BY 'change-with-strong-password';

 

 

강력한 암호로 변경 내용을 변경해야 합니다.

완료되면 다음을 입력하여 MySQL 콘솔을 종료합니다.

EXIT;

 

 

 

데비안에 Zabbix를 설치

이 기사를 쓸 당시 최신 버전의 Zabbix는 4.0 버전입니다. 데비안 저장소에서 사용할 수 있는 Zabbix 패키지는 오래된 경우가 많으므로 공식 Zabbix 저장소를 사용합니다.

 

1. Zabbix를 설치합니다.

다음 wget 명령을 사용하여 최신 Zabbix 저장소 .deb 패키지를 다운로드합니다.

wget https://repo.zabbix.com/zabbix/4.0/debian/pool/main/z/zabbix-release/zabbix-release_4.0-2+stretch_all.deb

 

 

파일이 다운로드되면 다음을 사용하여 설치합니다.

sudo apt install ./zabbix-release_4.0-2+stretch_all.deb

 

 

패키지 목록을 업데이트하고 Zabbix 서버, MySQL 데이터베이스 지원 웹 프런트엔드 및 Zabbix 에이전트를 설치합니다.

sudo apt update
sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-agent

 

 

 

위의 명령은 Apache, PHP 및 필요한 모든 PHP 모듈도 설치합니다.

 

2. Zabbix 프런트엔드에 대한 PHP를 구성합니다.

필요한 Apache 및 PHP 설정이 모두 포함된 Apache 구성 파일이 설치 중에 생성됩니다.

구성 파일을 열고 표준시 선의 주석을 제거한 후 표준시로 변경합니다. 여기서 PHP에서 지원되는 전체 표준 시간대 목록을 찾을 수 있습니다.

# /etc/apache2/conf-enabled/zabbix.conf

...
    <IfModule mod_php7.c>
        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 America/Denver
    </IfModule>
...

 

 

완료되면 파일을 저장하고 Apache 서비스를 재시작하여 변경 사항을 활성화하십시오.

sudo systemctl restart apache2

 

 

3. Zabbix 서버에 대한 MySQL 데이터베이스를 구성합니다.

MySQL을 사용하여 Zabbix 서버의 초기 스키마 및 데이터를 포함하는 MySQL 덤프 파일을 가져옵니다.

gunzip < /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p zabbix

 

 

메시지가 나타나면 이전에 만든 사용자 암호를 입력합니다. 성공하면 출력이 제공되지 않습니다.

그런 다음 Zabbix 구성을 열고 데이터베이스 암호를 설정합니다.

sudo nano /etc/zabbix/zabbix_server.conf

 

 

다음 섹션을 검색하고 DBPassword 지시문을 주석 처리한 후 데이터베이스 암호를 추가합니다.

# /etc/zabbix/zabbix_server.conf

...
### Option: DBPassword
#       Database password.
#       Comment this line if no password is used.
#
# Mandatory: no
# Default:
DBPassword=change-with-strong-password
...

 

 

파일을 저장한 후 닫습니다.

Zabbix 서버 및 에이전트 서비스를 다시 시작하고 활성화합니다.

sudo systemctl restart zabbix-server zabbix-agent
sudo systemctl enable zabbix-server zabbix-agent

 

 

Zabbix 서버가 실행 중인지 확인합니다.

sudo systemctl status zabbix-server

# ● zabbix-server.service - Zabbix Server
#    Loaded: loaded (/lib/systemd/system/zabbix-server.service; enabled; vendor preset: enabled)
#    Active: active (running) since Mon 2019-01-28 15:37:21 CST; 35s ago
#  Main PID: 27632 (zabbix_server)
#    CGroup: /system.slice/zabbix-server.service
#    ...

 

 

Zabbix Frontend를 설치하고 구성

Zabbix 웹 인터페이스는 PHP로 작성되어 서버를 구성하고 수집된 데이터를 보고 모니터링할 호스트를 추가할 수 있습니다.

설치를 시작하려면 즐겨찾기 브라우저를 열고 서버의 도메인 이름 또는 공용 IP 주소를 입력한 다음 /zabbix를 입력합니다.

http(s)://your_domain_or_ip_address/zabbix

 

 

첫 번째 화면에 환영 메시지가 표시됩니다. 계속하려면 [다음] 단계를 클릭하십시오.

Debian 9 : Zabbix 설치, 구성 방법, 예제, 명령어 1

 

 

그런 다음 Zabbix Frontend를 실행하는 데 필요한 PHP 패키지 목록이 있는 정보 페이지가 나타납니다. 아래로 스크롤하여 모든 것이 설치되고 올바르게 설정되었는지 확인합니다. 확인이 완료되면 [다음] 단계를 클릭하여 계속합니다.

Debian 9 : Zabbix 설치, 구성 방법, 예제, 명령어 2

 

 

다음 화면에서 설치 마법사가 데이터베이스 연결 세부 정보를 입력하라는 메시지를 표시합니다. 이전에 생성한 MySQL 사용자 및 데이터베이스 세부 정보를 입력합니다.

Debian 9 : Zabbix 설치, 구성 방법, 예제, 명령어 3

 

 

서버 이름을 입력하는 것은 선택사항입니다. Zabbix 모니터링 서버가 둘 이상 있는 경우 입력합니다. 제공된 경우 메뉴 모음 및 페이지 제목에 표시됩니다.

계속하려면 [다음] 단계를 클릭하십시오.

Debian 9 : Zabbix 설치, 구성 방법, 예제, 명령어 4

 

 

다음 화면에는 설치 전 요약이 표시됩니다.

Debian 9 : Zabbix 설치, 구성 방법, 예제, 명령어 5

 

 

다음 단계를 클릭하면 설치가 완료되면 Zabbix 웹 인터페이스가 설치되었음을 나타내는 페이지로 이동합니다. Zabbix 로그인 페이지에 액세스하려면 Finish(마침) 버튼을 클릭합니다.

Debian 9 : Zabbix 설치, 구성 방법, 예제, 명령어 6

 

 

기본 사용자는 "Admin"이고 암호는 "zabbix"입니다. 사용자 이름과 암호를 입력하고 로그인 버튼을 클릭합니다.

Debian 9 : Zabbix 설치, 구성 방법, 예제, 명령어 7

 

 

로그인하면 Zabbix 관리 대시보드로 리디렉션됩니다.

여기서 Zabbix 설치를 사용자 정의하고 새 호스트를 추가할 수 있습니다. 먼저 현재 암호를 변경해야 합니다. 이렇게 하려면 상단 탐색의 프로파일 아이콘을 클릭하여 사용자 프로파일 페이지로 이동합니다.

 

 

 

Zabbix 서버에 새 호스트를 추가

Zabbix 서버에 모니터링할 새 호스트를 추가하는 절차에는 두 단계가 포함됩니다.

먼저 원격 호스트에 Zabbix 에이전트를 설치한 다음 웹 인터페이스를 통해 호스트를 Zabbix 서버에 추가해야 합니다.

 

 

 

Zabbix 에이전트를 설치

이 튜토리얼에서는 호스트 시스템도 Debian 9를 사용한다고 가정합니다.

Zabbix 서버를 설치할 때와 마찬가지로 다음 명령을 실행하여 Zabbix 저장소를 사용하도록 설정합니다.

wget https://repo.zabbix.com/zabbix/4.0/debian/pool/main/z/zabbix-release/zabbix-release_4.0-2+stretch_all.deb
sudo apt install ./zabbix-release_4.0-2+stretch_all.deb

 

 

패키지 목록을 업데이트하고 Zabbix 에이전트 패키지를 설치합니다.

sudo apt update
sudo apt install zabbix-agent

 

 

Zabbix는 서버-클라이언트 통신 암호화의 두 가지 방법인 PSK(Preshare Key)와 인증서 기반 암호화를 지원합니다. 이 가이드에서는 PSK(사전 공유 키) 방법을 사용하여 서버와 에이전트 간의 연결을 보호합니다.

다음 명령으로 실행하여 사전 공유 키를 생성하여 파일에 저장합니다.

PSK 키는 다음과 같습니다.

openssl rand -hex 32 | sudo tee /etc/zabbix/zabbix_agentd.psk

# fc3077ed3db8589ec920ac98a7ddea96aca205eb63bbd29c66ae91743a7ecbb6

 

 

Zabbix 에이전트 구성 파일을 엽니다.

# /etc/zabbix/zabbix_agentd.conf

...
### Option: Server
#       List of comma delimited IP addresses, optionally in CIDR notation, or DNS names of Zabbix servers and Zabbix proxies.
#       Incoming connections will be accepted only from the hosts listed here.
#       If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally
#       and '::/0' will allow any IPv4 or IPv6 address.
#       '0.0.0.0/0' can be used to allow any IPv4 address.
#       Example: Server=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.example.com
#
# Mandatory: yes, if StartAgents is not explicitly set to 0
# Default:
# Server=

Server=127.0.0.1
...

 

 

서버 IP 주소를 검색하여 기본값에서 Zabbix 서버 IP로 변경합니다.

그런 다음 TSL Connect 옵션을 찾아 주석을 제거하고 tpsk로 설정합니다.

# /etc/zabbix/zabbix_agentd.conf

...
### Option: TLSConnect
#       How the agent should connect to server or proxy. Used for active checks.
#       Only one value can be specified:
#               unencrypted - connect without encryption
#               psk         - connect using TLS and a pre-shared key
#               cert        - connect using TLS and a certificate
#
# Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
# Default:
TLSConnect=psk
...

 

 

TLSAccept 옵션을 찾아 주석을 제거하고 tpsk로 설정합니다.

# /etc/zabbix/zabbix_agentd.conf

...
### Option: TLSAccept
#       What incoming connections to accept.
#       Multiple values can be specified, separated by comma:
#               unencrypted - accept connections without encryption
#               psk         - accept connections secured with TLS and a pre-shared key
#               cert        - accept connections secured with TLS and a certificate
#
# Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
# Default:
TLSAccept=psk
...

 

 

다음으로 TLSPSKY 덴티티 옵션을 찾아 주석을 제거한 후 PSK 001로 설정합니다. 값은 고유한 문자열이어야 합니다.

# /etc/zabbix/zabbix_agentd.conf

...
### Option: TLSPSKIdentity
#       Unique, case sensitive string used to identify the pre-shared key.
#
# Mandatory: no
# Default:
TLSPSKIdentity=PSK 001
...

 

 

마지막으로 TLSPSKFile 옵션을 찾아 주석을 제거한 후 이전에 생성된 사전 공유 키를 가리키도록 설정합니다.

# /etc/zabbix/zabbix_agentd.conf

...
### Option: TLSPSKFile
#       Full pathname of a file containing the pre-shared key.
#
# Mandatory: no
# Default:
TLSPSKFile=/etc/zabbix/zabbix_agentd.psk
...

 

 

완료되면 파일을 저장한 후 닫습니다.

Zabbix 에이전트 서비스를 시작하고 부팅 시 시작하도록 설정합니다.

sudo systemctl start zabbix-agent
sudo systemctl enable zabbix-agent

 

 

그런 다음 TCP 포트 10050에서 Zabbix 서버의 트래픽을 사용하도록 설정하는 방화벽 규칙을 추가합니다.

UFW를 사용하여 방화벽을 관리하고 192.168.121.70 IP 주소에서 액세스를 허용하려면 다음 명령을 실행합니다.

sudo ufw allow proto tcp from 192.168.121.70 to any port 10050

 

 

 

새 호스트를 설정

모니터링할 원격 호스트의 에이전트가 설치되고 구성되었으므로 다음 단계는 Zabbix 서버에 호스트를 등록하는 것입니다.

다음 관리자로 Zabbix Server 웹 인터페이스에 로그인합니다.

http(s)://your_domain_or_ip_address/zabbix

 

 

맨 위 탐색 모음에서 구성을 클릭한 다음 호스트를 클릭합니다.

그런 다음 화면 오른쪽 상단 모서리에 있는 파란색 호스트 생성 버튼을 클릭하면 호스트 구성 페이지가 열립니다.

Debian 9 : Zabbix 설치, 구성 방법, 예제, 명령어 8

 

 

모니터링할 원격 호스트 시스템의 호스트 이름과 IP 주소를 입력합니다. 목록에서 그룹을 선택하여 호스트를 하나 이상의 그룹에 추가하거나 존재하지 않는 그룹 이름을 입력하여 새 그룹을 만듭니다. 리눅스 서버s 그룹을 선택하는 것이 좋습니다.

Debian 9 : Zabbix 설치, 구성 방법, 예제, 명령어 9

 

 

완료되면 템플릿 탭을 클릭합니다. 템플릿 OS 리눅스를 선택하고 추가 링크를 클릭하여 호스트에 템플릿을 추가합니다.

그런 다음 암호화 탭을 클릭합니다. 호스트에 대한 연결과 호스트의 연결에 모두 PSK를 선택합니다.

PSK ID 값을 이전 단계에서 구성한 Zabbix 에이전트의 TLSPSK Dentity 옵션 값인 PSK 001로 설정합니다.

PSK 값 파일에서 /etc/zabbix/zabbix_agentd.psk 파일에 저장된 Zabbix 에이전트에 대해 생성한 키를 추가합니다.

Debian 9 : Zabbix 설치, 구성 방법, 예제, 명령어 10

 

 

마지막으로 호스트를 추가하려면 파란색 추가 버튼을 클릭합니다.

반응형