ラベル Metabase の投稿を表示しています。 すべての投稿を表示
ラベル Metabase の投稿を表示しています。 すべての投稿を表示

2022年4月13日水曜日

k3sで同一ポッド内にMariaDBとMetabaseを配置する

Metabaseはオープンソースのデータ解析・可視化ツールです。k3sで同一ポッド内にMariaDBとMetabaseを配置するには、以下の手順を実行します(metabase公式のイメージはamd64のみです)。

〇Metabaseの画面

実行手順

1. local永続ボリュームで使用するディレクトリの作成
以下のコマンドでlocal永続ボリュームで使用するディレクトリを作成します。
sudo mkdir -p /var/mymariadb

sudo mkdir -p /var/metabase

2. local永続ボリュームの作成
以下のコマンドでlocal永続ボリュームを作成します。
※MariaDBデータ用
cat << EOF > local-mariadb-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: local-mariadb-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
  - ReadWriteOnce
  storageClassName: local-storage
  local:
    path: /var/mymariadb
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - `hostname`
EOF
※`hostname`は今ログオンしているk3sがインストールされているホスト名になります。適宜変更してください。
sudo k3s kubectl apply -f ./local-mariadb-pv.yml

※Metabase用
cat << EOF > local-metabase-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: local-metabase-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
  - ReadWriteOnce
  storageClassName: local-storage
  local:
    path: /var/metabase
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - `hostname`
EOF
※`hostname`は今ログオンしているk3sがインストールされているホスト名になります。適宜変更してください。
sudo k3s kubectl apply -f ./local-metabase-pv.yml

3. 永続ボリューム要求の作成
以下のコマンドで永続ボリューム要求を作成します。
※MariaDBデータ用
cat << EOF > local-mariadb-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: local-mariadb-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-storage
  resources:
    requests:
      storage: 5Gi
  volumeName: local-mariadb-pv
EOF

sudo k3s kubectl apply -f ./local-mariadb-pvc.yml

※Metabase用
cat << EOF > local-metabase-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: local-metabase-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-storage
  resources:
    requests:
      storage: 5Gi
  volumeName: local-metabase-pv
EOF

sudo k3s kubectl apply -f ./local-metabase-pvc.yml

4. MetabaseとMariaDBのDeploymentの作成
以下のコマンドでMetabaseとMariaDBを含むポッドと作成したlocal永続ボリュームを使用するDeploymentを作成します。
cat << EOF > metabase-mariadb-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: metabase-mariadb-deployment
  labels:
    app: metabase-mariadb
spec:
  replicas: 1
  selector:
    matchLabels:
      app: metabase-mariadb
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: metabase-mariadb
    spec:
      containers:
      - name: mymariadb
        image: mariadb:10.7-focal
        args: ["--character-set-server=utf8mb4", "--collation-server=utf8mb4_unicode_ci"]
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: mymariadb
        - name: MYSQL_DATABASE
          value: metabase
        - name: MYSQL_USER
          value: metabase
        - name: MYSQL_PASSWORD
          value: metabase
        ports:
        - containerPort: 3306
        volumeMounts:
        - name: mariadb-data
          mountPath: /var/lib/mysql
      - name: metabase
        image: metabase/metabase
        env:
        - name: MB_DB_FILE
          value: /metabase-data/metabase.db
        - name: MB_DB_TYPE
          value: mysql
        - name: MB_DB_DBNAME
          value: metabase
        - name: MB_DB_PORT
          value: "3306"
        - name: MB_DB_USER
          value: metabase
        - name: MB_DB_PASS
          value: metabase
        - name: MB_DB_HOST
          value: 127.0.0.1
        ports:
        - containerPort: 3000
        volumeMounts:
        - name: metabase-data
          mountPath: /metabase-data
      volumes:
      - name: mariadb-data
        persistentVolumeClaim:
          claimName: local-mariadb-pvc
      - name: metabase-data
        persistentVolumeClaim:
          claimName: local-metabase-pvc
EOF

sudo k3s kubectl apply -f ./metabase-mariadb-deployment.yml

5. サービスの作成
以下のコマンドでサービスを作成します。
cat << EOF > metabase-service.yml
apiVersion: v1
kind: Service
metadata:
  name: metabase-service
spec:
  selector:
    app: metabase-mariadb
  type: LoadBalancer
  externalIPs:
  - xxx.xxx.xxx.xxx  # 外部からアクセスできるk3sをインストールしたホストのIPを設定します。
  ports:
  - name: http
    protocol: TCP
    port: 8080
    targetPort: 3000
  - name: db
    protocol: TCP
    port: 3306
    targetPort: 3306
EOF

sudo k3s kubectl apply -f ./metabase-service.yml

ブラウザからhttp://<ホスト名:8080 にアクセスします。

言語、ユーザアカウント情報を入力して、「3.データを追加する」で以下の様に入力します。
データベースのタイプ: MySQL
名前: mariadb
ホスト: 127.0.0.1
ポート: 3306
データベース名: metabase
ユーザ: metabase
パスワード: metabase

2022年4月12日火曜日

k3sで同一ポッド内にPostgreSQLとMetabaseを配置する

Metabaseはオープンソースのデータ解析・可視化ツールです。k3sで同一ポッド内にPostgreSQLとMetabaseを配置するには、以下の手順を実行します(metabase公式のイメージはamd64のみです)。

〇Metabaseの画面

実行手順

1. local永続ボリュームで使用するディレクトリの作成
以下のコマンドでlocal永続ボリュームで使用するディレクトリを作成します。
sudo mkdir -p /var/pgdata

sudo mkdir -p /var/metabase

2. local永続ボリュームの作成
以下のコマンドでlocal永続ボリュームを作成します。
※PostgreSQLデータ用
cat << EOF > local-pg-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: local-pg-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
  - ReadWriteOnce
  storageClassName: local-storage
  local:
    path: /var/pgdata
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - `hostname`
EOF
※`hostname`は今ログオンしているk3sがインストールされているホスト名になります。適宜変更してください。
sudo k3s kubectl apply -f ./local-pg-pv.yml

※Metabase用
cat << EOF > local-metabase-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: local-metabase-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
  - ReadWriteOnce
  storageClassName: local-storage
  local:
    path: /var/metabase
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - `hostname`
EOF
※`hostname`は今ログオンしているk3sがインストールされているホスト名になります。適宜変更してください。
sudo k3s kubectl apply -f ./local-metabase-pv.yml

3. 永続ボリューム要求の作成
以下のコマンドで永続ボリューム要求を作成します。
※PostgreSQL用
cat << EOF > local-pg-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: local-pg-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-storage
  resources:
    requests:
      storage: 5Gi
  volumeName: local-pg-pv
EOF

sudo k3s kubectl apply -f ./local-pg-pvc.yml

※Metabase用
cat << EOF > local-metabase-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: local-metabase-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-storage
  resources:
    requests:
      storage: 5Gi
  volumeName: local-metabase-pv
EOF

sudo k3s kubectl apply -f ./local-metabase-pvc.yml

4. MetabaseとPostgrelSQLのDeploymentの作成
以下のコマンドでMetabaseとPostgreSQLを含むポッドと作成したlocal永続ボリュームを使用するDeploymentを作成します。
cat << EOF > metabase-pg-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: metabase-pg-deployment
  labels:
    app: metabase-pg
