Zabbix Server Install Manual (자빅스 서버 설치 매뉴얼)
Zabbix
- 네트워크나 서버(가상)등을 포함한 서비스들을 감시하고 실시간으로 자원을 체크하여 관리자에게 신속히 알리기위한 네트워크 관리 솔루션 소프트웨어 입니다.
- zabbix 에이전트를 Unix, Linux, Windows 등의 OS에 설치하여 CPU,MEM,파일시스템(용량),특정 TCP 등을 포함한 많은 정보를 포함하여 감시를 할수 있으며 장애대비 모니터링으로써도 탁월합니다.
설치환경
- OS: CentOS 7 64bit 1708
- Kernel: 3.10
- Zabbix: 3.4
- mariadb: 5.5.56
- php: 5.4.16
- Zabbix-server-mysql: 3.4.5
- zabbix-web-mysql.noarch: 3.4.5
Zabbix 설치
Zabbix Server
Yum 설치를 위한 EPEL 저장소 추가
# yum install epel-release -y
Installed:
epel-release.noarch 0:7-9
Complete!
Zabbix Package 설치
# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm
Updating / installing...
1:zabbix-release-3.4-1.el7 ################################# [100%]############### webtest11.com End #################
[Zabbix-DB, Zabbix-Web / DB(mariadb) / WEB(Apache) / PHP] yum 으로 한번에 설치
# yum -y install zabbix-server-mysql zabbix-web-mysql mysql mariadb-server httpd php
DB 실행 및 설정
DB 실행 및 프로세스 확인
# systemctl start mariadb
# systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
# ps -ef | grep mysql
mysql 11918 1 0 12:09 ? 00:00:00 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
mysql 12080 11918 1 12:-0 ? 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 12134 11523 0 12:09 tty1 00:00:00 grep --color=auto mysql
기본설정 (DB 구동된 상태)
# mysql_secure_installation
Enter current password for root (enter for none): (패스워드 입력)
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
DB 접속 및 설정
# mysql -u root -p
Enter password: (패스워드 입력)
MariaDB [(none)]> create database zabbix_server;
MariaDB [(none)]> grant all privileges on zabbix_server.* to zabbix@localhost identified by 'ironman';
MariaDB [(none)]> create database zabbix_proxy;
MariaDB [(none)]> grant all privileges on zabbix_proxy.* to zabbix@localhost identified by 'ironman';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;
Zabbix 테이블값 정보 데이터베이스에 적용
# cd /usr/share/doc/zabbix-server-mysql-3.4.5
# gunzip create.sql.gz
# ls
AUTHORS COPYING ChangeLog NEWS README create.sql (해당파일)
# mysql -u root -p zbx_server < create.sql
Enter password: (DB ROOT 패스워드 입력)
Zabbix Proxy
# cd /usr/share/doc/zabbix-proxy-mysql-3.4.6
# gunzip schema.sql.gz
# ls
AUTHORS COPYING ChangeLog NEWS README schema.sql (해당파일)
# mysql -u root -p zbx_proxy < schema.sql
Enter password: (DB ROOT 패스워드 입력)
Config 설정
Zabix Config 설정
# vi /etc/zabbix/zabbix_server.conf
(맨 아래 추가)
DBHost=localhost
DBName=zabbix_server
DBUser=zabbix
DBPassword=ironman
:wq (저장)
Zabbix Proxy
# vi /etc/zabbix/zabbix_proxy.conf
(맨 아래 추가)
# 0 - active mode
# 1 - passive mode
ProxyMode=0
Server=[서버 아이피 입력]
Hostname=[원하는 호스트명 입력 예) Zabbix proxy]
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=ironman
PHP Config 설정
# vi /etc/php.ini
max_execution_time = 600
max_input_time = 600
memory_limit = 256M
post_max_size = 32M
upload_max_filesize = 16M
date.timezone = Asia/Seoul (앞에 ; 주석제거후 한국시간으로 설정)
:wq (저장)
iptables 방화벽 포트 허용 및 재시작
# CentOS 7
firewall-cmd --permanent --add-port=10050/tcp
firewall-cmd --permanent --add-port=10051/tcp
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload
systemctl restart firewalld
# CentOS 6
vi /etc/sysconfig/iptables
# Zabbix Agent Port
-A INPUT -p tcp -m tcp --dport 10050 -j ACCEPT
# Zabbix Server Port
-A INPUT -p tcp -m tcp --dport 10051 -j ACCEPT
# Zabbix Web Port
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
# 포트 변경시 그에 맞춰 변경
service iptables restart
Apache & Zabbix 서버 구동
Apache Server 구동 및 재부팅시 자동시작 처리
#systemctl start httpd
#systemctl enable httpd
Zabbix Server 구동 및 재부팅시 자동시작 처리
#systemctl start zabbix-server
#systemctl enable zabbix-server
Zabbix 서버 웹으로 접속
- http://localhost/zabbix
- 하단의 설정 DB설정/server details 설정 후
- 관리자 페이지 로그인(admin/zabbix)
- VM일경우 ifconfig를 통해 inet 주소/zabbix, 연결이 안될경우 NAT 혹은 BRIDGE 방식 등의 관련하여 VM에서 웹서버 접속하는 법 찾기
Configure DB connection
- 웹 관리자 페이지의 DB 설정을 위의 mariaDB에서 zabbix-server 설정한 것과 동일하게 설정
- Database type: MySQL
- Database host: localhost
- Database port: 0
- Database name: zabbix_server
- User: zabbix
- Password: ironman
Zabbix server details
- Host: localhost
- Port: 10051
- Name: (웹 페이지 접속시 보여주고 싶은 메인페이지 명)
Trouble Shooting
아파치 80 Port 막혀서 웹페이지 안 뜰 경우
# 80 포트 방화벽 추가 확인
# 방화벽 확인
netstat -nlp | grep 80
# iptables 등록 확인
iptables -nL | grep 80
# 등록되어있을 경우 포트 변경
vi /etc/httpd/con/httpd.conf
Listen 다른 포트
# 다른 포트 방화벽 등록
위의 방화벽 포트 허용 및 재시작 부분 참고
SElinux
# SElinux 해제
vi /etc/sysconfig/selinux
SELINUX=disabled
reboot
# reboot 해도 SElinux 활성화 되어있을 경우
vi /etc/grub.conf
kernel ..., selinux=0 # 맨뒤에 selinux=0 추가
# SElinux 활성화 된 상태에서 등록
vi /etc/zabbix/zabbix_agent_t.te
# 아래 내용 신규 생성된 파일에 추가 후 저장/종료 (:wq)
module local-zabbix 1.0;
require {
type zabbix_agent_t;
class process setrlimit;
}
#============= zabbix_agent_t ==============
allow zabbix_agent_t self:process setrlimit;
:wq
semanage permissive -a zabbix_agent_t