3 소스에서 설치

원본 보기

3 소스에서 설치

소스에서 컴파일하여 Zabbix의 최신 버전을 사용할 수 있습니다.

소스에서 Zabbix를 설치하는 단계별 튜토리얼을 여기에서 제공합니다.

Zabbix 데몬 설치

1 소스 아카이브 다운로드

Zabbix 다운로드 페이지로 이동하여 소스 아카이브를 다운로드하세요. 다운로드가 완료되면 다음 명령을 실행하여 소스를 압축 해제하세요:

tar -zxvf zabbix-7.0.0.tar.gz

명령에 올바른 Zabbix 버전을 입력하세요. 다운로드한 아카이브 파일명과 일치해야 합니다.

2 사용자 계정 생성

모든 Zabbix 데몬 프로세스는 권한이 제한된 시스템 사용자 하에서 실행됩니다. Zabbix 데몬이 권한이 제한된 사용자 계정에서 시작되면, 해당 사용자로 계속 실행됩니다.

기본 구성에서 데몬이 root로 시작되면, 반드시 존재해야 하는 zabbix 사용자 계정으로 전환됩니다. zabbix 시스템 사용자와 그룹을 생성하려면 아래에 나열된 명령어를 실행하세요.

RedHat 기반 시스템:

groupadd --system zabbix
useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix

Debian 기반 시스템:

addgroup --system --quiet zabbix
adduser --quiet --system --disabled-login --ingroup zabbix --home /var/lib/zabbix --no-create-home zabbix

Zabbix 프론트엔드를 위해 별도의 사용자 계정을 생성할 필요는 없습니다.

보안 권장사항

Zabbix 서버에이전트가 같은 머신에서 실행되는 경우, 별도의 사용자 계정으로 실행하는 것이 권장됩니다. 둘 다 같은 사용자로 실행하면 에이전트가 서버의 구성 파일에 접근할 수 있게 되어, 데이터베이스 비밀번호와 같은 민감한 정보가 Zabbix의 관리자 수준 사용자에게 노출될 수 있습니다.

Zabbix를 root, bin 또는 특별한 권한을 가진 기타 계정으로 실행하는 것은 보안 위험입니다.

홈 디렉터리 (선택사항)

Zabbix 프로세스는 홈 디렉터리가 필요하지 않으므로 일반적으로 생성하는 것을 권장하지 않습니다. 그러나 홈 디렉터리가 필요한 기능이 있다면 (예: MySQL 자격 증명을 $HOME/.my.cnf에 저장), 아래 나열된 명령어를 사용하여 생성할 수 있습니다.

RedHat 기반 시스템에서는 다음을 실행하세요:

mkdir -m u=rwx,g=rwx,o= -p /usr/lib/zabbix
chown zabbix:zabbix /usr/lib/zabbix

Debian 기반 시스템에서는 다음을 실행하세요:

mkdir -m u=rwx,g=rwx,o= -p /var/lib/zabbix
chown zabbix:zabbix /var/lib/zabbix
3 Zabbix 데이터베이스 생성

Zabbix 서버프록시 데몬, 그리고 Zabbix 프런트엔드에는 데이터베이스가 필요합니다. Zabbix 에이전트를 실행하는 데는 필요하지 않습니다.

데이터베이스 스키마를 생성하고 데이터셋을 삽입하기 위한 SQL 스크립트가 제공됩니다. Zabbix 프록시 데이터베이스는 스키마만 필요하지만 Zabbix 서버 데이터베이스는 스키마 위에 데이터셋도 필요합니다.

Zabbix 데이터베이스를 생성한 후, Zabbix 컴파일의 다음 단계로 진행하세요.

4 소스 구성하기

Zabbix 서버, Zabbix 프록시 또는 Zabbix 에이전트를 빌드하려면 GNU 확장을 포함한 C99가 필요합니다. 이 버전은 CFLAGS="-std=gnu99"를 설정하여 명시적으로 지정할 수 있습니다:

export CFLAGS="-std=gnu99"

Zabbix Git repository에서 설치하는 경우, 먼저 다음을 실행해야 합니다:

./bootstrap.sh

