14. 환경 설정

아이펀 대시보드 에서 제공하는 3가지 패키지에 대한 환경 설정 목록입니다.

개별 패키지의 환경 설정 파일의 위치는 다음과 같습니다.

  • Funapi Dashboard : /etc/funapi_dashboard/settings.py
  • Funapi Dashboard Collector : /etc/funapi_dashboard_collector/settings.py
  • Funapi Dashboard Agent : /etc/funapi_dashboard_agent/settings.py

14.1. Funapi Dashboard 환경 설정

Funapi Dashboard 에서 수정할 수 있는 환경 설정입니다.

데이터베이스 계정 설정, 경고 메일 설정 등의 내용을 설정합니다.

14.1.1. 기본 설정하기

  • APP_SECRET_KEY: Flask App Secret Key 입니다. 자세한 내용은 Flask API 를 참고해주세요.

14.1.2. 데이터베이스 연동 설정하기

데이터베이스 연동과 관련된 환경 설정입니다. 데이터베이스 설치와 관련된 자세한 내용은 install_database 를 참고해주세요. Graphite 의 설치의 경우 install_graphite 를 참고해주세요.

14.1.2.1. MySQL 연동 설정하기

  • SQLALCHEMY_DATABASE_URI: MySQL 의 계정 설정입니다.
    • USER: 계정명입니다.
    • PASSWORD: 계정 비밀번호입니다.
    • HOST: 접속할 호스트입니다.
    • NAME: 사용할 데이터베이스 이름입니다. 기본 값은 DASHBOARD 입니다.

14.1.2.2. Redis 연동 설정하기

  • REDIS_PORT: 레디스 포트 번호입니다.
  • REDIS_HOST: 레디스 접속 호스트입니다.
  • REDIS_PASS : 레디스 패스워드입니다.

14.1.2.3. Graphite 설정하기

  • GRAPHITE_WEB_URL: 설치한 Graphite-API 의 주소를 입력합니다.

14.1.3. 경고 알림 발송

경고 알림 발송과 연관된 환경 설정입니다.

경고 알림 발송을 위한 연동 작업은 경고 알림 사용하기 을 참고해주세요.

  • ALERT_BLOCKING_SECONDS: 메시지를 다시 보내기 위한 대기 시간입니다. 대기 시간이 너무 짧으면 많은 양의 메시지가 전송 될 수 있습니다. 슬랙과 이메일 알림 둘 다 해당됩니다.

14.1.3.1. 메일 연동 환경 설정하기

메일 연동에 대한 더 자세한 내용은 Gmail 메일 연동하기 를 참고해주세요.

  • CREDENTIAL_NAME: OAuth credential 인증 후 클라이언트에 저장 될 이름입니다.
  • SENDER_NAME: 이메일 적상자의 이름을 지정합니다.

Warning

SENDER_NAME 은 OAuth 2.0 Client ID 를 이용한 gmail 인증을 받은 계정으로만 사용 할 수 있습니다. 그렇지 않은 경우 메일이 발송되지 않습니다.

  • GMAIL_API_SCOPES: GMAIL API scope를 설정합니다.
  • CLIENT_SECRET_PATH: OAuth 2.0 Client 을 하기 위해 사용하는 CLIENT_SECRET 파일의 위치입니다.

14.1.3.2. Slack 연동 환경 설정하기

Slack 연동에 대한 더 자세한 내용은 Slack 연동하기 를 참고해주세요.

  • SLACK_WEBHOOK_URL: 봇 메시지를 처리 할 Webhook url 입니다. Slack 연동을 위해 반드시 필요합니다.
  • SLACK_CHANNELS: 메시지를 전달할 슬랙 채널을 입력합니다. 채널은 #channelname 으로, 개인에게 발송 시 @userid 로 입력하면 발송됩니다.
  • SLACK_BOT: 메시지를 전달할 봇의 닉네임을 변경합니다. 기본 값은 DASHBOARD 입니다.
  • SLACK_EMOJI: 메시지를 전달할 봇의 emoji를 변경합니다. 기본 값은 :warning 입니다.

