본문으로 바로가기

ZABBIX 설치하는 방법

category ZABBIX 2019. 3. 12. 15:13

◆ [설치환경]


■ 릴리즈 설치 테스트 : 2017년 4월 07일


□ CentOS 7 64bit [ 제가 포스팅한 설치이후 환경에서 작업 ]

□ Kernel 4.10.X ↑ [ 해당서버는 최신 커널을 이용합니다. 기존커널에서 작업하셔도 됩니다. ]

□ 일부 설정이나 경로가 다를 수 있습니다. 실서버가 아닌 VMware 환경에서 작업이 이루어 집니다.

□ Zabbix 3.2.X ↑ YUM설치 버전입니다.


ZABBIX란?


간단하게 말하면 네트워크나 서버(가상)등을 포함한 서비스들을 감시하고 실시간으로 자원을 체크하여 관리자에게 신속히 알리기위한 네트워크 관리 솔루션 소프트웨어 입니다. zabbix 에이전트를 Unix, Linux, Windows 등의 OS에 설치하여 CPU,MEM,파일시스템(용량),특정 TCP 등을 포함한 많은 정보를 포함하여 감시를 할수 있으며 장애대비 모니터링으로써도 탁월합니다.


해외 소프트웨어이긴하지만 무료 모니터링 오픈소스이며 무료라고 해서 기능이 제한적이거나 하지 않습니다. 거의 우리나라 상용 모니터링 솔루션과 비교해도 될만큼 그 기능이 다양하며 접근성이 용이합니다. 필요하다면 솔루션업체에 상담 및 일정 비용을 지불하여 원격지원을 받을수도 있습니다. (회화 가능시..)


■ Zabbix 3.2 설치


1. Yum 설치를 위해 EPEL 저장소 추가

BASH

[root@localhost ~]# yum install epel-release -y

.

.

Installed: epel-release.noarch 0:7-9 Complete!


[root@localhost ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm

Updating / installing... 1:zabbix-release-3.2-1.el7 ################################# [100%]############### webtest11.com End #################

[참고]


■ URL : http://repo.zabbix.com/zabbix

접속을 하면 버전별로 파일이 업로드가 되어있습니다. 설치할려는 버전에 맞게 RPM 정보를 가져오면 됩니다.




2. [ Zabbix / DB(MariaDB) / WEB(Apache) / PHP ] YUM 으로 한번에 설치

BASH

[root@localhost ~]# yum -y install zabbix-server-mysql zabbix-web-mysql mysql mariadb-server httpd php

.

.

Installed: httpd.x86_64 0:2.4.6-45.el7.centos mariadb.x86_64 1:5.5.52-1.el7 mariadb-server.x86_64 1:5.5.52-1.el7 php.x86_64 0:5.4.16-42.el7 zabbix-server-mysql.x86_64 0:3.2.4-2.el7 zabbix-web-mysql.noarch 0:3.2.4-2.el7 ( 각 설치 버전 참고 )

Dependency Installed: OpenIPMI-libs.x86_64 0:2.0.19-15.el7 OpenIPMI-modalias.x86_64 0:2.0.19-15.el7 dejavu-fonts-common.noarch 0:2.33-6.el7 dejavu-sans-fonts.noarch 0:2.33-6.el7 fping.x86_64 0:3.10-4.el7 httpd-tools.x86_64 0:2.4.6-45.el7.centos iksemel.x86_64 0:1.4-6.el7 libXpm.x86_64 0:3.5.11-3.el7 libtool-ltdl.x86_64 0:2.4.2-21.el7_2 libxslt.x86_64 0:1.1.28-5.el7 libzip.x86_64 0:0.10.1-8.el7 mailcap.noarch 0:2.1.41-2.el7 net-snmp-libs.x86_64 1:5.7.2-24.el7_2.1 perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.el7 perl-Compress-Raw-Zlib.x86_64 1:2.061-4.el7 perl-DBD-MySQL.x86_64 0:4.023-5.el7 perl-DBI.x86_64 0:1.627-4.el7 perl-IO-Compress.noarch 0:2.061-2.el7 perl-Net-Daemon.noarch 0:0.48-5.el7 perl-PlRPC.noarch 0:0.2020-14.el7 php-bcmath.x86_64 0:5.4.16-42.el7 php-cli.x86_64 0:5.4.16-42.el7 php-common.x86_64 0:5.4.16-42.el7 php-gd.x86_64 0:5.4.16-42.el7 php-ldap.x86_64 0:5.4.16-42.el7 php-mbstring.x86_64 0:5.4.16-42.el7 php-mysql.x86_64 0:5.4.16-42.el7 php-pdo.x86_64 0:5.4.16-42.el7 php-xml.x86_64 0:5.4.16-42.el7 t1lib.x86_64 0:5.1.2-14.el7 unixODBC.x86_64 0:2.3.1-11.el7 zabbix-web.noarch 0:3.2.4-2.el7 Complete!


3. DB(MariaDB) 실행 및 설정


□ DB 실행 및 프로세스 확인

BASH

[root@localhost ~]# systemctl start mariadb

[root@localhost ~]# systemctl enable mariadb

Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.


[root@localhost ~]# ps -ef |grep mysql

mysql 12650 1 0 11:34 ? 00:00:00 /bin/sh /usr/bin/mysqld_safe --basedir=/usr mysql 12809 12650 1 11:34 ? 00:00:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock

root 12861 12260 0 11:34 pts/0 00:00:00 grep --color=auto mysql

□ 기본설정 (DB가 구동된 상태에서 진행가능)

BASH

[root@localhost ~]# mysql_secure_installation


NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MariaDB to secure it, we'll need the current password for the root user. If you've just installed MariaDB, and you haven't set the root password yet, the password will be blank, so you should just press enter here. Enter current password for root (enter for none): 패스워드가 없기때문에 엔터


OK, successfully used password, moving on... Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation. Set root password? [Y/n] Y (DB ROOT 패스워드 설정) New password: 패스워드입력 Re-enter new password: 재확인 패스워드입력 Password updated successfully! Reloading privilege tables.. ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] Y (익명의 접근을 막을것인지? 보안을 위해 Y 엔터) ... Success! Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] Y (DB ROOT 원격을 막을것인지? 보안을 위해 Y 엔터)

