**Zabbix 의 경우 agent-server 통신이 가능해야 모니터링이 가능. 그런데 내부 사설IP의 경우 NAT를 통해 인터넷은 가능하나 특정포트 Listen으로 여는 것은 힘듬. 또한 모든 agent들이 인터넷을 통해 Server과 직접통신하는 것은 보안적으로 취약.
그래서 내부에 proxy를 별도로 두어 내부 agent들의 모니터링 데이터를 모아 Server로 전송가능. Proxy만 인터넷이 노출.
참조 : https://bestmonitoringtools.com/install-zabbix-proxy-on-ubuntu/
- 개요.
TSP AWS 계정 ec2 instance 2개
각각 agent2 설치, EIP 부여된 1대에는 Proxy도 설치
TSP 계정내의 instance들은 Proxy서버를 통해 Hazel AWS 계정의 Zabbix Server로 연결.
한 AWS내의 instance를 모두 모니터링 하기 위해 동일 VPC내에 1개의 EIP할당된 Proxy1대 필요.

필요 PORT
Zabbix Agent : 10050
Zabbix proxy, Server : 10051
구성요소
TSP-host01 : agent2, proxy, postgresql
TSP-host02 : agent2
Hazelsys-zabbix-server : agent2, server, mysql
2. 설치.
# dpkg -i zabbix-release_6.0-4+ubuntu20.04_all.deb
# apt update
# apt install zabbix-proxy-pgsql zabbix-sql-scripts
# apt install postgresql postgresql-client
DB설정
# sudo -u postgres createuser –pwprompt zabbix
-> postgres user zabbix 패스워드 2번 입력
# sudo -u postgres createdb -O zabbix zabbix_proxy
# cat /usr/share/zabbix-sql-scripts/postgresql/proxy.sql | sudo -u zabbix psql zabbix_proxy
설정파일 수정
#vi /etc/zabbix/zabbix_proxy.conf
ProxyMode=1
-> 0;active모드, 1;passive모드, 패시브 권장 active시 proxy->server 정상수신 안 됨.(확인 필요)
Server=52.78.193.28
-> server의 EIP
Hostname=TSP-proxy
-> Proxy서버의 hostname
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=Hazel1234
-> DB설정정보 일치하게 넣어주면 됨.
3. AWS 각 보안그룹 및 방화벽 10050, 10051 open. 편의를 위해 전체를 열었지만 해당 EIP 및 내부 subnet만 열어주는 것 필요.
4. zabbix Server WEB UI에서 관리 -> 프록시 -> 프록시작성 선택

패시브 선택하여 EIP를 이용해 등록

** 프록시 통신상태 정상확인
(최신데이터 수신시각이 계속 갱신되어야 정상통신. 60s 이내.)

5. host agent등록
해당 프록시와 같은 VPC내에 있는 agent2 설정은 Proxy의 내부 사설IP로 설정
# vi /etc/zabbix/zabbix_agent2.conf
Server=172.31.4.xxx
ServerActive=172.31.4.xxx
Hostname=TSP-host01
** /etc/hosts에 등록된 정보와 zabbix_agent2.conf에 등록된 hostname이 다르면 agent통신 안되는 경우 있음.
**자체 호스트네임도 체크하는지 테스트 필요.
Zabbix Server Web UI에서 “호스트 작성” 으로 등록

** interface의 agent IP는 proxy-agent간에 통신하는 사설IP로 등록
** 프록시 설정에 해당 프록시 drop-down에서 선택
등록된 host정상 통신 확인. (상태에서 ZBX agent 표시가 녹생으로 들어와야 정상연결)

설정-호스트에서 확인시 프록시를 통해 통신되는 host agents는 프록시에 표시됨.
