어플리케이션보안

Zabbix 에 대해 알아보겠습니다.

forward error correction Circle 2024. 5. 2. 08:48
반응형

Ⅰ. Zabbix 란?

  Zabbix는 오픈 소스의 네트워크 모니터링 및 경고 솔루션으로, 시스템 및 네트워크 리소스의 상태를 실시간으로 모니터링하고 관리하는 데 사용됩니다. 주로 IT 인프라 및 서비스의 성능, 가용성 및 상태를 모니터링하는 데 사용되며, 대규모 환경에서도 사용할 수 있습니다. 다양한 기능과 확장성을 갖추고 있어서 많은 기업 및 조직에서 네트워크 모니터링에 활용되고 있습니다.

 

Ⅱ. Zabbix 주요 특징

 ⅰ.다양한 모니터링 옵션: Zabbix는 서버, 네트워크 장비, 가상화 플랫폼, 클라우드 서비스 등 다양한 환경에서의 모니터링을 지원합니다. CPU, 메모리, 디스크 사용량부터 네트워크 트래픽, 웹 서비스 상태 등 다양한 지표를 모니터링할 수 있습니다.
  ⅱ. 실시간 모니터링 및 경고: Zabbix는 실시간으로 시스템 및 네트워크의 상태를 모니터링하고, 문제가 발생하면 경고를 생성하여 관리자에게 알려줍니다. 이를 통해 문제가 발생하기 전에 조치를 취할 수 있습니다.
  ⅲ. 고급 데이터 수집 및 분석: Zabbix는 데이터 수집을 위해 에이전트를 사용하며, 다양한 데이터 수집 방법을 지원합니다. 수집된 데이터는 그래프 및 리포트로 시각화되어 사용자가 데이터를 쉽게 분석할 수 있습니다.
  ⅳ. 자동화 및 확장성: Zabbix는 자동화 기능을 제공하여 쉽게 구성하고 관리할 수 있습니다. 또한 확장 가능한 아키텍처를 가지고 있어 대규모 환경에서도 사용할 수 있습니다.

 

Ⅲ. Docker 에서 Zabbix 설치 및 실행하는 방법

ⅰ. zabbix image 다운로드

[root@localhost ~]# docker pull mysql
[root@localhost ~]# docker pull zabbix/zabbix-server-mysql
[root@localhost ~]# docker pull zabbix/zabbix-web-nginx-mysql
[root@localhost ~]# docker pull zabbix/zabbix-java-gateway
[root@localhost ~]# docker pull zabbix/zabbix-agent

 

ⅱ. Mysql 컨테이너 run 

[root@localhost ~]# docker run --name mysql-server -t -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="[MySQL 패스워드]" -e MYSQL_ROOT_PASSWORD="[루트 패스워드]" -d mysql --character-set-server=utf8 --collation-server=utf8_bin --default-authentication-plugin=mysql_native_password

 

ⅲ. Zabbix java 게이트웨이 컨테이너 run

[root@localhost ~]# docker run --name zabbix-java-gateway -t --restart unless-stopped -d zabbix/zabbix-java-gateway

 

ⅳ. zabbix-server-mysql 컨테이너도 run해주십시다.

[root@localhost ~]# docker run --name zabbix-server-mysql -t -e DB_SERVER_HOST="mysql-server" -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="[MySQL 패스워드]" -e MYSQL_ROOT_PASSWORD="[루트 패스워드]" -e ZBX_JAVAGATEWAY="zabbix-java-gateway" --link mysql-server:mysql --link zabbix-java-gateway:zabbix-java-gateway -p 10051:10051 --restart unless-stopped -d zabbix/zabbix-server-mysql

 

ⅴ. Zabbix 웹 인터페이스를 위한 컨테이너를 run합니다.

[root@localhost ~]#  docker run --name zabbix-web-nginx-mysql -t -e DB_SERVER_HOST="mysql-server" -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD=" [MySQL 패스워드]" -e MYSQL_ROOT_PASSWORD="[루트 패스워드]" --link mysql-server:mysql --link zabbix-server-mysql:zabbix-server -p 80:8080 --restart unless-stopped -d zabbix/zabbix-web-nginx-mysql

 

ⅵ. Zabbix agent에 대한 컨테이너를 run합니다.

[root@localhost ~]#  docker run --name zabbix-agent --link mysql-server:mysql --link zabbix-server-mysql:zabbix-server -e ZBX_HOSTNAME="Zabbix server" -e ZBX_SERVER_HOST="zabbix-server" -d zabbix/zabbix-agent

 

ⅶ. 컨테이너 실행 확인

[root@localhost ~]# docker ps 

 

ⅷ. 자빅스 에이전트의 IP주소 확인

[root@localhost ~]# docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' [컨테이너_ID_또는_이름]

 

172.17.0.x IP가 확인됩니다.

 

Ⅲ. Zabbix 웹 서버 접속

 

zabbix-web-nginx-mysql 컨테이너 실행 시 포트포워딩으로 80:8080 변경했습니다. 해당 설정으로 컨테이너의 8080번 포트를 호스트의 80번 포트로 매핑되어 외부에서는 호스트의 IP와 80번 포트를 사용하여 접속할 수 있습니다.

※ 변경이 필요할 경우 포트포워딩 부분의 옵션 -p 부분을 수정해 주시면됩니다.

 

Ⅵ. Zabbix 계정 및 패스워드

Default Username : Admin

Default  Password : zabbix 

 

반응형