spec:
  replicas: 1
  selector:
    matchLabels:
      app: metabase-pg
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: metabase-pg
    spec:
      containers:
      - name: mypg
        image: postgres:14-alpine
        env:
        - name: POSTGRES_DB
          value: metabase
        - name: POSTGRES_PASSWORD
          value: mypostgres
        ports:
        - containerPort: 5432
        volumeMounts:
        - name: pgdata
          mountPath: /var/lib/postgresql/data
      - name: metabase
        image: metabase/metabase
        env:
        - name: MB_DB_FILE
          value: /metabase-data/metabase.db
        - name: MB_DB_TYPE
          value: postgres
        - name: MB_DB_DBNAME
          value: metabase
        - name: MB_DB_PORT
          value: "5432"
        - name: MB_DB_USER
          value: postgres
        - name: MB_DB_PASS
          value: mypostgres
        - name: MB_DB_HOST
          value: 127.0.0.1
        ports:
        - containerPort: 3000
        volumeMounts:
        - name: metabase-data
          mountPath: /metabase-data
      volumes:
      - name: pgdata
        persistentVolumeClaim:
          claimName: local-pg-pvc
      - name: metabase-data
        persistentVolumeClaim:
          claimName: local-metabase-pvc
EOF

sudo k3s kubectl apply -f ./metabase-pg-deployment.yml

5. サービスの作成
以下のコマンドでサービスを作成します。
cat << EOF > metabase-service.yml
apiVersion: v1
kind: Service
metadata:
  name: metabase-service
spec:
  selector:
    app: metabase-pg
  type: LoadBalancer
  externalIPs:
  - xxx.xxx.xxx.xxx  # 外部からアクセスできるk3sをインストールしたホストのIPを設定します。
  ports:
  - name: http
    protocol: TCP
    port: 8080
    targetPort: 3000
  - name: db
    protocol: TCP
    port: 5432
    targetPort: 5432
EOF

sudo k3s kubectl apply -f ./metabase-service.yml

ブラウザからhttp://<ホスト名:8080 にアクセスします。

言語、ユーザアカウント情報を入力して、「3.データを追加する」で以下の様に入力します。
データベースのタイプ: PostgreSQL
名前: pg
ホスト: 127.0.0.1
ポート: 5432
データベース名: metabase
ユーザ: postgres
パスワード: mypostgres

2022年3月25日金曜日

Microk8sで同一ポッド内にPostgreSQLとMetabaseを配置する

Metabaseはオープンソースのデータ解析・可視化ツールです。Microk8sで同一ポッド内にPostgreSQLとMetabaseを配置するには、以下の手順を実行します。

〇Metabaseの画面

実行手順

1. local永続ボリュームで使用するディレクトリの作成
以下のコマンドでlocal永続ボリュームで使用するディレクトリを作成します。
sudo mkdir -p /var/pgdata

sudo mkdir -p /var/metabase

2. local永続ボリュームの作成
以下のコマンドでlocal永続ボリュームを作成します。
※PostgreSQLデータ用
cat << EOF > local-pg-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: local-pg-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
  - ReadWriteOnce
  storageClassName: local-storage
  local:
    path: /var/pgdata
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - `hostname`
EOF
※`hostname`は今ログオンしているMicrok8sがインストールされているホスト名になります。適宜変更してください。
microk8s kubectl apply -f ./local-pg-pv.yml

※Metabase用
cat << EOF > local-metabase-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: local-metabase-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
  - ReadWriteOnce
  storageClassName: local-storage
  local:
    path: /var/metabase
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - `hostname`
EOF
※`hostname`は今ログオンしているMicrok8sがインストールされているホスト名になります。適宜変更してください。
microk8s kubectl apply -f ./local-metabase-pv.yml

3. 永続ボリューム要求の作成
以下のコマンドで永続ボリューム要求を作成します。
※PostgreSQL用
cat << EOF > local-pg-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: local-pg-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-storage
  resources:
    requests:
      storage: 5Gi
  volumeName: local-pg-pv
EOF

microk8s kubectl apply -f ./local-pg-pvc.yml

※Metabase用
cat << EOF > local-metabase-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: local-metabase-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-storage
  resources:
    requests:
      storage: 5Gi
  volumeName: local-metabase-pv
EOF

microk8s kubectl apply -f ./local-metabase-pvc.yml

4. MetabaseとPostgrelSQLのDeploymentの作成
以下のコマンドでMetabaseとPostgreSQLを含むポッドと作成したlocal永続ボリュームを使用するDeploymentを作成します。
cat << EOF > metabase-pg-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: metabase-pg-deployment
  labels:
    app: metabase-pg
spec:
  replicas: 1
  selector:
    matchLabels:
      app: metabase-pg
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: metabase-pg
    spec:
      containers:
      - name: mypg
        image: postgres:14-alpine
        env:
        - name: POSTGRES_DB
          value: metabase
        - name: POSTGRES_PASSWORD
          value: mypostgres
        ports:
        - containerPort: 5432
        volumeMounts:
        - name: pgdata
          mountPath: /var/lib/postgresql/data
      - name: metabase
        image: metabase/metabase
        env:
        - name: MB_DB_FILE
          value: /metabase-data/metabase.db
        - name: MB_DB_TYPE
          value: postgres
        - name: MB_DB_DBNAME
          value: metabase
        - name: MB_DB_PORT
          value: "5432"
        - name: MB_DB_USER
          value: postgres
        - name: MB_DB_PASS
          value: mypostgres
        - name: MB_DB_HOST
          value: 127.0.0.1
        ports:
        - containerPort: 3000
        volumeMounts:
        - name: metabase-data
          mountPath: /metabase-data
      volumes:
      - name: pgdata
        persistentVolumeClaim:
          claimName: local-pg-pvc
      - name: metabase-data
        persistentVolumeClaim:
          claimName: local-metabase-pvc
EOF

microk8s kubectl apply -f ./metabase-pg-deployment.yml

5. サービスの作成
以下のコマンドでサービスを作成します。
cat << EOF > metabase-service.yml
apiVersion: v1
kind: Service
metadata:
  name: metabase-service
spec:
  selector:
    app: metabase-pg
  type: LoadBalancer
  externalIPs:
  - xxx.xxx.xxx.xxx # 外部からアクセスできるMicrok8sをインストールしたホストのIPを設定します。
  ports:
  - name: http
    protocol: TCP
    port: 8080
    targetPort: 3000
  - name: db
    protocol: TCP
    port: 5432
    targetPort: 5432
EOF

microk8s kubectl apply -f ./metabase-service.yml

ブラウザからhttp://<ホスト名:8080 にアクセスします。

言語、ユーザアカウント情報を入力して、「3.データを追加する」で以下の様に入力します。
データベースのタイプ: PostgreSQL
名前: pg
ホスト: localhost
ポート: 5432
データベース名: metabase
ユーザ: postgres
パスワード: mypostgres

〇Metabaseの画面

2022年3月24日木曜日

Microk8sで同一ポッド内にMariaDBとMetabaseを配置する

Metabaseはオープンソースのデータ解析・可視化ツールです。Microk8sで同一ポッド内にMariaDBとMetabaseを配置するには、以下の手順を実行します。

〇Metabaseの画面

実行手順

1. local永続ボリュームで使用するディレクトリの作成
以下のコマンドでlocal永続ボリュームで使用するディレクトリを作成します。
sudo mkdir -p /var/mymariadb

