안녕하세요 오늘의 주제는 Zabbix입니다.
Zabbix는 네트워크 서비스, 서버 등을 감시하고 관리하는 네트워크 관리 시스템입니다.
이런식으로 대시보드를 꾸밀수도 있습니다.
이런 모니터링 시스템인 자빅스를 Docker 컨테이너로 구축하고 agent를 사용하여 다른 서버를 추가해보는 과정까지 다뤄보겠습니다.
www.zabbix.com/container_images
자빅스 공식 홈페이지에 가보시면 여러가지 버전으로 설치할수 있는 방법들이 제공되어있습니다.
간단하게 따라해봅시다.
우선 필요한 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를 통해 다른 서버를 추가하는 법을 업로드하겠습니다.
'모니터링' 카테고리의 다른 글
[Elastic Stack #1] Docker로 Elastic Stack 구축해서 Filebeat로 로그 수집하기 - 1 (2) | 2021.11.16 |
---|---|
[Zabbix] Zabbix error - cannot send list of active checks to "192.168.0.X": host [호스트이름] not found 오류가뜰 때 (1) | 2021.07.06 |
[Zabbix] Zabbix 한글 폰트 변경하기 (0) | 2021.07.06 |
[Zabbix] Zabbix agent를 통한 다른 서버 모니터링 (0) | 2021.04.06 |
[Portainer] portainer를 통한 도커 모니터링 및 관리 (0) | 2021.03.23 |