Thoughts, stories and ideas.

우분투에 Docker Compose를 이용해 Redash 설치하기

Redash는 데이터 시각화 및 대시보드를 만들기 위한 강력한 오픈 소스 도구입니다. 이 글에서는 Docker Compose를 사용하여 우분투 시스템에 Redash를 설치하는 방법을 안내합니다.

사전 준비사항

이 가이드를 시작하기 전에, Docker와 Docker Compose가 이미 설치되어 있어야 합니다. 이전 포스팅에서 Docker와 Docker Compose 설치 방법을 다루었습니다. 설치되어 있지 않다면, 해당 내용을 참고하여 먼저 설치해 주세요.

Redash 설치 과정

1. 작업 디렉토리 생성

Redash와 관련된 파일들을 관리할 새로운 디렉토리를 생성합니다.

bashCopy code
mkdir redash
cd redash

2. Docker Compose 파일 준비

Redash의 공식 GitHub 저장소에서 제공하는 docker-compose.yml 파일을 사용합니다. 아래는 Redash 설치를 위한 간단한 docker-compose.yml 예시입니다. 실제 사용 시에는 Redash GitHub 저장소에서 최신 버전의 예제 파일을 참조하세요.

ymlCopy code
version: '2'
services:
  redash:
    image: redash/redash:8.0.0.b32245
    depends_on:
      - postgres
      - redis
    ports:
      - "5000:5000"
    environment:
      REDASH_WEB_WORKERS: 4
      REDASH_LOG_LEVEL: "INFO"
  postgres:
    image: postgres:9.6-alpine
    environment:
      POSTGRES_PASSWORD: mysecretpassword
  redis:
    image: redis:5.0-alpine

3. Redash 실행

docker-compose.yml 파일이 준비되었다면, 다음 명령어를 실행하여 Redash와 필요한 서비스들을 시작합니다.

bashCopy code
docker-compose up -d

4. Redash 설정 완료

Redash가 성공적으로 시작되면, 브라우저를 통해 **http://<YOUR-UBUNTU-SERVER-IP>:5000**에 접속합니다. 초기 설정 마법사를 따라 Redash를 구성하고 사용을 시작할 수 있습니다.

정리

이제 우분투 시스템에 Redash를 성공적으로 설치하고 구성했습니다. Docker Compose를 사용하면 Redash와 필요한 모든 서비스를 쉽게 관리하고 실행할 수 있습니다. Redash를 사용하여 데이터를 시각화하고 대시보드를 만들어 데이터 분석 작업을 효율적으로 수행할 수 있습니다.


PermissionError(13, 'Permission denied')

문제 해결 방법

1. Docker 그룹에 사용자 추가

Linux 시스템에서는 사용자가 docker 그룹의 일원이 되어야 Docker 명령을 sudo 없이 실행할 수 있습니다. 현재 사용자를 docker 그룹에 추가하려면 다음 명령어를 실행하세요:

bashCopy code
sudo usermod -aG docker $USER

이 명령은 현재 사용자를 docker 그룹에 추가합니다. 변경사항을 적용하기 위해 로그아웃한 후 다시 로그인하거나, 시스템을 재부팅해야 할 수 있습니다.

2. Docker 데몬 재시작

경우에 따라 Docker 데몬 자체에 문제가 있을 수 있으므로, Docker 서비스를 재시작해 보는 것도 좋습니다:

bashCopy code
sudo systemctl restart docker

3. 권한 확인

Docker 데몬과 소통하는 데 필요한 권한을 파일이나 소켓이 제대로 가지고 있는지 확인합니다. 일반적으로 Docker 소켓 파일(/var/run/docker.sock)은 docker 그룹에 속해야 합니다:

bashCopy code
ls -l /var/run/docker.sock

이 파일이 docker 그룹에 속하지 않거나 적절한 권한 설정이 되어 있지 않다면, 다음 명령으로 그룹을 설정하고 적절한 권한을 부여할 수 있습니다:

bashCopy code
sudo chown root:docker /var/run/docker.sock
sudo chmod 660 /var/run/docker.sock

위 단계를 수행한 후에도 문제가 지속된다면, Docker 설치가 올바르게 이루어졌는지 확인하고 필요한 경우 재설치를 고려해야 할 수 있습니다. 문제 해결 과정에서 Docker와 Docker Compose의 로그나 시스템의 로그를 확인하는 것도 추가적인 단서를 제공할 수 있습니다.

"relation "organizations" does not exist" 오류는 PostgreSQL 데이터베이스 내에 organizations 테이블이 존재하지 않음 오류

Redash가 처음 실행될 때 필요한 데이터베이스 마이그레이션을 완료하지 못한 것으로 보입니다. 이는 Redash의 데이터 모델이 데이터베이스에 성공적으로 생성되지 않았음을 의미하며, Redash가 정상적으로 작동하기 위해 필요한 초기 설정이 완료되지 않았다는 것을 의미합니다.

해결 방법

  1. 데이터베이스 마이그레이션 강제 실행: Redash는 도커 컨테이너가 시작될 때 필요한 데이터베이스 마이그레이션을 자동으로 수행합니다. 그러나 어떤 이유로든 이 과정이 제대로 완료되지 않았다면, 수동으로 마이그레이션을 강제로 실행해야 할 수 있습니다. 이를 위해 Redash 도커 컨테이너 내부에서 마이그레이션 관련 명령을 실행해야 할 수 있습니다.

  2. 컨테이너 내부에서 명령 실행: 다음은 Redash 서버 컨테이너 내부에서 데이터베이스 마이그레이션을 수행하는 명령의 예시입니다. redash_server_1 대신 실제 Redash 서버 컨테이너의 이름을 사용하세요.

    bashCopy code
    docker exec -it redash_server_1 bin/docker-entrypoint create_db
    
    

    이 명령은 Redash가 사용하는 데이터베이스 내에 필요한 모든 테이블과 관계를 생성합니다.

  3. PostgreSQL 컨테이너 로그 확인: PostgreSQL 컨테이너의 로그를 다시 확인하여, 마이그레이션 과정 중에 오류가 발생했는지 확인합니다. 오류 메시지는 마이그레이션 문제를 해결하는 데 도움이 될 수 있습니다.

  4. Docker Compose 프로젝트 재시작: 데이터베이스 마이그레이션 후, 변경 사항을 적용하기 위해 Docker Compose 프로젝트를 재시작할 필요가 있습니다.

    bashCopy code
    docker-compose down
    docker-compose up -d
    
    
  5. 환경 변수 확인: Redash가 올바른 PostgreSQL 인스턴스에 연결하고 있는지 확인합니다. REDASH_DATABASE_URL 환경 변수가 정확한 데이터베이스 정보를 포함하고 있는지 다시 한 번 확인하세요.

만약 이러한 단계를 수행한 후에도 문제가 지속된다면, 데이터베이스 설정이나 Redash의 설정 파일에서 다른 문제가 있을 수 있습니다. 추가적인 로그 메시지나 설정을 검토하여 문제의 원인을 좀 더 정확히 파악할 필요가 있습니다.

--
DB 업데이트
sudo docker-compose run --rm server manage db upgrade