sudo mkdir -p /var/metabase

2. local永続ボリュームの作成
以下のコマンドでlocal永続ボリュームを作成します。
※MariaDBデータ用
cat << EOF > local-mariadb-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: local-mariadb-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
  - ReadWriteOnce
  storageClassName: local-storage
  local:
    path: /var/mymariadb
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - `hostname`
EOF
※`hostname`は今ログオンしているMicrok8sがインストールされているホスト名になります。適宜変更してください。
microk8s kubectl apply -f ./local-mariadb-pv.yml

※Metabase用
cat << EOF > local-metabase-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: local-metabase-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
  - ReadWriteOnce
  storageClassName: local-storage
  local:
    path: /var/metabase
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - `hostname`
EOF
※`hostname`は今ログオンしているMicrok8sがインストールされているホスト名になります。適宜変更してください。
microk8s kubectl apply -f ./local-metabase-pv.yml

3. 永続ボリューム要求の作成
以下のコマンドで永続ボリューム要求を作成します。
※MariaDBデータ用
cat << EOF > local-mariadb-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: local-mariadb-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-storage
  resources:
    requests:
      storage: 5Gi
  volumeName: local-mariadb-pv
EOF

microk8s kubectl apply -f ./local-mariadb-pvc.yml

※Metabase用
cat << EOF > local-metabase-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: local-metabase-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-storage
  resources:
    requests:
      storage: 5Gi
  volumeName: local-metabase-pv
EOF

microk8s kubectl apply -f ./local-metabase-pvc.yml

4. MetabaseとMariaDBのDeploymentの作成
以下のコマンドでMetabaseとMariaDBを含むポッドと作成したlocal永続ボリュームを使用するDeploymentを作成します。
cat << EOF > metabase-mariadb-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: metabase-mariadb-deployment
  labels:
    app: metabase-mariadb
spec:
  replicas: 1
  selector:
    matchLabels:
      app: metabase-mariadb
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: metabase-mariadb
    spec:
      containers:
      - name: mymariadb
        image: mariadb:10.7-focal
        args: ["--character-set-server=utf8mb4", "--collation-server=utf8mb4_unicode_ci"]
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: mymariadb
        - name: MYSQL_DATABASE
          value: metabase
        - name: MYSQL_USER
          value: metabase
        - name: MYSQL_PASSWORD
          value: metabase
        ports:
        - containerPort: 3306
        volumeMounts:
        - name: mariadb-data
          mountPath: /var/lib/mysql
      - name: metabase
        image: metabase/metabase
        env:
        - name: MB_DB_FILE
          value: /metabase-data/metabase.db
        - name: MB_DB_TYPE
          value: mysql
        - name: MB_DB_DBNAME
          value: metabase
        - name: MB_DB_PORT
          value: "3306"
        - name: MB_DB_USER
          value: metabase
        - name: MB_DB_PASS
          value: metabase
        - name: MB_DB_HOST
          value: 127.0.0.1
        ports:
        - containerPort: 3000
        volumeMounts:
        - name: metabase-data
          mountPath: /metabase-data
      volumes:
      - name: mariadb-data
        persistentVolumeClaim:
          claimName: local-mariadb-pvc
      - name: metabase-data
        persistentVolumeClaim:
          claimName: local-metabase-pvc
EOF

microk8s kubectl apply -f ./metabase-mariadb-deployment.yml

5. サービスの作成
以下のコマンドでサービスを作成します。
cat << EOF > metabase-service.yml
apiVersion: v1
kind: Service
metadata:
  name: metabase-service
spec:
  selector:
    app: metabase-mariadb
  type: LoadBalancer
  externalIPs:
  - xxx.xxx.xxx.xxx # 外部からアクセスできるMicrok8sをインストールしたホストのIPを設定します。
  ports:
  - name: http
    protocol: TCP
    port: 8080
    targetPort: 3000
  - name: db
    protocol: TCP
    port: 3306
    targetPort: 3306
EOF

microk8s kubectl apply -f ./metabase-service.yml
ブラウザからhttp://<ホスト名:8080 にアクセスします。

言語、ユーザアカウント情報を入力して、「3.データを追加する」で以下の様に入力します。
データベースのタイプ: MySQL
名前: mariadb
ホスト: 127.0.0.1
ポート: 3306
データベース名: metabase
ユーザ: metabase
パスワード: metabase

2022年2月27日日曜日

Minikubeで同一ポッド内にMariaDBとMetabaseを配置する

Metabaseはオープンソースのデータ解析・可視化ツールです。Minikubeで同一ポッド内にMariaDBとMetabaseを配置するには、以下の手順を実行します。

実行手順

1. local永続ボリュームで使用するディレクトリの作成
以下のコマンドでlocal永続ボリュームで使用するディレクトリを作成します。
minikube ssh

sudo mkdir -p /var/mymariadb

sudo mkdir -p /var/metabase

exit

2. local永続ボリュームの作成
以下のコマンドでlocal永続ボリュームを作成します。
※MariaDBデータ用
cat << EOF > local-mariadb-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: local-mariadb-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
  - ReadWriteOnce
  storageClassName: local-storage
  local:
    path: /var/mymariadb
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - minikube
EOF

kubectl apply -f ./local-mariadb-pv.yml

※Metabase用
cat << EOF > local-metabase-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: local-metabase-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
  - ReadWriteOnce
  storageClassName: local-storage
  local:
    path: /var/metabase
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - minikube
EOF

kubectl apply -f ./local-metabase-pv.yml

3. 永続ボリューム要求の作成
以下のコマンドで永続ボリューム要求を作成します。
※MariaDBデータ用
cat << EOF > local-mariadb-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: local-mariadb-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-storage
  resources:
    requests:
      storage: 5Gi
  volumeName: local-mariadb-pv
EOF

kubectl apply -f ./local-mariadb-pvc.yml

※Metabase用
cat << EOF > local-metabase-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: local-metabase-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-storage
  resources:
    requests:
      storage: 5Gi
  volumeName: local-metabase-pv
EOF

kubectl apply -f ./local-metabase-pvc.yml

4. MetabaseとMariaDBのDeploymentの作成
以下のコマンドでMetabaseとMariaDBを含むポッドと作成したlocal永続ボリュームを使用するDeploymentを作成します。
cat << EOF > metabase-mariadb-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: metabase-mariadb-deployment
  labels:
    app: metabase-mariadb
spec:
  replicas: 1
  selector:
    matchLabels:
      app: metabase-mariadb
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: metabase-mariadb
    spec:
      containers:
      - name: mymariadb
        image: mariadb:10.7-focal
        args: ["--character-set-server=utf8mb4", "--collation-server=utf8mb4_unicode_ci"]
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: mymariadb
        - name: MYSQL_DATABASE
          value: metabase
        - name: MYSQL_USER
          value: metabase
        - name: MYSQL_PASSWORD
          value: metabase
        ports:
        - containerPort: 3306
        volumeMounts:
        - name: mariadb-data
          mountPath: /var/lib/mysql
      - name: metabase
        image: metabase/metabase
        env:
        - name: MB_DB_FILE
          value: /metabase-data/metabase.db
        - name: MB_DB_TYPE
          value: mysql
        - name: MB_DB_DBNAME
          value: metabase
        - name: MB_DB_PORT
          value: "3306"
        - name: MB_DB_USER
          value: metabase
        - name: MB_DB_PASS
          value: metabase
        - name: MB_DB_HOST
          value: 127.0.0.1
        ports:
        - containerPort: 3000
        volumeMounts:
        - name: metabase-data
          mountPath: /metabase-data
      volumes:
      - name: mariadb-data
        persistentVolumeClaim:
          claimName: local-mariadb-pvc
      - name: metabase-data
        persistentVolumeClaim:
          claimName: local-metabase-pvc
