Cloudest - 블로그 이사했습니다
노션으로 블로그를 옮겼습니다.
흥미로운 포스팅이 올라옵니다!
cloudest.oopy.io
🛠
준비물 : Linux 환경(CentOS 8), AWS 계정
시작 전
- 목적 : 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 계정으로 진행
- TimeZone 설정
mv /etc/localtime /etc/localtime.ori ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime
- SELINUX 비활성화
- CetnOS의 Selinux를 끄지않으면 다양한 오류가 생기기 때문에 끄고 실습한다.
- net-tools 설치
- ifconfig, netstat 등의 명령어가 포함된 네트워크 관리 패키지
yum -y install net-tools
- ifconfig, netstat 등의 명령어가 포함된 네트워크 관리 패키지
- 방화벽 설치
yum -y install firewalld systemctl start firewalld (데몬 시작) systemctl enable firewalld (재부팅시 자동 시작)
- TimeZone 설정
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 생성
- Zabbix 데이터베이스 생성
💡create database zabbix character set utf8 collate utf8_bin;
(zabbix 라는 데이터베이스 생성)
grant all privileges on zabbix.* to centos@localhost identified by 'zabbix';
(각각 새로운 ID, PW이다)
flush privileges; (변경사항 적용)
exit
- Zabbix 테이블 값 정보를 데이터베이스에 적용
💡cd /usr/share/doc/zabbix-server-mysql
gunzip create.sql.gz
mysql -u root -p zabbix < create.sql
-> Enter password : 패스워드 입력
- 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 데이터베이스 생성
- MariaDB 기본 설정
Zabbix 구동 확인
Uploaded by Notion2Tistory v1.1.0