14.2. Funapi Dashboard Collector 환경 설정

  • COLLECT_CARBON_ADDRESS : 데이터를 받을 카본의 주소를 입력합니다. 예: 127.0.0.1:2003
  • DASHBOARD_URL: 데이터 수정을 요청 할 대시보드 URL을 입력합니다. 예: “http://127.0.0.1:5000”
  • REPLACE_KEYWORDS: 메트릭 정보의 문제로 Graphite 에 올바르게 쌓이지 않는 키워드를 제거하기 위해 존재합니다. 해당 키워드는 ‘’ 로 대체됩니다.

Warning

Funapi Dashboard Collector 를 사용하기 위해서는 DASHBOARD_URLCOLLECT_CARBON_ADDRESS 은 반드시 연결 가능한 상태여야합니다.

Note

Funapi Dashboard Collectorcron 서비스 로 동작합니다.

14.3. Funapi Dashboard Agent 환경 설정

  • COLLECT_CARBON_ADDRESS : 데이터를 받을 카본의 주소를 입력합니다. 예: 127.0.0.1:2003
  • UNIQUE_NAME : 타 서버와 구분될 고유 이름을 지정합니다. 값이 없는 경우 hostname을 사용합니다.
  • STATS_COLLECT_MINUTES : 시스템 정보를 가져올 이전 분을 설정합니다. 최소값은 2 입니다.
  • PROCESS_COLLECT_NAMES : 정보를 가져올 프로세스의 이름을 입력합니다. 해당 값은 배열입니다. 예: [‘nginx’, ‘funapi-biller’]

Note

Funapi Dashboard Agentcron 서비스 로 동작합니다.

14.4. Graphite 환경 설정

14.4.1. 메트릭 생성 제한

메트릭 생성 제한이 너무 낮을 경우 funapi dashboard collector 에서 응답 받은 데이터를 바로 생성해주지 못하는 경우가 생깁니다. 이를 방지하기 위해서 메트릭 생성 최대 크기를 늘려주겠습니다.

/etc/carbon/carbon.conf 파일을 열어 MAX_CREATES_PER_MINUTES , MAX_CREATES_PER_MINUTES 의 값을 변경해줍니다.

$ sudo vi /etc/carbon/carbon.conf
MAX_UPDATES_PER_SECOND = inf
MAX_CREATES_PER_MINUTES = inf
# 제한 없이 파일을 생성 / 업데이트 하게 합니다.
# 퍼포먼스에 문제가 있는 경우 수치를 조절해야합니다.
$ sudo service carbon-cache restart

14.4.2. 메트릭 저장 기간 설정

carbon에 저장되는 메트릭은 데이터의 기간이 있습니다. 기간 설정의 위치는 /etc/carbon/storage-schemas.conf 입니다.

storage-schemas.conf 파일에는 데이터를 저장 할 기간을 설정 할 수 있습니다. 아래 예제를 통해 메트릭 저장 기간을 설정하는 방법을 알아보겠습니다.

[garbage_collection] # 설정 이름
pattern = garbageCollections$ # 해당하는 메트릭을 찾는 패턴입니다. 정규식을 지원합니다.
retentions = 10s:14d # 기간지정입니다. 10초씩 14일을 의미합니다.
retentions 으로 지정 가능한 옵션은 다음과 같습니다.
  • s: 초
  • m: 분
  • h: 시
  • d: 일
  • y: 년
[apache_busyWorkers]
pattern = ^servers\.www.*\.workers\.busyWorkers$
retentions = 15s:7d,1m:21d,15m:5y
# retentions은 복수의 옵션을 사용하여 지정 할 수 있습니다.

기간 설정과 관련하여 더 자세한 내용은 Configuring Carbon 을 참조해주세요.

Attention

Configuring Carbon 문서에서 경로는 opt/graphite/conf 이지만 APT 저장소를 이용해 설치하셨다면 /etc/carbon/ 을 참조하시면 됩니다.