EOF

kubectl apply -f ./metabase-mariadb-deployment.yml

5. サービスの作成
以下のコマンドでサービスを作成します。
cat << EOF > metabase-service.yml
apiVersion: v1
kind: Service
metadata:
  name: metabase-service
spec:
  selector:
    app: metabase-mariadb
  ports:
  - name: http
    protocol: TCP
    port: 8080
    targetPort: 3000
  - name: db
    protocol: TCP
    port: 3306
    targetPort: 3306
EOF

kubectl apply -f ./metabase-service.yml

6. Port-Fowardingで外部からアクセスできるようにする
kubectl port-forward --address 0.0.0.0 service/metabase-service 8080:8080 3306:3306
ブラウザからhttp://<ホスト名:8080 にアクセスします。

言語、ユーザアカウント情報を入力して、「3.データを追加する」で以下の様に入力します。
データベースのタイプ: MySQL
名前: mariadb
ホスト: localhost
ポート: 3306
データベース名: metabase
ユーザ: metabase
パスワード: metabase

〇Metabaseの画面

2022年2月26日土曜日

Minikubeで同一ポッド内にPostgreSQLとMetabaseを配置する

Metabaseはオープンソースのデータ解析・可視化ツールです。Minikubeで同一ポッド内にPostgreSQLとMetabaseを配置するには、以下の手順を実行します。

実行手順

1. local永続ボリュームで使用するディレクトリの作成
以下のコマンドでlocal永続ボリュームで使用するディレクトリを作成します。
minikube ssh

sudo mkdir -p /var/pgdata

sudo mkdir -p /var/metabase

exit

2. local永続ボリュームの作成
以下のコマンドでlocal永続ボリュームを作成します。
※PostgreSQLデータ用
cat << EOF > local-pg-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: local-pg-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
  - ReadWriteOnce
  storageClassName: local-storage
  local:
    path: /var/pgdata
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - minikube
EOF

kubectl apply -f ./local-pg-pv.yml

※Metabase用
cat << EOF > local-metabase-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: local-metabase-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
  - ReadWriteOnce
  storageClassName: local-storage
  local:
    path: /var/metabase
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - minikube
EOF

kubectl apply -f ./local-metabase-pv.yml

3. 永続ボリューム要求の作成
以下のコマンドで永続ボリューム要求を作成します。
※PostgreSQL用
cat << EOF > local-pg-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: local-pg-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-storage
  resources:
    requests:
      storage: 5Gi
  volumeName: local-pg-pv
EOF

kubectl apply -f ./local-pg-pvc.yml

※Metabase用
cat << EOF > local-metabase-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: local-metabase-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-storage
  resources:
    requests:
      storage: 5Gi
  volumeName: local-metabase-pv
EOF

kubectl apply -f ./local-metabase-pvc.yml

4. MetabaseとPostgrelSQLのDeploymentの作成
以下のコマンドでMetabaseとPostgreSQLを含むポッドと作成したlocal永続ボリュームを使用するDeploymentを作成します。
cat << EOF > metabase-pg-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: metabase-pg-deployment
  labels:
    app: metabase-pg
spec:
  replicas: 1
  selector:
    matchLabels:
      app: metabase-pg
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: metabase-pg
    spec:
      containers:
      - name: mypg
        image: postgres:14-alpine
        env:
        - name: POSTGRES_DB
          value: metabase
        - name: POSTGRES_PASSWORD
          value: mypostgres
        ports:
        - containerPort: 5432
        volumeMounts:
        - name: pgdata
          mountPath: /var/lib/postgresql/data
      - name: metabase
        image: metabase/metabase
        env:
        - name: MB_DB_FILE
          value: /metabase-data/metabase.db
        - name: MB_DB_TYPE
          value: postgres
        - name: MB_DB_DBNAME
          value: metabase
        - name: MB_DB_PORT
          value: "5432"
        - name: MB_DB_USER
          value: postgres
        - name: MB_DB_PASS
          value: mypostgres
        - name: MB_DB_HOST
          value: 127.0.0.1
        ports:
        - containerPort: 3000
        volumeMounts:
        - name: metabase-data
          mountPath: /metabase-data
      volumes:
      - name: pgdata
        persistentVolumeClaim:
          claimName: local-pg-pvc
      - name: metabase-data
        persistentVolumeClaim:
          claimName: local-metabase-pvc
EOF

kubectl apply -f ./metabase-pg-deployment.yml

5. サービスの作成
以下のコマンドでサービスを作成します。
cat << EOF > metabase-service.yml
apiVersion: v1
kind: Service
metadata:
  name: metabase-service
spec:
  selector:
    app: metabase-pg
  ports:
  - name: http
    protocol: TCP
    port: 8080
    targetPort: 3000
  - name: db
    protocol: TCP
    port: 5432
    targetPort: 5432
EOF

kubectl apply -f ./metabase-service.yml

6. Port-Fowardingで外部からアクセスできるようにする
kubectl port-forward --address 0.0.0.0 service/metabase-service 8080:8080 5432:5432
ブラウザからhttp://<ホスト名:8080 にアクセスします。

言語、ユーザアカウント情報を入力して、「3.データを追加する」で以下の様に入力します。
データベースのタイプ: PostgreSQL
名前: pg
ホスト: localhost
ポート: 5432
データベース名: metabase
ユーザ: postgres
パスワード: mypostgres

〇Metabaseの画面

2021年11月28日日曜日

DockerでMetabase、MariaDBをインストールしたコンテナを構築する

Metabaseはオープンソースのデータ解析・可視化ツールです。

○Metabaseの画面

構築方法

1.DockerとDocker Composeをインストールしていない場合は、以下の手順を実行します。
以下のページを参照してDockerとDocker Composeをインストールします。

Debian 11(Bullseye)にDocker/Docker Compose V2系をインストールする

Ubuntu 20.04にDocker/Docker Compose V2系をインストールする

2.Metabase、MariaDBをインストールしたコンテナを構築するために、以下のdocker-compose.ymlを保存します。。 docker-compose.yml
version: "3.9"
services:
  metabase:
    image: metabase/metabase
    container_name: "metabase"
    volumes:
      - "metabase-data:/metabase-data"
    environment:
      MB_DB_FILE: /metabase-data/metabase.db
      MB_DB_TYPE: mysql
      MB_DB_DBNAME: metabase
      MB_DB_PORT: 3306
      MB_DB_USER: metabase
      MB_DB_PASS: metabase
      MB_DB_HOST: db
    ports:
      - "3000:3000"
    depends_on:
      - db
  db:
    image: mariadb:latest
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --default-authentication-plugin=mysql_native_password
    ports:
      - "3306:3306"
    volumes:
      - "db-data:/var/lib/mysql"
    environment:
      MYSQL_ROOT_PASSWORD: metabase
      MYSQL_DATABASE: metabase
      MYSQL_USER: metabase
      MYSQL_PASSWORD: metabase
