SW/리눅스

Ubuntu 18.04 : Zabbix 설치, 구성 방법, 예제, 명령어

얇은생각 2021. 3. 25. 07:30
반응형

Zabbix는 가장 인기 있는 오픈 소스 모니터링 소프트웨어 도구 중 하나입니다. Zabbix는 네트워크 장치, 시스템 및 응용 프로그램에서 메트릭을 수집하여 실행 중인지 확인합니다. 문제가 발생할 경우 Zabbix는 다양한 방법으로 알림 알림을 보냅니다.

Zabbix는 에이전트 기반 및 에이전트 없는 모니터링을 위해 배포할 수 있습니다. Zabbix 에이전트는 설치 공간이 작고 Linux, UNIX, macOS 및 윈도우즈를 포함한 다양한 플랫폼에서 실행할 수 있습니다.

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

 

 

 

전제조건

이 튜토리얼을 계속하기 전에 sudo 권한을 가진 사용자로 로그인했는지 확인하십시오.

 

 

 

MySQL 데이터베이스 생성

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

Ubuntu 서버에 MySQL이 설치되어 있지 않은 경우 다음 지침에 따라 설치할 수 있습니다.

다음 명령을 입력하여 MySQL 셸에 로그인합니다.

sudo mysql

 

 

 

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;

 

 

 

Ubuntu에 Zabbix 설치

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

 

1. Zabbix 설치

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

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

 

 

파일이 다운로드되면 다음을 입력하여 Zabbix 저장소를 Ubuntu 18.04 시스템에 추가합니다.

sudo apt install ./zabbix-release_4.0-2+bionic_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 데이터베이스 구성

Zabbix 설치 패키지는 MySQL을 사용하는 Zabbix 서버의 초기 스키마 및 데이터를 포함하는 덤프 파일을 제공합니다.

다음을 실행하여 MySQL 덤프 파일을 가져옵니다.

zcat /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 Thu 2018-11-29 03:30:44 PST; 43s ago
#  Main PID: 14293 (zabbix_server)
#     Tasks: 34 (limit: 2319)
#    CGroup: /system.slice/zabbix-server.service
#    ...

 

 

 

 

Zabbix Frontend 설치, 구성

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

웹 인터페이스 사용을 시작하기 전에 먼저 설치해야 합니다.

즐겨찾기 브라우저를 열고 서버의 도메인 이름 또는 공용 IP 주소를 입력한 후 /zabbix를 입력합니다.

http(s)://your_domain_or_ip_address/zabbix

 

 

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

Ubuntu 18.04 : Zabbix 설치, 구성 방법, 예제, 명령어 1

 

 

그런 다음 Zabbix Frontend를 실행하는 데 필요한 모든 PHP 사전 요구 사항을 나열하는 다음 정보 페이지가 표시됩니다. 이 표의 모든 값이 정상이어야 합니다. 아래로 스크롤하여 모든 값이 올바르게 설정되었는지 확인하십시오. 확인이 완료되면 다음 단계를 클릭하여 계속합니다.

Ubuntu 18.04 : Zabbix 설치, 구성 방법, 예제, 명령어 2

 

 

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

Ubuntu 18.04 : Zabbix 설치, 구성 방법, 예제, 명령어 3

 

 

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

Ubuntu 18.04 : Zabbix 설치, 구성 방법, 예제, 명령어 4

 

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

Ubuntu 18.04 : Zabbix 설치, 구성 방법, 예제, 명령어 5

 

 

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

Ubuntu 18.04 : Zabbix 설치, 구성 방법, 예제, 명령어 6

 

 

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

Ubuntu 18.04 : Zabbix 설치, 구성 방법, 예제, 명령어 7

 

 

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

로그인하면 Zabbix 관리 대시보드로 리디렉션됩니다. 여기서 Zabbix 설치 사용자 지정 및 새 호스트 추가를 시작할 수 있습니다. 첫 번째 단계는 현재 암호를 변경하는 것입니다. 이렇게 하려면 상단 탐색에서 프로파일 아이콘을 클릭하여 사용자 프로파일 페이지로 이동합니다.

 

 

 

Zabbix 서버에 새 호스트 추가

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

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

 

Zabbix 에이전트를 설치합니다.

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

Zabbix 서버를 설치할 때와 마찬가지로 다음 명령을 실행하여 Zabbix 저장소를 실행하십시오.

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

 

 

패키지 인덱스를 업데이트하고 Zabbix 에이전트 패키지를 설치하십시오.

sudo apt update
sudo apt install zabbix-agent

 

 

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

다음 명령을 사용하여 미리 공유된 키를 생성하여 파일에 저장합니다.

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

 

 

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

sudo nano /etc/zabbix/zabbix_agentd.conf

 

 

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

# /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
...

 

 

다음으로 TSL 연결 옵션을 찾아 압축을 풀고 psk로 설정합니다.

# /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
...

 

 

TLSAcept 옵션을 찾아 압축을 풀고 psk로 설정합니다.

# /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
...

 

 

다음으로 TLSPSKID 옵션을 찾아 압축을 푼 다음 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
...

 

 

 

마지막으로 TLSPSK 파일 옵션을 찾아 압축을 푼 다음 이전에 만든 미리 공유된 키를 가리키도록 설정합니다.

# /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

 

 

 

 

새 호스트 설정

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

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

http(s)://your_domain_or_ip_address/zabbix

 

 

 

안으로 들어가면 상단 탐색 모음에서 구성을 클릭한 다음 호스트를 클릭합니다.

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

Ubuntu 18.04 : Zabbix 설치, 구성 방법, 예제, 명령어 8 

 

 

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

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

 

 

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

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

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

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

Ubuntu 18.04 : Zabbix 설치, 구성 방법, 예제, 명령어 10

 

 

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

반응형