Linux 관제 솔루션 Zabbix 설치

관제 솔루션/Zabbix 2015. 10. 30. 13:48
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

Linux 관제 솔루션 Zabbix 설치 



1.1  Linux 운영 체제 SETUP

http://www.centos.org/

URL 주소에 접속하여 다운로드/설치한다. 현재 Cent-OS 5.8 버전을 기준으로 설치한다.

 

1.2  Cent-OS 5.8 설치

1. Cent-OS 5.8 설치 CD를 넣고, 컴퓨터를 Booting 한다

2. 설치 시작 선택 화면에서 Enter Key를 입력해서 설치를 시작한다

3. Choose a Language 화면에서 korean 을 선택 후 OK 선택한다

 3.1 Language Unavailable 화면에서 OK 선택한다

4. Keyboard Type 화면에서 us를 선택 후 OK를 선택한다

5. Installation Method 화면에서 Local CDROM 선택 후 OK 선택한다

6. CD Found 화면에서 SKIP 선택한다

7. CentOS Window 설치 화면에서 다음 선택한다

8. 설치 방법 선택 Window에서 CentOS설치(I)를 선택 후 다음

9. 파티션 설정에서 선택한 드라이브 상의 모든 파티션을 삭제하고 디폴트 레이아웃을 만듭니다 선택 후 다음(또는 사용자가 직접 파티션 정보를 설정할 수 있다)

10. 네트워크 설정 Window에서 eth0 선택 후 편집

10.1 네트워크 정보 입력 Window에서 IP Address, Subnet Mask를 입력 후 확인

10.2 호스트네임은 Default 값 그래로 유지, 게이트웨이/DSN 입력 후 다음

11. 시간 선택 Window에서 아시아/서울 선택 후 다음

12. ROOT 비밀번호 입력 Window에서 비밀번호 입력 후 다음

13. 설치 Software 설정 Window에서 Desktop-Gnome 항목은 UNCHECK, Server 항목은 CHECK

 13.1 지금 사용자 설정(C) 선택 후 다음

14. 사용자 Software 설정 Winddow에서

 14.1 개발 메인 항목에서 개발용 도구, 개발용 라이브러리, 레거시 소프트웨어 개발 항목 CHECK

 14.2 기반 시스템 메인 항목에서 전화연결 네트워크 자원 항목 UNCHECK

 14.3 서버 메인 항목에서 FTP 서버, 네트워크 서버, 레거시 네트워크 서버, 메일 서버 항목은 CHECK, 나머지 항목은 UNCHECK

 14.4 타 기타 메인 항목(가상화, 데스크탑 환경) UNCHECK 다음

15. 설치 확인 Window에서 다음

16. Cent-OS 5.8 설치 시작

17. Reboot 확인 Window에서 CD 제거 후 재부팅 à System Reboot

 

1.3  Linux 운영 체제 UPDATE

 업데이트 목록 보기
 yum list updates 

 
업데이트 목록의 다운로드 및 업데이트 설치
 yum update

 

2.1  Zabbix Source 정보

홈페이지 : http://www.zabbix.com

다운로드 URL :
http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/2.0.3/zabbix-2.0.3.tar.gz/download

 

2.2  MySQL 설치

groupadd mysql

useradd -r -g mysql mysql

 

wget

http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.20.tar.gz/from/http://mirror.khlug.org/mysql/

tar xvzf mysql-5.5.20.tar.gz

cd ./mysql-5.5.20

cmake   -DCMAKE_INSTALL_PREFIX=/usr/local/mysql

-DDEFAULT_CHARSET=euckr

-DDEFAULT_COLLATION=euckr_korean_ci

-DWITH_EXTRA_CHARSETS=all

-DMYSQL_DATADIR=/usr/local/mysql/data

-DENABLED_LOCAL_INFILE=1

-DWITH_INNOBASE_STORAGE_ENGINE=1

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock

 

make

make install

cd  /usr/local/mysql

./ scripts/mysql_install_db  --user=mysql

chown -Rc mysql:mysql  ./ data

cp ./support-files/my-medium.cnf/  /etc/my.cnf

cp ./support-files/mysql.server  /etc/init.d/mysqld

service  mysqld  start(stop)

 

mysql 실행, 접속 후 database 생성

             create database [DB ];

 

* 준비 된 테이블 스키마 sql 파일을 적용  mysql u [사용자 ID] p[사용자 PASSWORD] [DB]  < [파일명].sql

 

