소스 설치
소스를 컴파일하면 Zabbix의 최신 버전을 설치할 수 있습니다.
여기에서는 소스에서 Zabbix를 설치하는 방법을 단계별로 안내합니다.
Zabbix 데몬 설치
1 소스 압축 파일 다운로드
Zabbix 다운로드 페이지에서 소스 압축 파일을 다운로드합니다. 다운로드가 완료되면 다음 명령을 실행하여 소스의 압축을 풉니다:
tar -zxvf zabbix-7.4.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 프로세스에는 홈 디렉터리가 필요하지 않으므로 일반적으로 생성하지 않는 것이 좋습니다. 다만 홈 디렉터리가 필요한 기능(예: $HOME/.my.cnf에 MySQL 자격 증명 저장)을 사용하려면 아래 명령으로 생성할 수 있습니다.
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 저장소에서 설치하는 경우 먼저 다음을 실행해야 합니다:
./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 에이전트 2의 경우에는 다음을 실행합니다:
./configure --enable-agent2
Zabbix 에이전트 2를 빌드하려면 지원되는 Go 버전이 설치되어 있어야 합니다.
컴파일 옵션 관련 참고 사항:
--enable-agent- Zabbix 에이전트와 명령줄 유틸리티인 Zabbix get 및 Zabbix sender를 컴파일합니다.--with-libcurl- 가상 머신 모니터링, SMTP 인증 및web.page.*Zabbix 에이전트 아이템에 필요합니다. 참고: 요구 사항 (libcurl).--with-libxml2- 가상 머신 모니터링에 필요합니다.--with-libpcre2[=DIR]- Zabbix는 항상 PCRE2 라이브러리와 함께 컴파일됩니다. 이 옵션은 사용자 지정 PCRE2 설치 경로를 지정하는 데만 사용됩니다.--with-mysql=/path/to/mysql_config- 특정 MySQL 클라이언트 라이브러리 설정의 경로를 지정합니다. MySQL 또는 MariaDB의 여러 버전이 설치되어 있을 때 유용합니다.--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 저장소에서 설치하는 경우 먼저 다음을 실행해야 합니다:
$ 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 에이전트의 설정 파일 (
zabbix_agentd.conf)을 수정합니다.
zabbix_agentd가 설치된 모든 호스트에서 이 파일을 설정해야 합니다.
파일에 Zabbix 서버의 IP 주소를 지정해야 합니다. 다른 호스트의 연결은 거부됩니다.
- Zabbix 서버의 설정 파일 (
zabbix_server.conf)을 수정합니다.
데이터베이스 이름, 사용자 및 비밀번호(사용하는 경우)를 지정해야 합니다.
소규모 설치 환경(모니터링 대상 호스트가 최대 10대)에서는 나머지 매개변수를 기본값으로 사용해도 됩니다. 하지만 Zabbix 서버(또는 프록시)의 성능을 최대한 높이려면 기본 매개변수를 변경해야 합니다.
- Zabbix 프록시를 설치한 경우 프록시의 설정 파일 (
zabbix_proxy.conf)을 수정합니다.
서버 IP 주소와 프록시 호스트명(서버에 등록되어 있어야 함), 데이터베이스 이름, 사용자 및 비밀번호(사용하는 경우)를 지정해야 합니다.
SQLite를 사용하는 경우 데이터베이스 파일의 전체 경로를 지정해야 합니다. 데이터베이스 사용자와 비밀번호는 필요하지 않습니다.
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 디렉터리의 PHP 파일을 웹 서버의 HTML 문서 디렉터리로 복사하기만 하면 설치됩니다.
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 에이전트 2 로드 가능한 플러그인 설치
Zabbix 에이전트 2의 로드 가능한 플러그인은 내장 플러그인이 지원하지 않는 대상(예: MongoDB 서버 또는 클러스터, PostgreSQL 및 그 포크 등)을 모니터링하려는 경우에만 설치하면 됩니다. 로드 가능한 플러그인과 내장 플러그인의 전체 목록을 참조하세요.
플러그인을 설치하기 전에 README 파일을 확인하세요. 특정 요구 사항과 설치 지침이 포함되어 있을 수 있습니다.
소스에서 설치하려면 먼저 로드 가능한 플러그인의 소스 압축 파일을 다운로드하고 압축을 풉니다.
플러그인을 컴파일하려면 압축을 푼 플러그인 디렉터리로 이동하여 make를 실행합니다:
make
Zabbix 에이전트 2의 로드 가능한 플러그인을 빌드하려면 지원되는 Go 버전이 설치되어 있어야 합니다.
플러그인 실행 파일은 Zabbix 에이전트 2가 로드할 수 있는 위치라면 어디에나 둘 수 있습니다. 플러그인 설정 파일에 플러그인 바이너리의 경로를 지정합니다. 예를 들어 PostgreSQL 플러그인의 경우 postgresql.conf에 다음과 같이 지정합니다:
Plugins.PostgreSQL.System.Path=/path/to/executable/zabbix-agent2-plugin-postgresql
Zabbix 에이전트 2 설정 파일의 Include 매개변수에 플러그인 설정 파일의 경로를 지정해야 합니다:
Include=/path/to/plugin/configuration/file/postgresql.conf
플러그인 설정에 대한 자세한 내용은 설정을 참조하세요.
Zabbix에서 제공하는 로드 가능한 플러그인은 다음 빌드 대상을 포함하는 간단한 makefile을 사용합니다:
make- 플러그인 빌드make clean- 플러그인 빌드 시 생성된 모든 파일 삭제make check- 자체 테스트 실행(실제 모니터링 대상 필요, 예: PostgreSQL 데이터베이스)make style- Go 코드 스타일 검사에 사용:golangci-lintmake format- Go 코드 서식 지정에 사용:go fmtmake dist- 모든 의존성을 포함하는 소스 압축 파일 생성
Java 게이트웨이 설치
Java 게이트웨이는 JMX 애플리케이션을 모니터링하려는 경우에만 설치하면 됩니다. Java 게이트웨이는 가벼우며 데이터베이스가 필요하지 않습니다.
소스에서 설치하려면 먼저 소스 압축 파일을 다운로드하고 압축을 풉니다.
Java 게이트웨이를 컴파일하려면 ./configure 스크립트를
--enable-java 옵션과 함께 실행합니다. 기본 경로인 /usr/local 이외의 설치 경로를 지정하려면 --prefix 옵션을 사용하는 것이 좋습니다. Java 게이트웨이를 설치하면 단일 실행 파일뿐 아니라 전체 디렉터리 트리가 생성되기 때문입니다.
./configure --enable-java --prefix=$PREFIX
Java 게이트웨이를 컴파일하고 JAR 파일로 패키징하려면 make를 실행합니다. 이 단계에서는 경로에 javac 및 jar 실행 파일이 있어야 합니다.
make
이제 src/zabbix_java/bin에 zabbix-java-gateway-$VERSION.jar 파일이 생성됩니다. 배포 디렉터리의 src/zabbix_java에서 Java 게이트웨이를 실행해도 괜찮다면 Java 게이트웨이 설정 및 실행 지침으로 진행할 수 있습니다.
그렇지 않으면 충분한 권한이 있는지 확인하고 make install을 실행합니다.
make install
Java 게이트웨이 설정 및 실행에 대한 자세한 내용은 설정을 참조하세요.
Zabbix 웹 서비스 설치
Zabbix 웹 서비스는 예약 보고서를 사용하려는 경우에만 설치하면 됩니다.
소스에서 설치하려면 먼저 소스 압축 파일을 다운로드하고 압축을 풉니다.
Zabbix 웹 서비스를 컴파일하려면 ./configure 스크립트를
--enable-webservice 옵션과 함께 실행합니다.
Zabbix 웹 서비스를 빌드하려면 지원되는 Go 버전이 설치되어 있어야 합니다.
웹 서비스가 설치된 시스템에서 zabbix_web_service를 실행합니다:
zabbix_web_service
예약 보고서 생성 설정에 대한 자세한 내용은 설정을 참조하세요.