본문 바로가기

모니터링

[Zabbix] Zabbix를 통한 컴퓨터 모니터링 - Docker로 구축하기

728x90

안녕하세요 오늘의 주제는 Zabbix입니다.

 

Zabbix는 네트워크 서비스, 서버 등을 감시하고 관리하는 네트워크 관리 시스템입니다. 

 

 

 

이런식으로 대시보드를 꾸밀수도 있습니다. 

 

이런 모니터링 시스템인 자빅스를 Docker 컨테이너로 구축하고 agent를 사용하여 다른 서버를 추가해보는 과정까지 다뤄보겠습니다.

 

 

www.zabbix.com/container_images

 

Zabbix Docker images

 

www.zabbix.com

 

 

자빅스 공식 홈페이지에 가보시면 여러가지 버전으로 설치할수 있는 방법들이 제공되어있습니다.

 

간단하게 따라해봅시다.

 

우선 필요한 zabbix image들을 다운로드합니다.

docker pull mysql
docker pull zabbix/zabbix-server-mysql
docker pull zabbix/zabbix-web-nginx-mysql
docker pull zabbix/zabbix-java-gateway
docker pull zabbix/zabbix-agent

 

 

1. Mysql 컨테이너 부터 run 해줍시다.

 

docker run --name mysql-server -t -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="비밀번호" -e MYSQL_ROOT_PASSWORD="루트비밀번호" -d mysql --character-set-server=utf8 --collation-server=utf8_bin --default-authentication-plugin=mysql_native_password

여기서 사용자와 비밀번호 데이터베이스 명을 주의해주시기 바랍니다. 안그러면 헷갈려요

 

 

 

2. 그 다음 Zabbix java 게이트웨이에 대한 컨테이너를 run해줍니다.

docker run --name zabbix-java-gateway -t --restart unless-stopped -d zabbix/zabbix-java-gateway

 

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

docker run --name zabbix-server-mysql -t -e DB_SERVER_HOST="mysql-server" -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="비밀번호" -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

 

 

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

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="비밀번호" -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

각각 옵션들에 이름들이 들어가지요?? 일단 무지성으로 따라해봅시다.

 

 

 

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

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

 

자 이제 docker ps 명령어로 컨테이너들이 잘 실행되고있는지를 확인합니다.

 

잘 실행되고 있다면 inspect 명령어로 자빅스 에이전트의 IP주소를 가져옵니다.

 

docker inspect zabbix-agent | grep "IPAddress\": "

아마 172.17.0.6 이 나올겁니다 아마도 뭐 뒤에 숫자는 다를 수 있습니다.

 

이제 브라우저를 열고 웹서버를 들어갑시다 zabbix-web-nginx 입니다. 이 컨테이너를 아까 실행시킬때 포트포워딩으로 80:8080을 해뒀지요?? 그거에 맞춰서 들어가면됩니다. 만약 다른 포트를 이용하고 싶으시다면 웹 인터페이스를 위한 컨테이너를 실행할 때 포트포워딩 부분의 옵션 -p 부분을 수정해 주시면됩니다.

 

 

자빅스에 접속하시면 로그인 창이 뜰텐데 기본 사용자 이름과 기본 암호를 입력해줍시다.

 

기본 사용자 이름 : Admin

기본 암호 : zabbix 

특이하게도 admin 이 아닌 Admin a가 대문자입니다. 

 

화면 구성 좌측에 Configuration, Hosts 로 들어가줍시다.

 

 

Zabbix 서버 호스트를 편집하는데 이 때 인터페이스 에이전트 IP address를 172.17.0.6 위에 Docker inspect 명령어로 얻은 IP를 입력해줍니다. 포트는 10050 입니다.

 

 

 

 

이러면 얼마 후 초록불이 들어오면서 성공을 알려줍니다.

 

 

짜잔

 

다음시간엔 agent를 통해 다른 서버를 추가하는 법을 업로드하겠습니다.

 

 

 

 

 

 

 

 

반응형