2. 대시보드 설치하기¶
아이펀 대시보드 와 연관 패키지인 Graphite 를 설치하는 방법을 설명합니다. 아이펀 대시보드는 Ubuntu 14.04 LTS or Ubuntu 16.04 LTS 와 CentOS 7 버전을 지원합니다. 아이펀 대시보드가 동작하기 위해서는 Docker 가 필요합니다. 엔진으로 작성하지 않은 서버를 모니터링 하기 위해서는 Python 2.7 이 필요합니다.
Docker 를 설치하고 대시보드를 실행하는 부분을 설명합니다.
만약 funapi-dashboard-agent
를 사용해서 엔진으로 만들지 않은 서버의 모니터링을 하려는 경우
뒷 부분의 “대시보드 에이전트 설치하기” 를 참고해주시기 바랍니다.
2.1. 데이터베이스 설치하기¶
아이펀 대시보드 를 사용하기 위해서는 MySQL
이 필요합니다.
해당 데이터베이스 서버에 대시보드에서 사용할 데이터베이스를 생성해주시기 바랍니다.
2.1.1. MySQL 설치하기¶
CentOS 7
CentOS 7 에서는 MySQL 대신 MariaDB를 설치하겠습니다. 설치하기 위해 아래와 같이 입력합니다.
$ sudo yum install mariadb-server
$ sudo systemctl start mariadb
$ sudo systemctl enable mariadb
# 기본 비밀번호 등을 설정하기 위해 실행합니다.
$ mysql_secure_installation
Ubuntu
MySQL을 설치하기 위해 아래와 같이 입력합니다.
$ sudo apt-get install mysql-server
$ sudo service mysql start
Warning
설치가 과정에서 입력한 root
계정 비밀번호를 기억하셔야합니다.
설치가 되었다면 아래와 같이 입력하여 계정을 추가하고 권한을 설정하겠습니다.
$ mysql -u root -p
# 이후 설정한 root 계정 패스워드를 입력합니다.
이제 MySQL 에 데이터베이스 접속 계정과, 사용할 데이터베이스를 생성해주세요.
Tip
MySQL 설치와 관련된 더 자세한 내용은 Installing MariaDB 10 on CentOS 7 / RHEL 7 을 참고해주세요.
2.2. Docker 설치하기¶
Docker CE를 설치합니다. 이 부분은 각 OS마다 조금씩 다르니 아래 설명을 참고해주시기 바랍니다.
CentOS 7
자세한 사항은 CentOS 에 Docker CE 설치하기 를 참고해주세요.
아래 명령으로 docker를 설치합니다.
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
$ sudo yum-config-manager --add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
$ sudo yum install -y docker-ce
$ sudo systemctl enable docker
$ sudo systemctl start docker
Ubuntu
자세한 사항은 Ubuntu에 Docker CE 설치하기 를 참고해주세요.
Note
Ubuntu 14.04 (trusty) 의 경우 다음 단계를 먼저 실행해야 합니다.
$ sudo apt-get update
$ sudo apt-get install -y \
linux-image-extra-$(uname -r) \
linux-image-extra-virtual
해당 명령 실행 후 서버 재시작이 필요합니다.
아래 명령으로 docker를 설치합니다.
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
$ sudo apt-get update
$ sudo apt-get install docker-ce
# Ubuntu 16.04
$ sudo systemctl enable docker
$ sudo systemctl start docker
# Ubuntu 14.04
$ sudo service docker start
2.4. 서비스 설정 파일 설치¶
2.4.1. CentOS 7, Ubuntu 16.04¶
서비스 설정 파일을 생성합니다. /lib/systemd/system/funapi-dashboard.service
파일을 만들고 다음 내용을 추가합니다. 각 항목의 내용은
Funapi Dashboard 설정 에서 설명합니다.
[Unit] Description=iFunEngine Dashboard After=syslog.target network-online.target Requires=docker.service [Service] Type=simple Restart=Always RestartSec=10s User=root Group=root ExecStart=/usr/bin/docker run --rm \ --name=funapi_dashboard \ --dns=1.1.1.1 \ --publish=0.0.0.0:8000:8000 \ --publish=0.0.0.0:2003:2003 \ --publish=0.0.0.0:2004:2004 \ -v /path/to/override:/etc/funapi_dashboard/override \ -v /path/to/whisper:/var/lib/graphite/whisper \ ifunfactory/funapi-dashboard:latest ExecStop=/usr/bin/docker stop funapi_dashboard ExecReload=/usr/bin/docker restart funapi_dashboard
해당 파일에서,
dns={DNS 서버 주소}
: 사용 중인 DNS 서버 주소/path/to/override
: 서버 설정 디렉터리/path/to/whisper
: 통계 데이터를 저장할 디렉터리
부분을 사용하는 환경에 맞게 지정해야 합니다.
2.4.2. Ubuntu 14.04¶
서비스 설정 파일을 생성합니다. /etc/init/funapi_dashboard.conf
파일을
만들고 다음 내용을 추가합니다. 각 항목의 내용은
Funapi Dashboard 설정 에서 설명합니다.
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=1.1.1.1 \
--publish=0.0.0.0:8000:8000 \
--publish=0.0.0.0:2003:2003 \
--publish=0.0.0.0:2004:2004 \
-v /path/to/override:/etc/funapi_dashboard/override \
-v /path/to/whisper:/var/lib/graphite/whisper \
ifunfactory/funapi-dashboard:latest
end script
pre-stop exec /usr/bin/docker stop funapi_dashboard
해당 파일에서,
dns={DNS 서버 주소}
: 사용 중인 DNS 서버 주소/path/to/override
: 서버 설정 디렉터리/path/to/whisper
: 통계 데이터를 저장할 디렉터리
부분을 사용하는 환경에 맞게 지정해야 합니다.
2.5. 설정 파일 지정하기¶
/path/to/override
디렉터리에 다음과 같은 내용을 포함한 settings.py
파일이 필요합니다. 여기에 아래 설정을 추가해주시기 바랍니다.
- 데이터베이스 연결 설정
APP_SECRET_KEY
- (선택 사항) Google Gmail 인증 설정
- (선택 사항) Slack webhook 설정
# 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}'
# 메시지를 전송할 슬랙 체널이나 유저를 설정합니다.
# 채널은 #, 유저는 @이 앞에 붙습니다.
SLACK_CHANNELS = ['#alert-channel']
SLACK_BOT = u'DASHBOARD'
SLACK_EMOJI = ':warning:'
2.6. 대시보드 에이전트 설치하기¶
아이펀 엔진으로 작성하지 않은 서버의 성능 정보를 모으려면 대시보드 에이전트가 필요합니다. 모니터링 하는 서버에 아이펀팩토리 패키지 저장소를 설정하고, 해당 패키지를 설치해야합니다.
2.6.1. 저장소 설정하기¶
CentOS 저장소 설정
자세한 내용은 아이펀 엔진 설치하기(CentOS) 를 참고해주세요.
$ sudo yum install -y epel-release wget
$ wget https://ifunfactory.com/engine/funapi-yum-setup.rpm
$ sudo rpm -Uvh funapi-yum-setup.rpm
$ sudo funapi_select_repo experimental
$ sudo yum makecache
Ubuntu 설치 및 저장소 설정
자세한 내용은 아이펀 엔진 설치하기(Ubuntu) 를 참고해주세요. 페이지에서 APT 저장소 설정까지만 진행하시면 됩니다.
$ sudo apt-get install wget apt-transport-https
$ wget https://ifunfactory.com/engine/funapi-apt-setup.deb
$ sudo dpkg -i funapi-apt-setup.deb
# 아이펀 대시보드는 현재 experimental 에서만 설치 할 수 있습니다.
$ sudo funapi_select_repo experimental
$ sudo apt-get update
2.6.2. Funapi Dashboard Agent 설치하기¶
Funapi Dashboard Agent
는 모니터링 할 서버에 설치해야합니다.
또한 해당 서버에서 Graphite Carbon
으로 연결이 가능해야합니다.
Graphite Carbon
과 통신이 가능한지 확인하기 위해서는
config_graphite_test 를 참고해주세요.
설치하기 위해서는 다음과 같이 입력합니다.
CentOS 7
$ sudo yum install funapi-dashboard-agent
Ubuntu
$ sudo apt-get install funapi-dashboard-agent
Funapi Dashboard Agent
는 cron 서비스 로 동작합니다.
패키지를 정상적으로 설치했다면 /etc/cron.d/
폴더에 funapi-dashboard-agent
파일이 생성되고 1분 단위로 동작하게됩니다.
cron 서비스 가 동작 중이라면 설치 후 특별한 설정 없이 사용 할 수 있습니다.