volumes:
  db-data:
    driver: local
  metabase-data:
    driver: local

3.サービスの実行
サービスを起動する場合は、以下のコマンドを実行します。
docker compose up -d

サービスを停止する場合は、以下のコマンドを実行します。
docker compose down

4.ブラウザからブラウザからhttp://<ホスト名またはホストのIP>:3000/にアクセスして、初期設定を以下のように入力します
言語、ユーザアカウント情報を入力して、データベース接続では、以下の様に入力します。
Database type: mysql
Host: db
Port: 3306
Database name: metabase
Database username: metabase
Database password: metabase
これ以降はお好みで選択します。

2021年11月27日土曜日

DockerでMetabase、PostgreSQL14をインストールしたコンテナを構築する

Metabaseはオープンソースのデータ解析・可視化ツールです。

○Metabaseの画面

構築方法

1.DockerとDocker Composeをインストールしていない場合は、以下の手順を実行します。
以下のページを参照してDockerとDocker Composeをインストールします。

Debian 11(Bullseye)にDocker/Docker Compose V2系をインストールする

Ubuntu 20.04にDocker/Docker Compose V2系をインストールする

2.Metabase、PostgreSQL14をインストールしたコンテナを構築するために、以下のdocker-compose.ymlを保存します。。
docker-compose.yml
version: "3.9"
services:
  metabase:
    image: metabase/metabase
    container_name: "metabase"
    volumes:
      - "metabase-data:/metabase-data"
    environment:
      MB_DB_FILE: /metabase-data/metabase.db
      MB_DB_TYPE: postgres
      MB_DB_DBNAME: metabase
      MB_DB_PORT: 5432
      MB_DB_USER: postgres
      MB_DB_PASS: metabase
      MB_DB_HOST: db
    ports:
      - "3000:3000"
    depends_on:
      - db
  db:
    image: postgres:14-alpine
    container_name: "metabase-db"
    ports:
      - "5432:5432"
    volumes:
      - "db-data:/var/lib/postgresql/data"
    environment:
        POSTGRES_DB: metabase
        POSTGRES_PASSWORD: metabase
volumes:
  db-data:
    driver: local
  metabase-data:
    driver: local

3.サービスの実行
サービスを起動する場合は、以下のコマンドを実行します。
docker compose up -d

サービスを停止する場合は、以下のコマンドを実行します。
docker compose down

4.ブラウザからブラウザからhttp://<ホスト名またはホストのIP>:3000/にアクセスして、初期設定を以下のように入力します
言語、ユーザアカウント情報を入力して、データベース接続では、以下の様に入力します。
Database type: PostgreSQL
Host: db
Port: 5432
Database name: metabase
Database username: postgres
Database password: metabase
これ以降はお好みで選択します。

2019年2月2日土曜日

DockerでMetabase、PostgreSQL11.1をインストールしたコンテナを構築する

Metabaseはオープンソースのデータ解析・可視化ツールです。

○Metabaseの画面


○構築方法
1.Metabase、PostgreSQL11.1をインストールしたコンテナを構築するには、以下のコマンドを実行します。
docker-compose up -d

docker-compose.yml
version: "2"
services:
  metabase:
    image: metabase/metabase
    container_name: "metabase"
    volumes:
      - "metabase-data:/metabase-data"
    environment:
      MB_DB_FILE: /metabase-data/metabase.db
      MB_DB_TYPE: postgres
      MB_DB_DBNAME: metabase
      MB_DB_PORT: 5432
      MB_DB_USER: postgres
      MB_DB_PASS: metabase
      MB_DB_HOST: db
    ports:
      - "3000:3000"
    depends_on:
      - db
  db:
    image: postgres:11.1-alpine
    container_name: "metabase-db"
    ports:
      - "5432:5432"
    volumes:
      - "db-data:/var/lib/postgresql/data"
    environment:
        POSTGRES_DB: metabase
        POSTGRES_PASSWORD: metabase
volumes:
  db-data:
    driver: local
  metabase-data:
    driver: local

2.ブラウザからブラウザからhttp://<DockerホストのIP>:3000/にアクセスします。
ユーザ情報を入力します。


3.データベースのタイプを選択します


4.接続データベース情報を以下のように入力します
Database type: PostgreSQL
Host: db
Port: 5432
Database name: metabase
Database username: postgres
Database password: metabase
これ以降はお好みで選択します。



○関連情報
・Metabaseに関する他の記事はこちらを参照してください。

2018年7月24日火曜日

PortainerでMetabaseとMySQLのスタックを作成する

Metabaseはオープンソースのデータ解析・可視化ツールです。

〇Metabaseの画面


〇構築方法
1.Portainer画面横のStacksをクリックして、Stacks list画面でAdd a stackボタンをクリックします


2.Create stack画面で、Nameフィールドにmetabase-mysql-stackを入力し、Web editorに以下を張り付ける
version: "3"
services:
  metabase:
    image: metabase/metabase
    container_name: "metabase"
    volumes:
      - "metabase-data:/metabase-data"
    environment:
      MB_DB_TYPE: mysql
      MB_DB_DBNAME: metabase
      MB_DB_PORT: 3306
      MB_DB_USER: root
      MB_DB_PASS: metabase
      MB_DB_HOST: metabasedb
    ports:
      - "3000:3000"
    depends_on:
      - metabasedb
  metabasedb:
    image: mysql:5.7
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    container_name: "metabase-db"
    ports:
      - "14006:3306"
    volumes:
      - "metabasedb-data:/var/lib/mysql"
    environment:
      MYSQL_DATABASE: metabase
      MYSQL_ROOT_PASSWORD: metabase
volumes:
  metabasedb-data:
    driver: local
  metabase-data:
    driver: local



貼り付け後、deploy stackボタンをクリックします。

6.ブラウザから以下のURLにアクセス
http://<Dockerホスト名またはIP>:3000/
しばらくすると管理者ユーザ登録画面となるので、管理者情報を入力して「Next」をクリックします


7.接続先データベース情報を入力します
Name: metabasedb
Host: metabasedb
Port: 3306
Database name: metabase
Database username: root
Database password: metabase


8.統計情報の送付可否設定を行います。これで、初期設定は完了します。



○関連情報
・Metabaseに関する他の記事はこちらを参照してください。

・Portainerに関する他の記事はこちらを参照してください。

2018年7月21日土曜日

DockerでMetabase、MongoDB、PostgreSQL10.4をインストールしたコンテナを構築する

Metabaseはオープンソースのデータ解析・可視化ツールです。

○Metabaseの画面


○構築方法
1.Metabase、MongoDB、PostgreSQL10.4をインストールしたコンテナを構築するには、以下のコマンドを実行します。
docker-compose up -d

