시작 전
- 목적 : EC2로 Zabbix Server와 Agent를 생성하여 연동하고 모니터링 환경을 구축한다.
- 실습은 EC2 Instance로 CentOS 8 에서 진행했다.
- EC2 생성 이전 인프라 구성은 AWS EC2 접속환경 구축을 참조한다.
- Zabbix Server & Agent를 위한 최소한의 환경에서 실습했다.
Zabbix란 ?
- 수많은 종류의 네트워크 서비스, 서버 등의 네트워크 하드웨어를 감시하고 추적하여 관리자에게 장애 발생을 신속히 알리기 위해 만들어진 네트워크 모니터링 시스템
모니터링 방식
- Zabbix Server가 Agent를 모니터링 하는 방식은 두가지가 있다.
- Passive
- Server가 Agent에 접근하여 모니터링하는 방식 (TCP/10051)
- Item 구성 시 Zabbix Agent (active)를 선택하여 사용
- Active
- Agent가 보낸 정보를 Server가 받아 모니터링하는 방식 (TCP/10050)
- Item 구성 시 Zabbix Agent를 선택하여 사용
- Passive
- 1번의 경우 Public IP가 없으면 Agent에 접근하기 어렵기 때문에 Cloud 환경을 고려하여 Active 방식으로 Zabbix 환경을 구성한다.
- Zabbix Server가 Agent를 모니터링 하는 방식은 두가지가 있다.
EC2 인스턴스 생성
공통 설정
모든 작업은 root 계정으로 진행
- Host Name 변경
- HostName 각각 server, agent
- TimeZone 설정
mv /etc/localtime /etc/localtime.ori ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime
- init 6 명령을 통해 재부팅하면 아래 그림과 같이 깔끔하게 식별할 수 있다.
- 재부팅시에 자동으로 연결되는 것이 아닌, 수동으로 세션을 재연결 해야한다.
- SELINUX 비활성화
- CetnOS의 Selinux를 끄지않으면 다양한 오류가 생기기 때문에 끄고 실습한다.
- 비활성화 : vi /etc/selinux/config 명령을 통해 다음 사진과 같이 변경
- net-tools 설치
- ifconfig, netstat 등의 명령어가 포함된 네트워크 관리 패키지
yum -y install net-tools
- ifconfig, netstat 등의 명령어가 포함된 네트워크 관리 패키지
- 방화벽 설치
yum -y install firewalld systemctl start firewalld (데몬 시작) systemctl enable firewalld (재부팅시 자동 시작)
- Host Name 변경
Zabbix Server 환경 구성
패키지 및 구성요소 준비
- HTTP, DB 패키지 설치
- httpd : apache 서버를 구동하기 위한 패키지 mariadb : mariaDB를 사용하기 위한 패키지
yum -y install httpd mariadb mariadb-devel mariadb-server
- httpd : apache 서버를 구동하기 위한 패키지 mariadb : mariaDB를 사용하기 위한 패키지
- Zabbix 설치를 위한 Yum Repo 추가
rpm -ivh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm
- Zabbix 설치
yum clean all yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-agent
- HTTP/DB구동 및 프로세스 확인
systemctl start mariadb systemctl start httpd #(서비스 구동) systemctl enable mariadb systemctl enable httpd #(부팅시 자동 시작) ps -ef | grep mysql ps -ef | grep httpd #(프로세스 상태 확인)
- 방화벽 포트 허용
firewall-cmd --zone=public --add-port=80/tcp --permanent firewall-cmd --zone=public --add-port=10051/tcp --permanent firewall-cmd --zone=public --add-port=10050/tcp --permanent firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload
- HTTP, DB 패키지 설치
DB 설정
- MariaDB 기본 설정
[root@localhost ~]# mysql_secure_installation Enter current password for root (enter for none): [패스워드가 없기 때문에 엔터] Set root password? [Y/n] Y [DB ROOT 패스워드 설정] New password: 패스워드 입력 Re-enter new password: 패스워드 재입력 Remove anonymous users? [Y/n] Y [익명 접근을 막을 것인지? Y 엔터] Disallow root login remotely? [Y/n] Y [DB ROOT 원격을 막을 것인지? Y 엔터] Remove test database and access to it? [Y/n] Y [Test 데이터베이스를 삭제할 것인가? Y 엔터] Reload privilege tables now? [Y/n] Y [현재 설정 값을 적용할지? Y 엔터] Thanks for using MariaDB! [완료]
- MariaDB 접속 및 Zabbix DB 생성
- mysql -u root -p → 방금 변경한 암호입력
- Zabbix 데이터베이스 생성
- Zabbix 테이블 값 정보를 데이터베이스에 적용
- Zabbix Config 설정 [수정 후 저장]
[root@localhost ~]# vi /etc/zabbix/zabbix_server.conf 38 LogFile=/var/log/zabbix/zabbix_server.log [기본 설정] 72 PidFile=/var/run/zabbix/zabbix_server.pid [기본 설정] 82 SocketDir=/var/run/zabbix [기본 설정] 91 DBHost=localhost [주석 제거] 100 DBName=zabbix [DB 생성 이름과 동일하게 설정] 116 DBUser=centos [DB 유저 생성 이름과 동일하게 설정] 124 DBPassword=test123 [주석 제거 후 DB 유저 패스워드와 동일하게 설정]
- Zabbix PHP-FPM Config 설정 [수정 후 저장]
[root@localhost zabbix-server-mysql]# vi /etc/php-fpm.d/zabbix.conf 24 php_value[date.timezone] = Asia/Seoul [주석(;) 제거 후 한국 시간으로 수정]
- MariaDB 기본 설정
Zabbix Server 실행
systemctl start zabbix-server zabbix-agent php-fpm (데몬 실행) systemctl enable zabbix-server zabbix-agent php-fpm (재부팅 자동 시작) zabbix-server 데몬실행이 실패하면 enable 까지 명령어를 넣어준 후 재부팅 후 자동 실행 확인
Zabbix 구동 확인
Zabbix Web 설치 페이지 접속
- [http://[서버IP or 호스트네임]/zabbix 경로로 접속 → Next step
- 기본 설정 되어 있으므로 Next step
- DB 세팅 정보에 맞게 설정후 Next step
- 최종 확인 및 설치 완료
- 초기값인 Admin / zabbix를 입력하여 로그인한다.
- 메인 대시보드에 접속 할 수 있다.
기본 설정
- [Administration → Users → Admin 계정 클릭]
- [모니터링 → 호스트]의 Zabbix server의 상태에 초록불이 들어오면 서버 환경 구성 완료
Uploaded by Notion2Tistory v1.1.0