... Success! By default, MariaDB comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Y/n] Y (Test 용으로 생성된 데이터베이스를 삭제할것인가? Y 엔터)

- Dropping test database... ... Success! - Removing privileges on test database... ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately.


Reload privilege tables now? [Y/n] Y (현재 설정한 값을 적용할것인지? 당연히 Y 엔터)

... Success! Cleaning up... All done! If you've completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB! (끝)

□ DB접속 및 설정

BASH

[root@localhost ~]# mysql -u root -p Enter password: 패스워드 입력


Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 10 Server version: 5.5.52-MariaDB MariaDB Server Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> create database ZABBIXDB; (데이터베이스 생성) Query OK, 1 row affected (0.01 sec) MariaDB [(none)]> grant all privileges on ZABBIXDB.* to zabbix@localhost identified by 'test123'; Query OK, 0 rows affected (0.00 sec) ( grant all privileges on (데이터베이스이름).* to (DB유저)@localhost identified by '(패스워드)'; )

MariaDB [(none)]> flush privileges; (적용) Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> exit Bye

□ Zabbix 테이블값 정보 데이터베이스에 적용

BASH

[root@localhost ~]# cd /usr/share/doc/zabbix-server-mysql-3.2.4/ (경로이동)


[root@zabbix zabbix-server-mysql-3.2.4]# gunzip create.sql.gz (압축해제)


[root@zabbix zabbix-server-mysql-3.2.4]# ls

AUTHORS COPYING ChangeLog NEWS README create.sql (해당파일)


[root@zabbix zabbix-server-mysql-3.2.4]# mysql -u root -p ZABBIXDB < create.sql (ZABBIXDB 데이터베이스에 복원) Enter password: DB ROOT 패스워드 입력


4. Zabbix Config 설정

BASH

[root@localhost ~]# vi /etc/zabbix/zabbix_server.conf

.

.

# Mandatory: no # Default: # TLSKeyFile= (맨 아래 라인에 추가)

DBHost=localhost DBName=ZABBIXDB DBUser=zabbix DBPassword=test123


:wq (저장)


5. PHP Config 설정

BASH

[root@localhost ~]# vi /etc/php.ini

(라인위치는 다를수 있습니다.)


384 max_execution_time = 600 (30 → 600)


394 max_input_time = 600 (60 → 600)


405 memory_limit = 256M (128M → 256M)


672 post_max_size = 32M (8M → 32M)