docker-compose.yml
services:
  metabase:
    image: metabase/metabase
    container_name: "metabase"
    volumes:
      - "metabase-data:/metabase-data"
    environment:
      MB_DB_TYPE: postgres
      MB_DB_DBNAME: metabase
      MB_DB_PORT: 5432
      MB_DB_USER: postgres
      MB_DB_PASS: metabase
      MB_DB_HOST: db
    ports:
      - "3000:3000"
    depends_on:
      - db
      - mongodb
  db:
    image: postgres:10.4-alpine
    container_name: "metabase-db"
    ports:
      - "5432:5432"
    volumes:
      - "db-data:/var/lib/postgresql/data"
    environment:
        POSTGRES_DB: metabase
        POSTGRES_PASSWORD: metabase
  mongodb:
    image: mongo:3.7-jessie
    container_name: "mongodb"
    volumes:
      - "mongodb-data:/data/db"
      - "mongodb-configdb:/data/configdb"
    environment:
      MONGO_INITDB_ROOT_USERNAME: mongo
      MONGO_INITDB_ROOT_PASSWORD: mongo
    ports:
      - 27017:27017
volumes:
  mongodb-data:
    driver: local
  mongodb-configdb:
    driver: local
  db-data:
    driver: local
  metabase-data:
    driver: local

2.ブラウザからブラウザからhttp://<DockerホストのIP>:3000/にアクセスします。
ユーザ情報を入力します。


3.データベースのタイプを選択します


4.接続データベース情報を以下のように入力します
Database type: PostgreSQL
Host: db
Port: 5432
Database name: metabase
Database username: postgres
Database password: metabase
これ以降はお好みで選択します。


5.設定完了後、Admin PanelのAdd databaseをクリックして、mongodbを追加します。
Database type: MongoDB
Host: mongodb
Port: 27017
Database name: admin
Database username: mongo
Database password: mongo



○関連情報
・Metabaseに関する他の記事はこちらを参照してください。

2018年7月14日土曜日

DockerでMetabase、PostgreSQL10.4をインストールしたコンテナを構築する

Metabaseはオープンソースのデータ解析・可視化ツールです。

○Metabaseの画面


○構築方法
1.Metabase、PostgreSQL10.4をインストールしたコンテナを構築するには、以下のコマンドを実行します。
docker-compose up -d

docker-compose.yml
version: "2"
services:
  metabase:
    image: metabase/metabase
    container_name: "metabase"
    volumes:
      - "metabase-data:/metabase-data"
    environment:
      MB_DB_FILE: /metabase-data/metabase.db
      MB_DB_TYPE: postgres
      MB_DB_DBNAME: metabase
      MB_DB_PORT: 5432
      MB_DB_USER: postgres
      MB_DB_PASS: metabase
      MB_DB_HOST: db
    ports:
      - "3000:3000"
    depends_on:
      - db
  db:
    image: postgres:10.4-alpine
    container_name: "metabase-db"
    ports:
      - "5432:5432"
    volumes:
      - "db-data:/var/lib/postgresql/data"
    environment:
        POSTGRES_DB: metabase
        POSTGRES_PASSWORD: metabase
volumes:
  db-data:
    driver: local
  metabase-data:
    driver: local

2.ブラウザからブラウザからhttp://<DockerホストのIP>:3000/にアクセスします。
ユーザ情報を入力します。


3.データベースのタイプを選択します


4.接続データベース情報を以下のように入力します
Database type: PostgreSQL
Host: db
Port: 5432
Database name: metabase
Database username: postgres
Database password: metabase
これ以降はお好みで選択します。



○関連情報
・Metabaseに関する他の記事はこちらを参照してください。

2018年6月16日土曜日

DockerでMetabase、Percona Serverをインストールしたコンテナを構築する

Metabaseはオープンソースのデータ解析・可視化ツールです。

○Metabaseの画面


○構築方法
1.Metabase、Percona Serverをインストールしたコンテナを構築するには、以下のコマンドを実行します。
docker-compose up -d

docker-compose.yml
version: "2"
services:
  pydio:
    image: metabase/metabase
    container_name: "metabase"
    volumes:
      - "metabase-data:/metabase-data"
    environment:
      MB_DB_FILE: /metabase-data/metabase.db
      MB_DB_TYPE: mysql
      MB_DB_DBNAME: metabase
      MB_DB_PORT: 3306
      MB_DB_USER: root
      MB_DB_PASS: metabase
      MB_DB_HOST: db
    ports:
      - "3000:3000"
    depends_on:
      - db
  db:
    image: percona:5.7
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    container_name: "metabase-db"
    volumes:
      - "db-data:/var/lib/mysql"
    environment:
      MYSQL_DATABASE: metabase
      MYSQL_ROOT_PASSWORD: metabase
volumes:
  db-data:
    driver: local
  metabase-data:
    driver: local

2.ブラウザからブラウザからhttp://<ホストのIP>:3000/にアクセスします。
ユーザ情報を入力します。


3.データベースのタイプを選択します


4.接続データベース情報を以下のように入力します
Database type: mysql
Host: db
Port: 3306
Database name: metabase
Database username: root
Database password: metabase
これ以降はお好みで選択します。



○関連情報
・Metabaseに関する他の記事はこちらを参照してください。

2018年6月12日火曜日

LXDでMetabaseとPostgreSQLがインストールされたコンテナ(Ubuntu18.04)を構築する

Metabaseはオープンソースのデータ解析・可視化ツールです。

〇Metabaseの画面


〇コンテナの構築
1.LXDで以下のコマンドを実行して、PostgreSQLがインストールされたコンテナを構築します。
lxc init ubuntu:18.04 ub1804metabasepg
lxc config set ub1804metabasepg user.user-data - < config.yml
lxc start ub1804metabasepg

config.yml
#cloud-config

package_upgrade: true

hostname: ub1804metabasepg
manage_etc_hosts: true

write_files:
  - path: /etc/systemd/system/metabase.service
    content: |
      [Unit]
      Description=metabase
      [Service]
      Type=simple
      Environment="MB_JETTY_PORT=8080"
      Environment="MB_DB_TYPE=postgres"
      Environment="MB_DB_DBNAME=metabase"
      Environment="MB_DB_PORT=5432"
      Environment="MB_DB_USER=metabase"
      Environment="MB_DB_PASS=metabase"
      Environment="MB_DB_HOST=localhost"
      ExecStart=/usr/bin/java -Xmx2g -jar /opt/metabase/metabase.jar
      WorkingDirectory=/opt/metabase
      Restart=no
      [Install]
      WantedBy=multi-user.target

  - path: /tmp/init.sql
    content: |
      alter user postgres with password 'postgres';
      create user metabase with password 'metabase';
      grant all privileges on database metabase to metabase;

  - path: /tmp/sample.sql
    content: |
      create table messages (message_id integer not null, message varchar(100));
      insert into messages value (1, 'hello world.');
      insert into messages value (2, 'test message.');

runcmd:
  - 'apt-get update'
  - 'apt-get -y install language-pack-ja'
  - 'apt-get -y install postgresql-10'
  - "echo \"listen_addresses='*'\" >> /etc/postgresql/10/main/postgresql.conf"
  - 'echo "host    all         all         127.0.0.1/32          password" >> /etc/postgresql/10/main/pg_hba.conf'
  - 'echo "host    all         all         192.168.1.0/24          password" >> /etc/postgresql/10/main/pg_hba.conf'
  - 'echo "host    all         all         192.168.55.0/24          password" >> /etc/postgresql/10/main/pg_hba.conf'
  - 'su - postgres /bin/sh -c "export LC_ALL=ja_JP.UTF-8 && createdb -T template0 --locale=ja_JP.UTF-8 --encoding=UTF8 metabase"'
  - 'su - postgres /bin/sh -c "psql -f /tmp/init.sql"'
  - 'export PGPASSWORD=metabase && psql -U metabase -f sample.sql metabase'
  - 'echo "postgres:postgres" | chpasswd'
  - 'systemctl restart postgresql.service'
  - "apt-get -y install openjdk-8-jdk"
  - "wget http://downloads.metabase.com/v0.29.0/metabase.jar"
  - "mkdir -p /opt/metabase"
  - "mv metabase.jar /opt/metabase"
  - "systemctl enable metabase.service"
  - "systemctl start metabase.service"
