안녕하세요.
docker 관련하여 설정에 어려움을 겪고 있으신 부분은 차후에 매뉴얼을 개선하여
조금 더 편하게 사용하실 수 있도록 수정하겠습니다. 불편을 드려 죄송합니다.
funapi-dashboard
는 리눅스 머신 내의 docker container로 배포되고 있는데요.
funapi-dashboard
는 리눅스 머신에서 설정을 읽고, 통게 데이터를 저장하고 있어서
몇가지 설정을 해주셔야 하는데요,
아래 두 옵션에 대하여 조금 더 자세히 설명드리자면 아래와 같습니다.
/path/to/override
/path/to/whisper
/path/to/whisper
는 통계 데이터를 저장할 디렉터리 경로로
리눅스 머신 내의 임의의 경로를 생성 후 입력해주시면 됩니다.
(예시: /var/lib/graphite/whisper
)
/path/to/override
는 settings.py
(대시보드의 설정파일)을 가지고 있는 하위
경로를 입력해주시면 됩니다.
(예시: 리눅스 머신에 /etc/funapi_dashboard/settings.py
가 존재한다면
/path/to/override
는 /etc/funapi_dashboard
)
아래 내용은 /etc/funapi_dashboard/
디렉토리에 settings.py
파일이 존재하고,
/var/lib/graphite/whisper
디렉토리가 존재하고, 해당 디렉토리에 통계 데이터를 쌓고 싶은 경우 설정입니다.
description "iFunEngine Dashboard"
start on (filesystem and net-device-up IFACE!=lo)
stop on runlevel [!2345]
kill timeout 30
respawn
respawn limit 50 600
script
exec /usr/bin/docker run --rm \
--name=funapi_dashboard \
--dns=168.126.63.1 \
--publish=0.0.0.0:8000:8000 \
--publish=0.0.0.0:2003:2003 \
--publish=0.0.0.0:2004:2004 \
-v /etc/funapi_dashboard:/etc/funapi_dashboard/override \
-v /var/lib/graphite/whisper:/var/lib/graphite/whisper \
ifunfactory/funapi-dashboard:latest
end script
pre-stop exec /usr/bin/docker stop funapi_dashboard
추가로, settings.py
의 내용은 아래와 같습니다.
# vim: fileencoding=utf-8 tabstop=2 softtabstop=2 shiftwidth=2 expandtab
#
# Copyright (C) 2018 iFunFactory Inc. All Rights Reserved.
#
# This work is confidential and proprietary to iFunFactory Inc. and
# must not be used, disclosed, copied, or distributed without the prior
# consent of iFunFactory Inc.
# 1. MySQL
URI_TEMPLATE = 'mysql+mysqldb://{USER}:{PASSWORD}@{HOST}/{NAME}?charset=utf8'
SQLALCHEMY_DATABASE_URI = URI_TEMPLATE.format(USER='user',
PASSWORD='passwd',
HOST='host-address',
NAME='database-name')
# 2. Redis (DO NOT MODIFY)
REDIS_PORT = 6379
REDIS_HOST = "localhost"
REDIS_PASS = None
# 3. 앱 시크릿키는 설정해서 사용하셔야 합니다.
# openssl rand 48 -hex 같은 명령 이용. (문자열로 지정)
APP_SECRET_KEY = None
# 4. Graphite API (DO NOT MODIFY)
GRAPHITE_WEB_URL = "http://localhost:8888"
SQLALCHEMY_TRACK_MODIFICATIONS = False
# 5. 경고 알림과 관련된 설정입니다.
# 알림을 다시 받을 주기입니다. 기본은 300초(5분) 입니다.
ALERT_BLOCKING_SECONDS = 300
# Gmail OAuth 2.0 Client 인증과 관련 설정입니다.
# 보다 자세한 내용은
# https://developers.google.com/gmail/api/auth/about-auth 을 참고해주세요
# gmail oauth credential 이 저장 될 이름입니다.
CREDENTIAL_NAME = 'funapi-dashboard.json'
# gmail oauth credential 이 저장된 패스입니다.
# 해당 경로가 없을시에 정상적으로 메일이 발송되지 않습니다.
# 특별히 수정하지않았다면 아래 경로에 저장됩니다.
# /home/user/.credentials/...
# /home/ 하위에 credential 파일이 있다면 정상적으로 읽지 못하니
# 반드시 파일위치를 옮겨주세요.
# 예: CREDENTIAL_PATH = "/etc/funapi_dashboard/override/funapi-dashboard.json"
CREDENTIAL_PATH = None
# 이메일 작성자 계정을 지정합니다.
# 해당 계정은 CLIENT_SECRET 을 발급 받은 계정이여야 합니다.
# 예: SENDER_NAME = "example@ifunfactory.com"
SENDER_NAME = None
# API SCOPE를 지정합니다.
GMAIL_API_SCOPES = 'https://www.googleapis.com/auth/gmail.compose'
# 인증시 발급받은 client_secret...json 파일의 위치를 지정합니다.
# 예: CLIENT_SECRET_PATH = "/etc/funapi_dashboard/client_secret.json"
CLIENT_SECRET_PATH = None
# SLACK을 이용한 알림 전송과 관련된 설정입니다.
# 보다 자세한 내용은
# https://api.slack.com/incoming-webhooks 을 참고해주세요
SLACK_WEBHOOK_URL = 'https://YOUR-COMPANY.slack.com/services/hooks/incoming-webhook?token={YOUR-TOKEN}'
# 메시지를 전송할 슬랙 체널이나 유저를 설정합니다.
# 채널은 #, 유저는 @이 앞에 ...
(more)