800 upload_max_filesize = 16M (2M → 16M)


878 date.timezone = Asia/Seoul (앞에 ; 주석제거후 한국시간으로 설정)


:wq (저장)


6. iptables 방화벽 포트 허용 및 재시작

BASH

[root@localhost ~]# vi /etc/sysconfig/iptables


# sample configuration for iptables service # you can edit this manually or use system-config-firewall # please do not ask us to add additional ports/services to this default configuration *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT (web 포트) -A INPUT -p tcp -m state --state NEW -m tcp --dport 10050 -j ACCEPT (zabbix server 포트) -A INPUT -p tcp -m state --state NEW -m tcp --dport 10051 -j ACCEPT (zabbix agent 포트) -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT


:wq (저장)

BASH

[root@localhost ~]# service iptables restart (재시작)

Redirecting to /bin/systemctl restart iptables.service


[root@localhost ~]# iptables -nL (아래와 같이 올라온다면 정상)

ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:10050 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:10051


7. Zabbix Server 및 HTTPD 서비스 시작

BASH

[root@localhost ~]# systemctl start zabbix-server

[root@localhost ~]# systemctl enable zabbix-server

Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to /usr/lib/systemd/system/zabbix-server.service.


[root@localhost ~]# systemctl start httpd

[root@localhost ~]# systemctl enable httpd

Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.



[root@localhost ~]# ps -ef |grep zabbix (Zabbix 프로세스 확인) zabbix 13279 1 0 14:13 ? 00:00:00 /usr/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf zabbix 13284 13279 0 14:13 ? 00:00:00 /usr/sbin/zabbix_server: configuration syncer [synced configuration in 0.012066 sec, idle 60 sec] zabbix 13285 13279 0 14:13 ? 00:00:00 /usr/sbin/zabbix_server: db watchdog [synced alerts config in 0.001636 sec, idle 60 sec] zabbix 13286 13279 0 14:13 ? 00:00:00 /usr/sbin/zabbix_server: poller #1 [got 0 values in 0.000004 sec, idle 5 sec] zabbix 13287 13279 0 14:13 ? 00:00:00 /usr/sbin/zabbix_server: poller #2 [got 0 values in 0.000005 sec, idle 5 sec] zabbix 13288 13279 0 14:13 ? 00:00:00 /usr/sbin/zabbix_server: poller #3 [got 0 values in 0.000004 sec, idle 5 sec] zabbix 13289 13279 0 14:13 ? 00:00:00 /usr/sbin/zabbix_server: poller #4 [got 0 values in 0.000005 sec, idle 5 sec] zabbix 13293 13279 0 14:13 ? 00:00:00 /usr/sbin/zabbix_server: poller #5 [got 0 values in 0.000004 sec, idle 5 sec]

.

.

[root@localhost ~]# ps -ef |grep httpd (WEB 프로세스 확인) root 13358 1 0 14:13 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 13360 13358 0 14:14 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 13361 13358 0 14:14 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 13362 13358 0 14:14 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 13363 13358 0 14:14 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 13364 13358 0 14:14 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND

[참고]


■ Zabbix (httpd.conf) 설정 파일은 해당 경로에 있습니다. 

[root@localhost ~]# /etc/httpd/conf.d/zabbix.conf


■ 실제 데이터 경로
[root@localhost ~]# /usr/share/zabbix



8. Zabbix Web 설치 페이지 접속


□ 본인 PC에서 [ URL : http://192.168.223.131/zabbix ]  접속을 합니다.


□ 미리 셋팅을 다했기 때문에 바로 NEXT


□ DB 셋팅정보에 맞게 설정후 NEXT


□ 이름설정후 NEXT


□ 최종 확인후 NEXT


□  설치완료


□ 설치후 처음 웹 관리자 로그인 페이지 접속정보는 [ ID : admin / Pass : zabbix ] 입니다.


□ 웹관리자 한글 언어 설정


□ 한글이 적용된 관리자페이지



YUM 설치로만 진행했기때문에 그대로 진행한다면 쉽게 모니터링 서버를 하나 뚝딱 만들수 있습니다.

에이전트까지 등록하는 방법은 시간나는대로 바로 업데이트 하겠습니다.


이후 여러가지 설정이나 감시설정을 하는 방법을 차례대로 포스팅하도록 하겠습니다.

지적 및 오타 정보공유 감사합니다.