SW/리눅스

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

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

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

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

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

 

 

 

전제조건

패키지를 설치하려면 sudo 액세스 권한이 있는 사용자로 로그인해야 합니다.

 

 

 

MySQL 데이터베이스 생성

Zabbix는 MySQL/MariaDB 및 PostgreSQL을 데이터베이스 서버로 사용합니다. MariaDB를 데이터베이스 백엔드로 사용할 것입니다.

Cent os 서버에 MariaDB가 설치되어 있지 않은 경우 다음 지침을 따라 설치할 수 있습니다. 

다음 명령을 입력하여 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;

 

 

 

센토스에 Zabbix 설치

이 기사를 쓸 당시 최신 버전의 Zabbix는 4.0 버전입니다. Cent os 저장소에서 사용할 수 있는 Zabbix 패키지는 구식이므로 공식 Zabbix 저장소를 사용합니다.

 

1. Zabbix를 설치합니다.

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

wget https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

 

 

파일이 다운로드되면 다음을 입력하여 Cent os 7 시스템에 Zabbix 저장소를 추가하십시오.

sudo yum localinstall zabbix-release-4.0-1.el7.noarch.rpm

 

 

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

sudo yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent

 

 

Apache 및 PHP가 아직 serve에 설치되어 있지 않은 경우 위의 명령이 설치합니다.

 

 

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

설치하는 동안 필요한 모든 Apache 및 PHP 설정을 포함하는 Apache 구성 파일이 생성됩니다. 조금만 변경하고 적절한 시간대를 설정하면 됩니다. 

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

# /etc/httpd/conf.d/zabbix.conf

...
    <IfModule mod_php5.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 Europe/Riga
    </IfModule>
...

 

 

완료되면 구성 파일을 저장하고 Apache 서비스를 재시작하여 변경 내용을 적용합니다.

sudo systemctl restart httpd

 

 

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

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

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

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

 

 

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

그런 다음 편집기에서 Zabbix 구성 파일을 엽니다.

다음 섹션을 검색하고 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 (/usr/lib/systemd/system/zabbix-server.service; enabled; vendor preset: disabled)
#    Active: active (running) since Sun 2018-12-30 21:18:01 UTC; 51s ago
#  Main PID: 5558 (zabbix_server)
#    CGroup: /system.slice/zabbix-server.service
#    ...

 

 

 

Zabbix Frontend를 설치, 구성

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

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

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

http(s)://your_domain_or_ip_address/zabbix

 

 

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

CentOS 7 : Zabbix 설치, 구성 방법, 예제, 명령어 1

 

 

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

CentOS 7 : Zabbix 설치, 구성 방법, 예제, 명령어 2

 

 

 

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

CentOS 7 : Zabbix 설치, 구성 방법, 예제, 명령어 3

 

 

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

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

CentOS 7 : Zabbix 설치, 구성 방법, 예제, 명령어 4

 

 

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

CentOS 7 : Zabbix 설치, 구성 방법, 예제, 명령어 5

 

 

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

CentOS 7 : Zabbix 설치, 구성 방법, 예제, 명령어 6

 

 

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

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

 

 

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

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

 

 

 

Zabbix 서버에 새 호스트 추가

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

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

 

Zabbix 에이전트 설치

호스트 시스템도 Cent os 7을 사용한다고 가정합니다.

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

wget https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
sudo yum localinstall zabbix-release-4.0-1.el7.noarch.rpm

 

 

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

sudo yum install zabbix-agent

 

 

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

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

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

 

 

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

서버 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 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 서버의 트래픽을 사용하도록 설정하는 방화벽 규칙을 추가해야 합니다.

방화벽 D를 사용하여 방화벽을 관리하고 있으며 192.168.121.70 IP 주소로부터의 액세스를 허용하고자 하는 경우 다음 명령을 실행합니다.

sudo firewall-cmd --new-zone=zabbix --permanent
sudo firewall-cmd --zone=special --add-source=192.168.121.70/32
sudo firewall-cmd --zone=special --add-port=10050/tcp

 

 

 

새 호스트 설정

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

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

http(s)://your_domain_or_ip_address/zabbix

 

 

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

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

CentOS 7 : Zabbix 설치, 구성 방법, 예제, 명령어 8

 

 

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

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

 

 

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

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

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

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

CentOS 7 : Zabbix 설치, 구성 방법, 예제, 명령어 10

 

 

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

반응형