* 한글 깨짐 현상 시  /etc/my.cnf 파일을 vi 로 실행하여 각 부분에 추가

[mysql]
default-character-set = euckr

[client]
default-character-set = euckr 

[mysqld]
character-set-client-handshake=FALSE
init_connect="SET collation_connection = euckr_korean_ci"
init_connect="SET NAMES euckr"
character-set-server = euckr
collation-server = euckr_korean_ci

[mysqldump]
default-character-set = euckr 

 

2.3  Http php 설치

아래와 같이 yum을 사용하여 http + php 를 설치한다

[root@mail]# yum install httpd

[root@mail]# yum install php

[root@mail]# yum install -y gd php-gd php-bcmath php-xml php-mbstring

[root@mail]# yum install php-mysql

 

2.4 Zabbix  설치

아래와 같이 zabbix user를 생성 후 zabbix server를 설치한다

[root@mail]# groupadd zabbix

[root@mail]# wget http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/2.0.0/zabbix-2.0.0.tar.gz/download

[root@mail]# tar xvfz zabbix-2.0.0.tar.gz

[root@mail]# cd zabbix-2.0.0

[root@zabbix-2.0.0]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl

[root@zabbix-2.0.0]# make

[root@ zabbix-2.0.0]# make install

--with-net-snmp 옵션은 Net-SNMP 모듈이 설치되어 있어야 한다. 만일 SNMP 프로토콜 기반 정보를 수집할 경우가 없다면, 이 옵션을 제거 후 configure 명령을 실행한다.

 

우선 Zabbix 데이터베이스와 데이터베이스 사용자를 아래와 같이 설정한다. 단 아래 명령어는 MySQL 데이터베이스 서버에 접속하여 아래와 같이 zabbix 데이터베이스에 zabbix라는 사용자를 추가한다.(비밀번호도 zabbix)

create database zabbix;

grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';

flush privileges;

 

아래와 같이 데이터베이스(MySQL) Http 파일을 복사한다.(이때 경로는 위에 명령을 실행한 경로 그대로 이다. , zabbix 소스를 압축해서 컴파일 한, zabbix-2.0.0 디렉토리에서 실행한다). 만일 mysql 명령어를 익식하지 못하면 전체 경로로 변경한다. , /usr/local/mysql/bin/mysql 로 변경한다.

[root@mail]# mysql -uzabbix -pzabbix zabbix < ./database/mysql/schema.sql

[root@mail]# mysql -uzabbix -pzabbix zabbix < ./database/mysql/images.sql

[root@mail]# mysql -uzabbix -pzabbix zabbix < ./database/mysql/data.sql

[root@mail]# cp -r ./frontends/php/* /var/www/

 

