본문 바로가기
  • ▒ 네모의 쉽게 배우는 네트워크 | 개발 ▒
네트워크 운영도구 개발/모니터링 시스템 개발

zabbix 설치 방법 - 1) 소스코드(source code)로 설치

by 너l모 2021. 9. 2.
반응형

※ 업무하면서 습득한 내용들을 정리해 놓은 포스팅입니다 :P 추가로 궁금하신 점은 댓글로 남겨주시고 필요한 자료 있으면 요청주세요! 잘못된 내용이 있으면 고쳐주시면 감사하겠습니다. 자료 퍼가실 때는 출처 남겨주세요!


 ο 목차

     


    ※ 코드 보는 방법 참고

    ㅇ 달러 기호($)가 있는 경우 -> 리눅스 터미널에서 CLI 명령어 입력

    ㅇ "=#" 기호가 있는 경우 -> psql 쉘에서 명령어 입력

    ㅇ 꺽쇠가 하나 있는 경우(>) -> 윈도우 명령 프롬프트(cmd)에서 명령어 입력

    ㅇ 꺽쇠가 세개 있는 경우(>>>) -> python 쉘에서 명령어 입력


    zabbix를 설치할 수 있는 방법은 크게 3가지가 있습니다.

     

    • 소스코드(source code)로 설치
    • 패키지(package)로 설치 
    • 컨테이너(container)로 설치

     

    컨테이너로 설치하는 경우는 예외로 두고, 소스코드와 패키지로 설치하는 방법에 대해 간단히 소개드리고 각 방법의 장단점을 알려드릴까 합니다.

     

    첫번째 포스팅은 소스 코드로 설치하는 방법에 대해 다룰 예정입니다. 

    패키지 설치 방법을 원하시는 분은 다음 포스팅 내용 참고 해주세요~


    1. 소스코드(source code)로 설치하기

    1) 소스코드 설치 장점

    패키지로 설치가 어려운 경우 소스 코드로 직접 빌드해서 사용할 수 있다는 장점이 있습니다. 패키지를 통한 설치가 어려운 경우(ex. 내부적으로 오류(버그)가 있는 경우) 소스 코드로 빌드해서 설치할 수 있습니다.

    2) 소스코드 설치 단점

    패키지는 한번에 해줄 수 있는 설치 과정을 직접 작업해야 한다는 단점이 있습니다. 어느 정도 리눅스에 대한 지식이 없는 초보자는 설치가 어려울 수 있습니다. 만약 패키지로 설치가 가능한 상황이라면, 소스코드 말고 패키지로 설치하는 것을 ☆강력히 추천☆합니다. 

     

    2. 소스코드로 zabbix 데몬 설치 방법 

    아래 공식 페이지를 참고해도 되고(영어, 상세한 설명) 어려우신 분들은 아래 과정 참고 해주세요~

    https://www.zabbix.com/documentation/5.0/manual/installation/install

     

    3 Installation from sources [Zabbix Documentation 5.0]

     

    www.zabbix.com

    (1) zabbix 소스코드 다운로드

    https://www.zabbix.com/download_sources

     

    Download Zabbix sources

     

    www.zabbix.com

    위의 페이지에서 원하는 소스코드 버전을 다운로드 합니다. (아래 이미지 참고)

     

    (2) tar 압축 풀기

    $ tar -zxvf zabbix-5.0.0.tar.gz

    ※ 위의 명령어는 "zabbix-5.0.0.tar.gz"라는 소스파일이 있는 디렉토리에서 실행 필요

    ※ 포스팅에서는 5.0 버전을 사용한다고 가정하지만, 다른 버전의 zabbix를 설치하는 경우 "zabbix-5.0.0.tar.gz" 대신 설치한 버전의 zabbix 소스코드명을 사용해야 함.

     

    (3) 사용자 추가하기

    - zabbix 데몬 프로세스를 실행할 사용자 계정(zabbix) 추가. 

     

    - (레드햇 기반) 사용자 추가 명령어 ↓

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

     

    - (데비안 기반) 사용자 추가 명령어 ↓

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

     

    (4)  zabbix 데이터베이스 생성하기

    - zabbix 데몬이 수집한 데이터를 저장하고, 저장된 데이터를 프론트엔드에서 사용하기 위해 데이터베이스가 필요

    - MySQL 혹은 PostgreSQL 중 원하는 데이터베이스를 선택하여 다음 단계 진행

     

    - MySQL을 선택하는 경우 ↓

    •  mysql에 root 계정으로 접속한 후 zabbix 계정 생성
    $ mysql -u root -p 루트패스워드
    mysql> create database zabbix character set utf8 collate utf8_bin;
    mysql> create user 'zabbix'@'localhost' identified by 'zabbix데이터베이스패스워드';
    mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost';
    mysql> quit;

     

    •  압축해제한 zabbix 소스코드의 database 디렉토리의 mysql 디렉토리로 이동 한후 초기 스키마 및 데이터 삽입
    $ cd database/mysql
    $ mysql -u zabbix -p zabbix데이터베이스패스워드 zabbix < schema.sql
    
    # Zabbix 서버가 아닌 프록시를 설치한 경우 아래 ↓ 단계는 진행할 필요 없음. 
    
    $ mysql -u zabbix -p zabbix데이터베이스패스워드 zabbix < images.sql
    $ mysql -u zabbix -p zabbix데이터베이스패스워드 zabbix < data.sql

     

    - PostgreSQL을 선택하는 경우 ↓

    • shell에서 바로 zabbix 계정 및 zabbix 데이터베이스 생성(root 권한)
    $ sudo -u postgres createuser --pwprompt zabbix
    $ sudo -u postgres createdb -O zabbix -E Unicode -T template0 zabbix

     

    • 압축해제한 zabbix 소스코드의 database 디렉토리의 postgresql 디렉토리로 이동 한후 초기 스키마 및 데이터 삽입
    $ cd database/postgresql
    $ cat schema.sql | sudo -u zabbix psql zabbix
    
    # Zabbix 서버가 아닌 프록시를 설치한 경우 아래 ↓ 단계는 진행할 필요 없음. 
    
    $ cat images.sql | sudo -u zabbix psql zabbix
    $ cat data.sql | sudo -u zabbix psql zabbix

     

    (5) 소스 파일 구성(configure)하기 

    다운로드 한 소스 파일 중에서 어떤 부분을 서버에서 어떻게 사용할 것인가에 대한 결정하는 단계

    (소스 파일은 zabbix 서버, zabbix 에이전트, zabbix 프록시 등의 자료를 모두 포함하고 있기 때문에 이 중에서 부분을 본격적으로 설치할 것인지 결정하는 단계라고 하면 이해가 좀 쉬울 것 같습니다.)

     

    ※ 아래 명령어는 압축해제한 소스 파일 디렉토리로 이동 후 실행해야 합니다. 당연한 건데 저는 처음 할 때 이게 엄청 헷갈렸습니다 ;_; 저처럼 헷갈리시는 분들 있을까봐 혹여나해서 이렇게 자주 설명드리는 것이니 불필요하신 분들은 그냥 가볍게 읽고 넘어가주세요~

     

    • 소스 파일 구성 가능한 옵션 확인 명령어 ↓
    $ ./configure --help

     

    • zabbix 서버와 agent를 모두 구성하는 경우 구성 옵션 예시 ↓
    $ ./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi

     

    • zabbix 서버만 구성하는 경우 옵션 예시 ↓
    $ ./configure --enable-server --with-postgresql --with-net-snmp

     

    • zabbix 프록시 구성 옵션 예시 ↓
    $ ./configure --prefix=/usr --enable-proxy --with-net-snmp --with-sqlite3 --with-ssh2

     

    • zabbix agent만 구성하는 경우 옵션 예시 ↓
    $ ./configure --enable-agent

    ※ 구성 작업을 진행하다보면 구성에 필요한 라이브러리가 설치되어있지 않아서(missing) 오류가 뜨는 경우가 있습니다. 터미널에 오류 메세지가 발생되는 경우 해당 메시지 내용을 해석해서 설치되지 않은 라이브러리를 설치해주면 됩니다. 일반적으로 오류 메세지에 필요한 라이브러리 모듈 정보가 포함되어 있기 때문에 리눅스 OS별 패키지 설치 툴을 이용해서 설치해주고 다시 ./configure 작업을 실행하면 정상적으로 동작할 겁니다. 소스 코드의 config.log 파일에 configure와 관련된 로그가 저장되어 있기 때문에 파일 내용을 확인해서 기타 이슈에 대해서도 트러블슈팅 해주면 됩니다. 

     

     

    (6) make install 하기 (root 권한 필요)

    5번 단계에서 구성(configure)한 내용대로 zabbix를 설치하는 단계

    • 소스 코드 디렉토리에서 make install 명령어를 root 권한으로 실행
    $ sudo make install

    ※ 기본 설치 디렉토리 

    • 데몬 바이너리(zabbix_server, zabbix_agentd, zabbix_proxy) : /usr/local/sbin
    • 클라이언트 바이너리(zabbix_get, zabbix_sender) : /usr/local/bin

     

    (7) zabbix 구성 파일 검토 및 편집

    configure 작업을 통해 기본값 구성은 되었지만 zabbix 서버 IP 주소, 혹은 데이터베이스 이름, 사용자, 암호 등 세부적으로 구성해야 할 내용이 있을 수 있기 때문에 구성 파일을 검토한 후 필요한 부분을 작성해줍니다.

    • 구성 파일 위치(zabbix 서버) : /usr/local/etc/zabbix_server.conf
    • 구성파일 위치(zabbix 에이전트) : /usr/local/etc/zabbix_agentd.conf
    $ vi /usr/local/etc/zabbix_server.conf
    $ vi /usr/local/etc/zabbix_agentd.conf

    ※ 편집기는 nano를 써도 되고 vi를 써도 되고 편한 도구로 사용

     

    (8) 설치된 데몬 실행시키기

     

    • zabbix 서버 실행시키기
    $ zabbix_server

     

    • zabbix 에이전트 실행시키기
    $ zabbix_agentd

     

    • zabbix 프록시 실행시키기
    $ zabbix_proxy

     

    (9) 실행된 zabbix 데몬 확인하기

    $ ps -ef | grep zabbix

     

    프로세스가 정상적으로 검색되면 zabbix 데몬 설치는 끝났습니다. 

     

    3. 소스코드로 zabbix 웹 인터페이스 설치하기

    1) zabbix 웹 인터페이스 설치 개요

    웹 인터페이스 관련 소스코드 자료는 zabbix 소스코드 디렉토리의 /ui 디렉토리에 있습니다.

    아파치를 사용하는 경우 일반적으로 웹서버 html 디렉토리는 아래와 같습니다. 

     

    • 아파치를 소스코드로 설치한 경우 : /usr/local/apache2/htdocs 
    •  OpenSUSE, SLES 운영체제 : /srv/www/htdocs
    • Debian, Ubuntu, Fedora, RHEL, CentOS 운영체제 : /var/www/html 

     

    위의 아파치 웹서버 html 디렉토리 하위에 /zabbix 서브 디렉토리를 만든 후 /ui 디렉토리의 파일들을 /zabbix 서브 디렉토리로 복사하면 됩니다.

     

    2)  zabbix 웹 인터페이스 설치 방법

     

    (1) 웹서버 html 디렉토리(htdocs) 하위에 /zabbix 서브 디렉토리 만들기

    $ mkdir <htdocs>/zabbix

     

    (2) zabbix 소스 코드의 ui 디렉토리로 이동

    $ cd ui

     

    (3) ui 디렉토리의 파일들을 /zabbix 서브 디렉토리에 복사하기

    $ cp -a . <htdocs>/zabbix

    여기까지 작업하시면 기초 작업이 끝이 납니다. 이제 관리 웹 페이지를 사용하기 위해 브라우저로 Zabbix 웹 인터페이스 설정 작업을 해줘야 하는데... 이 내용은 패키지 설치 후작업과 동일하고...., 여기서 다 정리하기엔 포스팅 내용이 길어질 것 같아서... 패키지 설치 방법 포스팅이 끝나면 정리해서 올리도록 하겠습니다. 

     

    다음 포스팅은 패키지 설치 방법에 관한 포스팅이고, 그 다음 포스팅에서 웹 인터페이스 설정 방법을 정리해서 올리겠습니다. 

     

    포스팅 올라가면 아래에 링크 걸어둘게요 :P


    ※ 좋아요와 구독은 큰 힘이 됩니다. 감사합니다. 

    반응형

    댓글