Zabbix 서버나 프록시용 소스를 구성할 때는 사용할 데이터베이스 유형을 지정해야 합니다. 한 번에 하나의 데이터베이스 유형만 서버나 프록시 프로세스와 함께 컴파일할 수 있습니다.

지원되는 모든 구성 옵션을 보려면, 압축을 푼 Zabbix 소스 디렉토리에서 다음을 실행하세요:

./configure --help

Zabbix 서버와 에이전트용 소스를 구성하려면, 다음과 같이 실행할 수 있습니다:

./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi --with-ares

Zabbix 서버(PostgreSQL 등 포함)용 소스를 구성하려면, 다음을 실행할 수 있습니다:

./configure --enable-server --with-postgresql --with-net-snmp

Zabbix 프록시(SQLite 등 포함)용 소스를 구성하려면, 다음을 실행할 수 있습니다:

./configure --prefix=/usr --enable-proxy --with-net-snmp --with-sqlite3 --with-ssh2

Zabbix 에이전트용 소스를 구성하려면, 다음을 실행할 수 있습니다:

./configure --enable-agent

또는 Zabbix agent 2의 경우:

./configure --enable-agent2

Zabbix agent 2를 빌드하려면 지원되는 Go 버전이 설치되어 있어야 합니다.

컴파일 옵션에 대한 참고사항:

  • --enable-agent - Zabbix 에이전트와 함께 Zabbix getZabbix sender 명령행 유틸리티를 컴파일합니다.
  • --with-libcurl - 가상 머신 모니터링, SMTP 인증, 그리고 web.page.* Zabbix 에이전트 아이템에 필요합니다. 참조: 요구사항 (libcurl).
  • --with-libxml2 - 가상 머신 모니터링에 필요합니다.
  • --with-libpcre[=DIR] - Zabbix는 항상 PCRE 라이브러리와 함께 컴파일됩니다; 이 옵션은 커스텀 PCRE 설치 경로를 지정할 때만 사용합니다.
  • --with-mysql=/path/to/mysql_config - 특정 MySQL 클라이언트 라이브러리 구성 경로를 지정합니다. 여러 버전의 MySQL이나 MariaDB가 설치되어 있을 때 유용합니다.
  • --with-oracle - Oracle Call Interface (OCI) API의 위치를 지정합니다.
  • --enable-static - 라이브러리를 정적으로 링크합니다(Solaris에서는 지원되지 않음). 필요한 라이브러리가 없는 시스템에 컴파일된 바이너리를 배포할 계획이 있다면 사용하세요. Zabbix 서버를 빌드할 때는 권장하지 않습니다. 서버를 정적으로 빌드하려면 모든 외부 라이브러리의 정적 버전이 필요합니다. configure 스크립트는 이를 자동으로 확인하지 않습니다.
  • --with-stacksize=<value> - 스레드별 스택 크기를 킬로바이트 단위로 설정합니다(예: --with-stacksize=512). 스택 오버플로우로 인해 Zabbix가 충돌하거나 멈추는 경우(예: 기본 스레드 스택 제한이 낮은 시스템에서 전처리 중) 이 값을 증가시킬 수 있습니다.

./configure가 누락된 라이브러리나 기타 문제로 인해 실패하는 경우, 자세한 오류 정보는 config.log 파일을 확인하세요.

예를 들어, libssl이 누락된 경우, 즉시 표시되는 오류 메시지는 혼란을 줄 수 있습니다:

checking for main in -lmysqlclient... no
configure: error: Not found mysqlclient library

이 경우, config.log가 실제 원인을 알려줍니다:

/usr/bin/ld: cannot find -lssl
/usr/bin/ld: cannot find -lcrypto

참조:

5 모든 것을 빌드하고 설치하기

Zabbix Git repository에서 설치하는 경우, 먼저 다음을 실행해야 합니다:

$ make dbschema

make install

이 단계는 충분한 권한을 가진 사용자(일반적으로 'root' 또는 sudo 사용)로 실행해야 합니다.

make install을 실행하면 기본적으로 데몬 바이너리 (zabbix_server, zabbix_agentd, zabbix_proxy)는 /usr/local/sbin에 설치되고 클라이언트 바이너리(zabbix_get, zabbix_sender)는 /usr/local/bin에 설치됩니다.

