如何二进制部署Metabase?

Linux基础

1 基础知识

1.1 Metabase的简介

– Metabase是一款简单、开源商业智能(BI)分析工具
– Metabase是一款支持数据快速分析和数据可视化的工具
– Metabase是支持可快速生成可视化数据视图并内嵌到应用程序中

1.2 Metabase的特点

– 支持快速配置(官方声明5分钟内可完成)
– 支持无需SQL语法基础即可通过界面交互完成数据分析任务
– 支持SQL编辑器定制更加复杂的查询
– 支持过滤器、自动刷新、全屏和自定义点击欣慰构建美观的交互仪表板
– 支持创建清理、注释和/或组合原始表的模型
– 支持定义规范的细分和指标供你的团队使用
– 支持使用仪表板订阅且按计划发送数据至Slack或电子邮件
– 支持设置警报并监视数据变更后通知
– 支持应用程序甚至在整个元数据库中嵌入图表或仪表板

1.3 支持的数据库

请参阅如下文档,
https://www.metabase.com/datasources/

1.4 安装要求

– 需要安装配置JRE环境(Java运行时环境)
– 需要Java11或更高版本

2 最佳实践

2.1 安装前的准备

2.1.1 确认openJDK安装

java -version

可见如下显示,

openjdk version "11.0.2" 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)

另外如果尚未软装,请参阅如下章节,

如何部署openJDK?

2.1.2 安装数据库

详细请参阅如下文档,

如何yum部署MySQL 8?

2.1.3 创建应用数据库

mysql -uroot -p
create database `metabase` default character set utf8mb4 collate utf8mb4_unicode_ci;
create user "metabase"@"localhost" identified by "metabasepwd";
grant all privileges on `metabase`.* to `metabase`@`localhost`;
flush privileges;

2.1.4 配置SELinux

setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

2.1.5 开方所需的端口

firewall-cmd --permanent --add-port 3000/tcp
firewall-cmd --reload
firewall-cmd --list-all

2.1.6 下载软件包

cd ~
wget https://downloads.metabase.com/v0.44.2/metabase.jar -O metabase-v0.44.2.jar

2.2 配置metabase

2.2.1 创建运行用户

groupadd -r metabase
useradd -r -s /bin/false -d /opt/metabase -g metabase metabase

2.2.2 部署应用程序

cd ~
mkdir -p /opt/metabase
mv metabase-v0.44.2.jar /opt/metabase/
chown metabase:metabase -R /opt/metabase/
chmod 775 -R /opt/metabase/

2.2.3 测试软件运行

cd /opt/metabase/
sudo -u metabase /usr/java/jdk-11.0.2/bin/java -DMB_DB_TYPE=mysql -DMB_DB_HOST=localhost -DMB_DB_DBNAME=metabase -DMB_DB_USER=metabase -DMB_DB_PASS=metabasepwd -jar /opt/metabase/metabase-v0.44.2.jar

需要注意的是,
– 以上通过“-D”参数向JAVA虚拟机传递以下环境变量,

MB_DB_TYPE=mysql
MB_DB_HOST=localhost
MB_DB_DBNAME=metabase
MB_DB_USER=metabase
MB_DB_PASS=metabasepwd

– 以上通过“-jar”参数向JAVA虚拟机传递执行的JAR包绝对路径

2.2.4 创建服务控制脚本

vim /etc/systemd/system/metabase.service

加入如下配置,

[Unit]
Description=Metabase server
After=syslog.target
After=network.target

[Service]
WorkingDirectory=/opt/metabase
ExecStart=/usr/java/jdk-11.0.2/bin/java -jar /opt/metabase/metabase-v0.44.2.jar
EnvironmentFile=/etc/default/metabase
User=metabase
Type=simple
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=metabase
SuccessExitStatus=143
TimeoutStopSec=120
Restart=always

[Install]
WantedBy=multi-user.target

根据以上脚本的需求,我们需要使用如下命令声明如下环境变量,

vim /etc/default/metabase

加入如下配置,

MB_JETTY_HOST=0.0.0.0
MB_JETTY_PORT=3000
MB_DB_TYPE=mysql
MB_DB_DBNAME=metabase
MB_DB_PORT=3306
MB_DB_USER=metabase
MB_DB_PASS=metabasepwd
MB_DB_HOST=localhost

基于数据库的账号密码保密需求,你需要使用如下命令修改文件权限,

chmod 640 /etc/default/metabase

文件创建后,你需要使用如下命令重载服务,

systemctl daemon-reload

然后,使用如下命令启动服务并设置自启动,

systemctl start metabase.service
systemctl enable metabase.service
systemctl status metabase.service

2.2.5 配置应用程序日志

vim /etc/rsyslog.d/metabase.conf

加入如下配置,

if $programname == 'metabase' then /var/log/metabase/metabase.log
& stop

根据以上配置的需求,我们使用如下命令创建日志目录,

mkdir -p /var/log/metabase/
chown metabase:metabase -R /var/log/metabase/
chmod 775 -R /var/log/metabase/

然后重启服务使配置生效,

systemctl restart rsyslog.service

产品介绍
============

官方GitHub
————
https://github.com/metabase/metabase

安装文档
———–
https://www.metabase.com/docs/latest/installation-and-operation/running-metabase-on-debian#create-an-unprivileged-user-to-run-metabase-and-give-him-acces-to-app-and-logs
https://www.metabase.com/docs/latest/installation-and-operation/migrating-from-h2
https://www.metabase.com/docs/latest/installation-and-operation/installing-metabase

环境变量的参考
————–
https://www.metabase.com/docs/latest/configuring-metabase/environment-variables

没有评论

发表评论

Linux基础
如何熟悉跨站点攻击CSRF?

1 CSRF的概念 – CSRF是英文“Cross-site request forge …

Linux基础
如何安装配置Oracle客户端?

1 前言 一个问题,一篇文章,一出故事。 笔者生产环境有一台服务器需要连接Oracle数据库,于是整 …

Linux基础
如何VIM替换Windows平台的换行符?

1 前言 一个问题,一篇文章,一出故事。 笔者打开一个之前在DOS平台编辑过的java配置文件发现没 …