이때 php.ini 환경을 설정해야 하며 그에 대한 세부 설정은 www.zabbix.com 사이트를 참조하시기 바랍니다. (http://www.zabbix.com/documentation/2.0/manual/installation/install)

 

2.5 Zabbix 설치 설정

-      Zabbix Agent 설치 정보는 다음과 같다.

-      [root@master zabbix]# pwd

-      /usr/local/zabbix

-      [root@master zabbix]# tree

-      .

-      |-- bin

-      |   |-- zabbix_get

-      |   `-- zabbix_sender

-      |-- etc

-      |   |-- zabbix_agent.conf

-      |   |-- zabbix_agent.conf.d

-      |   |-- zabbix_agentd.conf

-      |   |-- zabbix_agentd.conf.d

-      |   |-- zabbix_server.conf

-      |   `-- zabbix_server.conf.d

-      |-- sbin

-      |   |-- zabbix_agent

-      |   |-- zabbix_agentd

-      |   `-- zabbix_server

-      `-- share

-          |-- man

-          |   |-- man1

-          |   |   |-- zabbix_get.1

-          |   |   `-- zabbix_sender.1

-          |   `-- man8

-          |       |-- zabbix_agentd.8

-          |       `-- zabbix_server.8

-          `-- zabbix

-              |-- alertscripts

-              `-- externalscripts

-       

-      13 directories, 12 files

-      [root@master zabbix]#

위 그림과 같이 Zabbix Server /usr/local/zabbix 라는 디렉토리에 설치되며, 환경 설정은 /usr/local/zabbix/etc 디렉토리에, 실행 파일은 /usr/local/zabbix/sbin 디렉토리에 위치한다.

 

2.6  Zabbix  Server 실행

-      Zabbix_server 실행/종료 Script.

 

#!/bin/sh

# Donated code that was put under PD license.

#

 

umask 022

 

CAT="/bin/cat"

KILL="/bin/kill"

 

SU_USER="zabbix"

ZABBIX_SERVER="/usr/local/zabbix/sbin/zabbix_server"

PIDFILE="/tmp/zabbix_server.pid"

 

 

stop_service() {

        echo "1"

    if [  -r $PIDFILE  -a  ! -z ${PIDFILE}  ]; then

        PID=`${CAT} ${PIDFILE}`

    fi

        echo "2"

    if [  ${PID:=0} -gt 1 -a  ! "X$PID" = "X "  ]; then

        ${KILL} ${PID}

    else

        echo "Unable to read PID file $PIDFILE"

    fi

}

 

start_service() {

    # XXX We really should check if the service is already going, but

    # XXX we will opt out at this time.

 

    # Start zabbix_server

    echo "starting $ZABBIX_SERVER... \c"         ;

    su ${SU_USER} -c ${ZABBIX_SERVER}

 

    zabbix_rc=$?

    if [ $zabbix_rc -ne 0 ]; then

        echo "$0: Error ${zabbix_rc} starting ${ZABBIX_SERVER}... bailing."

        exit $zabbix_rc

    fi

    echo done.

}

 

case $1 in

 

'start')

    start_service

    ;;

 

'stop')

    stop_service

    ;;

 

'restart')

    stop_service

    /bin/sleep 5 && \

    start_service

    ;;

 

*)

    echo "$0:  usage:  $0 {start|stop|restart}"

    ;;

esac

 

 

 

 

3.1 웹 기반 환경 설정

Zabbix 서버를 설치 이후, http://192.168.30.39 와 같이 Zabbix 서버가 설치된 서버에 웹 브라우저로 접속해본다. 단 이때 HTTP 프로세서와 zabbix_server 프로세서가 동작하고 있어야 한다.(방화벽에 80포트가 막혀있을지도 모르니, 이 부분도 체크한다)

 

위와 같이 Zabbix 환영 페이지가 나온다. 이때 하단 우측에 있는 Next>> 클린한다.

 

Zabbix 시스템에 필요한 PHP 옵션 정보가 문제없는지 체크한다. 문제가 있다면, 환경에 맞추어 수정 후 Next>> 버튼을 클릭한다.

 

DB(여기서는 MySQL) 연결 정보를 설정 후 Test connection 버튼을 클릭하여, 녹색으로 OK 메시지가 출력되는지 체크한다. 문제가 없으면 Next>> 버튼을 클릭한다.

 

Zabbix 서버 상세 정보를 입력한다. 이 부분은 옵션으로 여기서는 생략한다. 필요한 입력 후 Next>> 버튼을 클릭한다.

 

Zabbix 설치 정보가 출력되는 것을 확인할 수 있다. Next>> 버튼을 클릭한다.

 

Zabbix frontend 설치가 완료됐다는 메시지를 확인할 수 있다. finish 버튼을 클릭한다.

 

위와 같이 Zabbix 서버에 로그인하는 페이지로 이동한다. Default 로그인 정보는 Username : admin, Password : zabbix 이다.

 

위와 같이 Zabbix 서버 UI 화면으로 로그인된 것을 확인할 수 있다.

 

 

4.1  Firewall Configuration

 

Zabbix Agent Active Check Passive Check 2가지 방식을 제공한다. 이에 해당되는 TCP 포트는 10050, 10051이므로, 아래와 같이 Firewall 설정이 필요하다

 

# Zabbix Agent

-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 10050 -j ACCEPT

-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 10051 -j ACCEPT

 

# Http

-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 80 -j ACCEPT

 

 

4.2  기타

 

5.1  Operating System 관련

 

5.2  Zabbix Server 관련

 

5.2.1 libmysqlclient.so : cannot open shared object file

zabbix_server: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory

 

/usr/local/zabbix/zabbix_server 명령으로 zabbix_server 모듈을 실행할 때, 위 에러가 발생하면 mysqlclient.so 파일을 찾을 수 없어 발생하는 오류로 아래와 내용을 체크한다.

1.     Mysql 설치되어 있는지 체크한다.

2.     /etc/ld.so.conf 파일에 mysql library 경로가 포함되어 있는지 체크한다

ld.so.conf
파일에 mysql library 경로를 추가 후, /sbin/ldconfig 명령으로 시스템에 반영해야 한다.

 

 

6.1  install.sh 스크립트 파일

#/bin/sh

#

 

CP="/bin/cp"

MV="/bin/mv"

MKDIR="/bin/mkdir"

TAR=`which tar`

ECHO=`which echo`

RM=`which rm`

INSTALL=`which install`

LN=`which ln`

#USERADD=`which useradd`

USERADD="/usr/sbin/useradd"

GROUPADD="/usr/sbin/groupadd"

CHOWN=`which chown`

CHMOD=`which chmod`

#MYSQL=`which mysql`

MYSQL="/usr/bin/mysql"

YUM=`which yum`

WGET=`which wget`

CRONTAB=`which crontab`

CAT=`which cat`

OS_CNT=`/bin/uname --all | /bin/grep i386 | /usr/bin/wc -l`

#LD_EXEC=`which ldconfig`

LD_EXEC="/sbin/ldconfig"

LD_CONF="/etc/ld.so.conf"

 

 

 

#---- Install MySQL ----#

$ECHO " *** Install MySQL ***"

$TAR xzvf ./mysql-5.1.63.tar.gz

cd ./mysql-5.1.63

$ECHO "Configuring MySQL..."

./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --with-mysqld-user="mysqld" --with-charset=euckr

$ECHO "Making MySQL..."

make

$ECHO "Setup MySQL..."

make install

$ECHO '/usr/local/mysql/lib/mysql' >> /etc/ld.so.conf

/sbin/ldconfig

$CP my.cnf /etc/my.cnf

$INSTALL -m 755 ./support-files/mysql.server /etc/rc.d/init.d/mysqld

$RM -rf /usr/bin/mysql*

$LN -s /usr/local/mysql/bin/* /usr/bin

$LN -s /usr/local/mysql/libexec/mysqld /usr/bin

$LN -s /usr/local/mysql/include/mysql /usr/include/mysql

$USERADD -M -u 3306 -c "mysql server" -s /bin/false -d /usr/local/mysql/data mysqld

$ECHO " ** Create My-SQL database.."

/usr/bin/mysql_install_db

$MKDIR /usr/local/mysql/data

$CHOWN -Rc mysqld:mysqld /usr/local/mysql/data

$ECHO " ** MySQL database installed.."

/etc/init.d/mysqld start

cd ../

$RM -rf ./mysql-5.1.63

$ECHO " *** MySQL started "

 

 

#---- Install http + php ----#

$YUM install -y httpd

$YUM install -y php

$YUM install -y gd php-gd php-bcmath php-xml php-mbstring

$YUM install -y php-mysql

$YUM install -y net-snmp net-snmp-utils net-snmp-devel

 

 

#---- Install zabbix ----#

$GROUPADD zabbix

$USERADD -g zabbix zabbix

$WGET http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/2.0.0/zabbix-2.0.0.tar.gz/download

$TAR xvfz zabbix-2.0.0.tar.gz

cd zabbix-2.0.0

./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl

make

make install

 

 

# ----- Configure zabbix MySQL ------- ##

 

$ECHO " *** Configure MySQL for Zabbix ***"

$MYSQL -uroot < ../init.zabbix.sql

flush privileges;

 

$MYSQL -uzabbix -pzabbix zabbix < ./database/mysql/schema.sql

$MYSQL -uzabbix -pzabbix zabbix < ./database/mysql/images.sql

$MYSQL -uzabbix -pzabbix zabbix < ./database/mysql/data.sql

 

#---- Configure zabbix HTTP Document ----#

$CP -r ./frontends/php/* /var/www/

$CHOWN -Rc apache /var/www

cd ../

$RM ./zabbix-2.0.0

 

$CP ./zabbix_server /etc/init.d/

$CHMOD 755 /etc/init.d/zabbix_server

 

$ECHO " *** EDIT /usr/local/zabbix/etc/zabbix_server.conf ***"

 

$CP ./php.ini /etc/php.ini

$CP ./httpd.conf /etc/httpd/conf/httpd.conf

$ECHO " *** EDIT /etc/httpd/conf/httpd.conf ***"

 

 

#---- Restart Httpd ----#

/etc/init.d/httpd restart

 

'관제 솔루션 > Zabbix' 카테고리의 다른 글

Mobile Zabbix Client - MoZBX  (0) 2015.10.20
Zabbix Server/Client 설치 및 설정 메뉴얼 모음  (0) 2015.10.20