/usr/local과 다른 위치를 지정하려면, 이전 소스 구성 단계에서 --prefix 키를 사용하세요. 예를 들어 --prefix=/home/zabbix. 이 경우 데몬 바이너리는 <prefix>/sbin 아래에, 유틸리티는 <prefix>/bin 아래에 설치됩니다. 매뉴얼 페이지는 <prefix>/share 아래에 설치됩니다.

6 설정 파일 검토 및 편집
  • Zabbix 에이전트 설정 파일 편집 /usr/local/etc/zabbix_agentd.conf

zabbix_agentd가 설치된 모든 호스트에서 이 파일을 설정해야 합니다.

파일에서 Zabbix 서버 IP 주소를 지정해야 합니다. 다른 호스트로부터의 연결은 거부됩니다.

  • Zabbix 서버 설정 파일 편집 /usr/local/etc/zabbix_server.conf

데이터베이스 이름, 사용자 및 비밀번호(사용하는 경우)를 지정해야 합니다.

소규모 설치(최대 10개의 모니터링 호스트)인 경우 나머지 매개변수는 기본값으로 충분합니다. 하지만 Zabbix 서버(또는 프록시)의 성능을 최대화하려면 기본 매개변수를 변경해야 합니다.

  • Zabbix 프록시를 설치한 경우, 프록시 설정 파일 편집 /usr/local/etc/zabbix_proxy.conf

서버 IP 주소와 프록시 호스트명(서버가 알고 있어야 함), 그리고 데이터베이스 이름, 사용자 및 비밀번호(사용하는 경우)를 지정해야 합니다.

SQLite를 사용하는 경우 데이터베이스 파일의 전체 경로를 지정해야 하며, DB 사용자와 비밀번호는 필요하지 않습니다.

7 데몬 시작하기

서버 측에서 zabbix_server를 실행합니다.

zabbix_server

시스템에서 36MB(또는 조금 더)의 공유 메모리 할당이 허용되는지 확인하세요. 그렇지 않으면 서버가 시작되지 않을 수 있으며 서버 로그 파일에서 "Cannot allocate shared memory for <type of cache>."라는 오류를 볼 수 있습니다. 이는 FreeBSD, Solaris 8에서 발생할 수 있습니다.

모든 모니터링 대상 머신에서 zabbix_agentd를 실행합니다.

zabbix_agentd

시스템에서 2MB의 공유 메모리 할당이 허용되는지 확인하세요. 그렇지 않으면 에이전트가 시작되지 않을 수 있으며 에이전트 로그 파일에서 "Cannot allocate shared memory for collector."라는 오류를 볼 수 있습니다. 이는 Solaris 8에서 발생할 수 있습니다.

Zabbix 프록시를 설치했다면 zabbix_proxy를 실행합니다.

zabbix_proxy

Zabbix 웹 인터페이스 설치

PHP 파일 복사

Zabbix 프론트엔드는 PHP로 작성되어 있으므로 실행하려면 PHP를 지원하는 웹서버가 필요합니다. 설치는 ui 디렉토리에서 웹서버 HTML 문서 디렉토리로 PHP 파일을 단순히 복사하는 것으로 완료됩니다.

Apache 웹 서버의 HTML 문서 디렉토리 일반적인 위치는 다음과 같습니다:

  • /usr/local/apache2/htdocs (소스에서 Apache를 설치할 때의 기본 디렉토리)
  • /srv/www/htdocs (OpenSUSE, SLES)
  • /var/www/html (Debian, Ubuntu, Fedora, RHEL)

HTML 루트 대신 하위 디렉토리를 사용하는 것이 권장됩니다. 하위 디렉토리를 생성하고 Zabbix 프론트엔드 파일을 복사하려면 다음 명령을 실행하되, <htdocs>를 실제 디렉토리로 교체하세요:

mkdir <htdocs>/zabbix
cd ui
cp -a . <htdocs>/zabbix

영어 이외의 다른 언어를 사용할 계획이라면 지침은 추가 프론트엔드 언어 설치를 참조하세요.

프론트엔드 설치

Zabbix 프론트엔드 설치 마법사에 대한 정보는 웹 인터페이스 설치 페이지를 참조하세요.

Zabbix agent 2 로드 가능한 플러그인 설치