final_message: "completed."

2.ブラウザからブラウザからhttp://<ホストのIP>:8080/にアクセスします。
ユーザ情報を入力します。


3.データベースのタイプを選択します


4.接続データベース情報を以下のように入力します
Database type: postgres
Host: localhost
Port: 5432
Database name: metabase
Database username: metabase
Database password: metabase
これ以降はお好みで選択します。


〇コンテナに入る
lxc exec ub1804metabasepg /bin/bash

〇ホストマシンの外部からコンテナにアクセスしたい場合
以下のコマンドを実行します。
PORT=8080 PUBLIC_IP=<ホストのIP> CONTAINER_IP=<コンテナのIP> sudo -E bash -c 'iptables -t nat -I PREROUTING -i eth0 -p TCP -d $PUBLIC_IP --dport $PORT -j DNAT --to-destination $CONTAINER_IP:$PORT -m comment --comment "container"'

〇コンテナのIPを調べる
コンテナのIPは以下のコマンドで調べることができます。
lxc list

〇コンテナの停止
lxc stop ub1804metabasepg

〇コンテナの削除
lxc delete ub1804metabasepg


○関連情報
・Metabaseに関する他の記事はこちらを参照してください。

2018年6月9日土曜日

DockerでMetabase、PostgreSQLをインストールしたコンテナを構築する

Metabaseはオープンソースのデータ解析・可視化ツールです。

○Metabaseの画面


○構築方法
1.Metabase、PostgreSQLをインストールしたコンテナを構築するには、以下のコマンドを実行します。
docker-compose up -d

docker-compose.yml
version: "2"
services:
  pydio:
    image: metabase/metabase
    container_name: "metabase"
    volumes:
      - "metabase-data:/metabase-data"
    environment:
      MB_DB_FILE: /metabase-data/metabase.db
      MB_DB_TYPE: postgres
      MB_DB_DBNAME: metabase
      MB_DB_PORT: 5432
      MB_DB_USER: postgres
      MB_DB_PASS: metabase
      MB_DB_HOST: db
    ports:
      - "3000:3000"
    depends_on:
      - db
  db:
    image: postgres:9.6-alpine
    container_name: "metabase-db"
    ports:
      - "5432:5432"
    volumes:
      - "db-data:/var/lib/postgresql/data"
    environment:
        POSTGRES_DB: metabase
        POSTGRES_PASSWORD: metabase
volumes:
  db-data:
    driver: local
  metabase-data:
    driver: local

2.ブラウザからブラウザからhttp://<ホストのIP>:3000/にアクセスします。
ユーザ情報を入力します。


3.データベースのタイプを選択します


4.接続データベース情報を以下のように入力します
Database type: PostgreSQL
Host: db
Port: 5432
Database name: metabase
Database username: postgres
Database password: metabase
これ以降はお好みで選択します。



○関連情報
・Metabaseに関する他の記事はこちらを参照してください。

2018年5月7日月曜日

LXDでMetabaseとMySQLがインストールされたコンテナ(Ubuntu18.04)を構築する

Metabaseはオープンソースのデータ解析・可視化ツールです。

〇Metabaseの画面


〇コンテナの構築
1.LXDで以下のコマンドを実行して、MySQLがインストールされたコンテナを構築します。
lxc init ubuntu:18.04 ub1804metabasemysql
lxc config set ub1804metabasemysql user.user-data - < config.yml
lxc start ub1804metabasemysql

config.yml
#cloud-config

package_upgrade: true

hostname: ub1804supersetmysql
manage_etc_hosts: true

write_files:
  - path: /etc/systemd/system/metabase.service
    content: |
      [Unit]
      Description=metabase
      [Service]
      Type=simple
      Environment="MB_JETTY_PORT=8080"
      Environment="MB_DB_TYPE=mysql"
      Environment="MB_DB_DBNAME=metabase"
      Environment="MB_DB_PORT=3306"
      Environment="MB_DB_USER=metabase"
      Environment="MB_DB_PASS=metabase"
      Environment="MB_DB_HOST=localhost"
      ExecStart=/usr/bin/java -Xmx2g -jar /opt/metabase/metabase.jar
      WorkingDirectory=/opt/metabase
      Restart=no
      [Install]
      WantedBy=multi-user.target

runcmd:
  - 'apt-get update'
  - 'wget https://dev.mysql.com/get/mysql-apt-config_0.8.9-1_all.deb'
  - 'echo mysql-apt-config mysql-apt-config/enable-repo select mysql-5.7-dmr | sudo debconf-set-selections'
  - 'export DEBIAN_FRONTEND=noninteractive && dpkg -i mysql-apt-config_0.8.9-1_all.deb'
  - 'apt-get update'
  - 'apt-get -y install mysql-server'
  - 'mysql -uroot -e "CREATE DATABASE metabase DEFAULT CHARACTER SET utf8;"'
  - "mysql -uroot -e \"CREATE USER metabase@localhost IDENTIFIED BY 'metabase';\""
  - "mysql -uroot -e \"GRANT ALL PRIVILEGES ON metabase.* TO 'metabase'@'localhost';\""
  - "mysql -uroot -e \"FLUSH PRIVILEGES;\""
  - 'mysql -umetabase -pmetabase test -e "create table messages (message_id integer not null, message varchar(100));"'
  - "mysql -umetabase -pmetabase test -e \"insert into messages value (1, 'hello world.');\""
  - "mysql -umetabase -pmetabase test -e \"insert into messages value (2, 'test message.');\""
  - "apt-get -y install openjdk-8-jdk"
  - "wget http://downloads.metabase.com/v0.29.0/metabase.jar"
  - "mkdir -p /opt/metabase"
  - "mv metabase.jar /opt/metabase"
  - "systemctl enable metabase.service"
  - "systemctl start metabase.service"
final_message: "completed."

2.ブラウザからブラウザからhttp://<ホストのIP>:8080/にアクセスします。
ユーザ情報を入力します。


3.データベースのタイプを選択します


4.接続データベース情報を以下のように入力します
Database type: mysql
Host: localhost
Port: 3306
Database name: metabase
Database username: metabase
Database password: metabase
これ以降はお好みで選択します。


〇コンテナに入る
lxc exec ub1804metabasemysql /bin/bash

〇ホストマシンの外部からコンテナにアクセスしたい場合
以下のコマンドを実行します。
PORT=8080 PUBLIC_IP=<ホストのIP> CONTAINER_IP=<コンテナのIP> sudo -E bash -c 'iptables -t nat -I PREROUTING -i eth0 -p TCP -d $PUBLIC_IP --dport $PORT -j DNAT --to-destination $CONTAINER_IP:$PORT -m comment --comment "container"'

〇コンテナのIPを調べる
コンテナのIPは以下のコマンドで調べることができます。
lxc list

〇コンテナの停止
lxc stop ub1804metabasemysql

〇コンテナの削除
lxc delete ub1804metabasemysql


