태그 보관물: Zabbix

Zabbix Server 설치

※ 설치 시기가 오래된 관계로 최근 버전과 설치 방식이 상이할 수 있습니다.

사전 설치 환경 구성(Pre Configuration)

  • OS Version : CentOS(RHEL) 7 64bit
  • Web Service : Apache (httpd)
  • Language : PHP (Version 5.4)
# /etc/php.ini 수정
max_execution_time=300      #스크립트의 최대 실행 시간
post_max_size=16M           #POST 방식으로 넘겨질 최대 데이터 크기
max_input_time=300          #스크립트 페이지로 넘어가기 전 php엔진이 데이터를 업로드 받는 최대 시간
date.timezone="Asia/Seoul"  #지역 시간 지정
  • DBMS : MariaDB or MySQL(Version 5.5)
# yum install MariaDB-shared MariaDB-devel MariaDB-common MariaDB-server MariaDB-client
// MariaDB 서비스 시작

# mysql_secure_installation
// 보안 설정 진행 ('enter' / 'password' / 'password' / y / n / y / y)

# mysql -uroot -p'password'
MariaDB [(none)]> CREATE DATABASE zabbix CHARACTER SET UTF8;
Query OK, 1 row affected (0.00 sec)

create user 'zabbix'@'localhost' identified by 'password'; #사용자 생성
create user 'zabbix'@'%' identified by 'password'; #원격 접근 사용자 생성

MariaDB [(none)]> GRANT ALL PRIVILEGES on zabbix.* to 'zabbix'@'localhost' IDENTIFIED BY 'SECRET_PASSWORD';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
  • 관련 패키지 설치
# yum install net-snmp-devel curl-devel fping 2fsprogs-devel zlib-devel libgssapi-devel krd5-devel openssl-devel libidn-devel iksemel-devel libXpm openssh-clients php-xml php-xmlrpc sharutils net-snmp OpenIPMI-devel libssh2-devel php-bcmath php-gd php-mbstring -y
// 설치 실패 항목 존재시 Zabbix Pre Install Error 발생

Zabbix 설치(Version 2.4)

  • Zabbix 패키지 설치 및 설정
// Zabbix Repo 설치
# rpm -Uvh http://repo.zabbix.com/zabbix/2.4/rhel/7/x86_64/zabbix-release-2.4-1.el7.noarch.rpm

// Zabbix Server 설치
# yum install zabbix zabbix-server zabbix-web zabbix-server-mysqlzabbix-web-mysql zabbix-agent -y

// 환경설정 수정
# /etc/zabbix/zabbix_server.conf
DBName=zabbix
DBUser=zabbix
DBPassword='Database 접근 계정 비밀번호'
StartSNMPTrapper=1
ListenIP='NIC IP Address',127.0.0.1
CacheSize=128M
HistoryCacheSize=128M
TrendCacheSize=64M
HistoryTextCacheSize=128M
Timeout=30
  • DB Schema Insert
// 스키마 생성(DB Table 생성 및 Data 입력)
# mysql -u zabbix -p zabbix < /usr/share/doc/zabbix-server-mysql-2.4.6/create/schema.sql

// 이미지 생성(3.0  버전 이후 zcat create.sql.gz | mysql -u root zabbix)
# mysql -u zabbix -p zabbix < /usr/share/doc/zabbix-server-mysql-2.4.6/create/images.sql

// 데이터 생성
# mysql -u zabbix -p zabbix < /usr/share/doc/zabbix-server-mysql-2.4.6/create/data.sql

Zabbix WEB 설치

  • WEB Document root 변경 : /usr/share/zabbix 디렉토리를 아파치의 기본 경로로 변경 하거나 Document root로 복사
  • 아파치 재시작 후 웹브라우저로 해당 웨서버 접속
  • 설치 과정 진행(캡쳐 화면은 2.2 버전을 활용한 것으로 실제와 차이가 다소 있습니다.)
정상 접속 상태 Next 이동
Required를 모두 충족 하면 OK상태 Fail이 하나라도 있으면 진행안됨
Required를 참고 하여 모두 적용 후 Next 이동
Database 정보 입력 모두 입력 후(MySQL 또는 MariaDB 선택, 기본 포트 미변경시 0 유지)
Test connection에 성공 하면 Next 이동
Host의 localhost 또는 IP 및 Port Num 확인 후 Next 이동
설정 확인 후 Next 이동
Fail 발생시 /usr/share/zabbix/conf/zabbix.conf.php.example 파일을 Document root 의 conf/zabbix.conf.php로 복사
Retry 재시도
OK 상태 확인 후 Finish 이동
// zabbix-server 등록
# systemctl enable zabbix-server

// zabbix-server 시작
# systemctl start zabbix-server
※시작 오류 발생시 yum update trousers
Zabbix WEB 로그인 후 정상 페이징 상태 확인(admin/zabbix)

Zabbix-agent 환경 설정

  • 설정 및 서비스 재시작
# /etc/zabbix/zabbix_agentd.conf 수정
Server=127.0.0.1          # 로컬호스트가 아닌 경우 실제 IP 입력
Hostname=hostname         # 호스트네임 적용
# ServerActive=127.0.0.1  # 주석처리

// zabbix-agent 등록
# systemctl enable zabbix-agent

// zabbix-agent 시작
# systemctl start zabbix-agent
  • Zabbix 관리 페이지에서 Hosts에 agent를 추가하여 모니터링 시작

Zabbix Maps 예시

Zabbix로 모니터링중인 홈서버 자산 목록을 간단히 그려봤습니다.

L3와 L2, 가운데 Maintree를 제외하고는 모두 VM이지만 리눅스와 윈도우 모두 Zabbix로 모니터링 하는데는 크게 지장이 없습니다.

에이전트도 가벼운 편이어서 크게 부담은 없지만 서버를 수백대 이상 운영하는 환경에서는 Zabbix 서버 자체에 부하가 걸릴 가능성이 크고 수많은 이벤트로 인해 DB의 사용량이 상당히 커질 것이므로 DBMS의 적절한 저장 공간 할당 및 이벤트 삭제 스케쥴을 고려해야 할 것입니다.