Zabbix agent 2 로드 가능한 플러그인 설치는 내장 플러그인으로 커버되지 않는 대상(예: MongoDB 서버 또는 클러스터, PostgreSQL 및 그 파생 버전 등)을 모니터링하려는 경우에만 필요합니다. 로드 가능한 플러그인내장 플러그인의 전체 목록을 참조하세요.

플러그인을 설치하기 전에 README 파일을 확인하시기 바랍니다. 특정 요구사항과 설치 지침이 포함되어 있을 수 있습니다.

소스에서 설치하려면 먼저 로드 가능한 플러그인 소스 아카이브를 다운로드하여 압축을 해제하세요.

플러그인을 컴파일하려면 압축을 해제한 플러그인 디렉터리로 이동하여 make를 실행하세요:

make

Zabbix agent 2 로드 가능한 플러그인을 빌드하려면 지원되는 Go 버전이 설치되어 있어야 합니다.

플러그인 실행 파일은 Zabbix agent 2에서 로드할 수 있는 한 어디에든 배치할 수 있습니다. 플러그인 구성 파일에서 플러그인 바이너리의 경로를 지정하세요. 예를 들어 PostgreSQL 플러그인의 경우 postgresql.conf에서:

Plugins.PostgreSQL.System.Path=/path/to/executable/zabbix-agent2-plugin-postgresql

플러그인 구성 파일의 경로는 Zabbix agent 2 구성 파일의 Include 매개변수에 지정되어야 합니다:

Include=/path/to/plugin/configuration/file/postgresql.conf

플러그인 구성에 대한 자세한 내용은 설정을 참조하세요.

Zabbix에서 제공하는 로드 가능한 플러그인은 다음 빌드 타겟을 갖는 간단한 makefile을 사용합니다:

  • make - 플러그인 빌드
  • make clean - 플러그인 빌드로 생성된 모든 파일 삭제
  • make check - 자체 테스트 실행 (실제 모니터링 대상이 필요함, 예: PostgreSQL 데이터베이스)
  • make style - golangci-lint로 Go 코드 스타일 검사
  • make format - go fmt로 Go 코드 형식 지정
  • make dist - 모든 종속성을 포함한 소스 아카이브 생성

Java gateway 설치

JMX 애플리케이션을 모니터링하려는 경우에만 Java gateway를 설치하면 됩니다. Java gateway는 가볍고 데이터베이스가 필요하지 않습니다.

소스에서 설치하려면 먼저 소스 아카이브를 다운로드하고 압축을 해제하세요.

Java gateway를 컴파일하려면 --enable-java 옵션과 함께 ./configure 스크립트를 실행하세요. Java gateway를 설치하면 단일 실행 파일이 아닌 전체 디렉터리 트리가 생성되므로, 기본값인 /usr/local이 아닌 다른 설치 경로를 요청하는 --prefix 옵션을 지정하는 것이 좋습니다.

./configure --enable-java --prefix=$PREFIX

Java gateway를 컴파일하고 JAR 파일로 패키징하려면 make를 실행하세요. 이 단계에서는 경로에 javacjar 실행 파일이 필요합니다.

make

이제 src/zabbix_java/bin에 zabbix-java-gateway-$VERSION.jar 파일이 생성됩니다. 배포 디렉터리의 src/zabbix_java에서 Java gateway를 실행하는 것이 편하다면 Java gateway 구성 및 실행 지침으로 진행할 수 있습니다. 그렇지 않다면 충분한 권한이 있는지 확인하고 make install을 실행하세요.

make install

Java gateway 구성 및 실행에 대한 자세한 내용은 설정으로 진행하세요.

Zabbix 웹 서비스 설치

Zabbix 웹 서비스 설치는 예약된 보고서를 사용하려는 경우에만 필요합니다.

소스에서 설치하려면 먼저 소스 아카이브를 다운로드하여 압축을 해제하세요.

Zabbix 웹 서비스를 컴파일하려면 --enable-webservice 옵션과 함께 ./configure 스크립트를 실행하세요.

Zabbix 웹 서비스를 빌드하려면 지원되는 Go 버전이 설치되어 있어야 합니다.

웹 서비스가 설치된 머신에서 zabbix_web_service를 실행하세요:

zabbix_web_service

예약된 보고서 생성 구성에 대한 자세한 내용은 설정으로 진행하세요.