○関連情報
・Metabaseに関する他の記事はこちらを参照してください。

2018年5月5日土曜日

DockerでMetabase、MySQLをインストールしたコンテナを構築する

Metabaseはオープンソースのデータ解析・可視化ツールです。

○Metabaseの画面


○構築方法
1.Metabase、MySQLをインストールしたコンテナを構築するには、以下のコマンドを実行します。
docker-compose up -d

docker-compose.yml
version: "2"
services:
  pydio:
    image: metabase/metabase
    container_name: "metabase"
    volumes:
      - "metabase-data:/metabase-data"
    environment:
      MB_DB_FILE: /metabase-data/metabase.db
      MB_DB_TYPE: mysql
      MB_DB_DBNAME: metabase
      MB_DB_PORT: 3306
      MB_DB_USER: root
      MB_DB_PASS: metabase
      MB_DB_HOST: db
    ports:
      - "3000:3000"
    depends_on:
      - db
  db:
    image: mysql:5.7
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    container_name: "metabase-db"
    volumes:
      - "db-data:/var/lib/mysql"
    environment:
      MYSQL_DATABASE: metabase
      MYSQL_ROOT_PASSWORD: metabase
volumes:
  db-data:
    driver: local
  metabase-data:
    driver: local

2.ブラウザからブラウザからhttp://<ホストのIP>:3000/にアクセスします。
ユーザ情報を入力します。


3.データベースのタイプを選択します


4.接続データベース情報を以下のように入力します
Database type: mysql
Host: db
Port: 3306
Database name: metabase
Database username: root
Database password: metabase
これ以降はお好みで選択します。



○関連情報
・Metabaseに関する他の記事はこちらを参照してください。

2018年3月8日木曜日

VagrantでMetabaseとMySQLがインストールされた仮想マシン(Ubuntu16.04)を構築する

Metabaseはオープンソースのデータ解析・可視化ツールです。
以下のVagrantfileを使用して、MetabaseとMySQLをインストールした仮想マシンを構築する事ができます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-16.04"
  config.vm.hostname = "ub1604metabasemysql"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "ub1604metabasemysql"
     vbox.cpus = 2
     vbox.memory = 2048
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
config.vm.network "private_network", ip: "192.168.55.105", :netmask => "255.255.255.0"
config.vm.network "public_network", ip:"192.168.1.105", :netmask => "255.255.255.0"
  config.vm.provision "shell", inline: <<-SHELL
# update packages
sed -i.bak -e "s#http://us.archive.ubuntu.com/ubuntu/#http://ftp.riken.jp/pub/Linux/ubuntu/#g" /etc/apt/sources.list
apt-get update
#DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade


# install mysql
echo "mysql-server-5.7 mysql-server/root_password password root" | sudo debconf-set-selections
echo "mysql-server-5.7 mysql-server/root_password_again password root" | sudo debconf-set-selections
apt-get -y install mysql-server-5.7
mysql -uroot -proot -e "CREATE DATABASE metabase DEFAULT CHARACTER SET utf8mb4;"
mysql -uroot -proot -e "CREATE USER metabase@localhost IDENTIFIED BY 'metabase';"
mysql -uroot -proot -e "GRANT ALL PRIVILEGES ON metabase.* TO 'metabase'@'localhost';"
mysql -uroot -proot -e "FLUSH PRIVILEGES;"


# install openjdk
apt-get -y install openjdk-8-jdk

# install metabase
wget http://downloads.metabase.com/v0.28.1/metabase.jar
mkdir -p /opt/metabase
cp metabase.jar /opt/metabase

cat << EOF > /etc/systemd/system/metabase.service
[Unit]
Description=metabase

[Service]
Type=simple
Environment="MB_JETTY_PORT=8080"
Environment="MB_DB_TYPE=mysql"
Environment="MB_DB_DBNAME=metabase"
Environment="MB_DB_PORT=3306"
Environment="MB_DB_USER=metabase"
Environment="MB_DB_PASS=metabase"
Environment="MB_DB_HOST=localhost"
ExecStart=/usr/bin/java -Xmx2g -jar /opt/metabase/metabase.jar
WorkingDirectory=/opt/metabase
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF

systemctl enable metabase.service
systemctl start metabase.service

echo 'access http://192.168.55.105:8080'
echo 'user: metabase, password: metabase'
SHELL
end

〇Metabaseの画面


○関連情報
・Metabaseに関する他の記事はこちらを参照してください。

2017年9月24日日曜日

VagrantでMetabaseとPostgreSQLがインストールされた仮想マシン(Ubuntu16.04)を構築する

MetabaseとPostgreSQLがインストールされた仮想マシンを以下のVagrantfileを使用して構築する事ができます。
構築後、http://192.168.55.105:8080にアクセスします。

Vagrantfile

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-16.04"
  config.vm.hostname = "ub1604metabase"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "ub1604metabase"
     vbox.cpus = 2
     vbox.memory = 2048
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
  config.vm.network "private_network", ip: "192.168.55.105", :netmask => "255.255.255.0"
  config.vm.network "public_network", ip:"192.168.1.105", :netmask => "255.255.255.0"
  config.vm.provision "shell", inline: <<-SHELL
# update packages
apt-get update
#DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade

# install postgresql
apt-get -y install postgresql 
echo "listen_addresses='*'" >> /etc/postgresql/9.5/main/postgresql.conf
echo "standard_conforming_strings=off" >> /etc/postgresql/9.5/main/postgresql.conf

#sed -i 's/host.*all.*all.*127.0.0.1/#host    all             all             127.0.0.1/g' /etc/postgresql/9.5/main/pg_hba.conf

echo "host    all         all         127.0.0.1/32          password" >> /etc/postgresql/9.5/main/pg_hba.conf
echo "host    all         all         192.168.1.0/24          password" >> /etc/postgresql/9.5/main/pg_hba.conf
echo "host    all         all         192.168.55.0/24          password" >> /etc/postgresql/9.5/main/pg_hba.conf

su - postgres << EOF
createdb metabase
psql -c "
alter user postgres with password 'postgres';
create user metabase with password 'metabase';
grant all privileges on database metabase to metabase;
"
EOF
echo "postgres:postgres" | chpasswd
systemctl restart postgresql.service
systemctl enable postgresql.service

# install openjdk
apt-get -y install openjdk-8-jdk

# install metabase
wget http://downloads.metabase.com/v0.25.2/metabase.jar
mkdir -p /opt/metabase
cp metabase.jar /opt/metabase

cat << EOF > /etc/systemd/system/metabase.service
[Unit]
Description=metabase

[Service]
Type=simple
Environment="MB_JETTY_PORT=8080"
Environment="MB_DB_TYPE=postgres"
Environment="MB_DB_DBNAME=metabase"
Environment="MB_DB_PORT=5432"
Environment="MB_DB_USER=metabase"
Environment="MB_DB_PASS=metabase"
Environment="MB_DB_HOST=localhost"
ExecStart=/usr/bin/java -Xmx2g -jar /opt/metabase/metabase.jar
WorkingDirectory=/opt/metabase
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF

systemctl enable metabase.service
systemctl start metabase.service

echo 'access http://192.168.55.105:8080'
echo 'user: metabase, password: metabase'
SHELL
end


○関連情報
・Metabaseに関する他の記事はこちらを参照してください。