docker-compose를 사용하여 Zabbix 환경 만들기

docker-compose를 사용하여 Zabbix 환경 만들기



망비록입니다.
어려운 일이나 자세한 것은 서투르므로 심플하게 걸립니다.

떠올랐을 때, 여러가지 덧붙입니다.

참고 사이트 1: Zabbix 공식 컨테이너와 docker-compose를 사용하여 검증 환경을 쉽게 생성 삭제
참고 사이트 2: zabbix/DockerHub
참고 사이트 3: Zabbix 문서 3.0

0. 쉽게, 세 가지 전제 지식



"docker-compose를 사용하여 Zabbix의 환경을 만들기"전에, 간단하게, 3개의 기초 사항을 합니다.

1. Docker란?/Qiita
-> 컨테이너형 가상 환경을 작성, 배포, 실행하기 위한 플랫폼.
2. docker-compose란?/Qiita
 -> 복수의 컨테이너로 이루어지는 서비스를 구축·실행하는 순서를 자동적으로 해, 관리를 용이하게 하는 기능.
3. Zabbix란/Qiita
 -> 무료 오픈 소스로 여러 애플리케이션을 모니터링 할 수있는 통합 모니터링 시스템.

0.+@ 환경을 구성하기 전에 더하기 알파



1. Zabbix/Qiita 구성


2. 이번 환경 구성

어쩐지 머리에 넣어두면 좋다고 생각합니다.

1. 변수 파일(.env) 만들기


docker-compose.yml 와 같은 디렉토리에,.env라는 새 파일을 만듭니다.

▼▼ .env 의 내용
OS=alpine
VERSION=3.0.15
DB_NAME=zabbix
DB_USER=zabbix
DB_USER_PASSWORD=zabbix
DB_ROOT_PASSWORD=zabbix
HTTP_PORT=8080
TIME_ZONE=Asia/Tokyo

# 0 - basic information about starting and stopping of Zabbix processes;
# 1 - critical information
# 2 - error information
# 3 - warnings
# 4 - for debugging (produces lots of information)
# 5 - extended debugging (produces even more information)
LOG_LEVEL=3

※설정값은 적절히 변경 가능.
※버전은, 이쪽의 도커 공식 사이트 를 참고해 주세요.

2.docker-compose.yml 파일 만들기


.env 파일로 정의한 변수를 이용하는 형태, 그렇다.

▼▼ docker-compose.yml 의 내용
version: "3"
services:
  zabbix_db:
    image: mysql:5.7
    environment:
      - MYSQL_DATABASE=${DB_NAME}
      - MYSQL_USER=${DB_USER}
      - MYSQL_PASSWORD=${DB_USER_PASSWORD}
      - MYSQL_ROOT_PASSWORD=${DB_ROOT_PASSWORD}
  zabbix_server:
    image: zabbix/zabbix-server-mysql:${OS}-${VERSION}
    environment:
      - DB_SERVER_HOST=zabbix_db
      - MYSQL_DATABASE=${DB_NAME}
      - MYSQL_USER=${DB_USER}
      - MYSQL_PASSWORD=${DB_USER_PASSWORD}
      - MYSQL_ROOT_PASSWORD=${DB_ROOT_PASSWORD}
      - ZBX_DEBUGLEVEL=${LOG_LEVEL}
    ports:
      - "10051:10051"
    links:
      - zabbix_db
  zabbix_web:
    image: zabbix/zabbix-web-apache-mysql:${OS}-${VERSION}
    environment:
      - ZBX_SERVER_HOST=zabbix_server
      - DB_SERVER_HOST=zabbix_db
      - MYSQL_DATABASE=${DB_NAME}
      - MYSQL_USER=${DB_USER}
      - MYSQL_PASSWORD=${DB_USER_PASSWORD}
      - MYSQL_ROOT_PASSWORD=${DB_ROOT_PASSWORD}
      - PHP_TZ=${TIME_ZONE}
    ports:
      - ${HTTP_PORT}:80
    links:
      - zabbix_server
      - zabbix_db
  zabbix_agent:
    image: zabbix/zabbix-agent:${OS}-${VERSION}
    privileged: true
    environment:
      - ZBX_SERVER_HOST=zabbix_server
    expose:
      - "10050"
    links:
      - zabbix_server

3. 막상 초기 구축



▼▼ 명령으로 다음 명령을 입력합니다.
-d를 붙이지 않으면 포그라운드에서 실행되어 로그가 흐른다는 것.
docker-compose up -d

# ログ確認
docker-compose logs -f

※포트 번호(여기에서는 8080)가 입고 있어, 라고 에러가 나왔으므로,
8000 8001 되어 좋아하는 포트 번호로 바꿨습니다.

무사히 명령이 지나면,
http://:8080(내 경우에는 http://localhost:8080/ )
에 연결하면 다음 화면이 나옵니다!


했어!
초기 사용자 admin/zabbix로 로그인할 수 있습니다.

4. 일본어화



오른쪽 상단의 ①을 클릭하고,
언어를 ②Japanese로 선택합니다.


5. 간단한 Zabbix 설정



Zabbix Server 자체에는 Agent가 없으므로,
아래와 같이 Agent의 NIC를 DNS에서 zabbix_agent를 보도록 변경합니다.


나중에 활성화하고 사용합니다.

5. 주요 docker-compose 명령



전경에서 시작한 것을 Ctrl-C로 떨어뜨리거나,
stop한 것만의 경우는, DB등의 데이터가 남습니다.

▼▼ 기동 및 정지 명령
docker-compose stop
docker-compose start

▼▼버전을 전환하고 싶은 경우 등, 데이터 삭제하고 싶은 경우는 db의 컨테이너를 삭제하고 up 다시 하거나, down에서 모든 환경 삭제하고 up 다시 합니다.
docker-compose rm zabbix_db
docker-compose down

좋은 웹페이지 즐겨찾기