1. 首页 > 软件安装教程 > 正文

Metabase安装配置-Metabase数据可视化安装配置_升级迁移详细过程

1. Metabase概述与环境规划

Metabase是一个开源的商业智能工具,提供简单易用的数据可视化和探索功能。Metabase支持多种数据源,包括MySQL、PostgreSQL、Oracle、SQL Server、MongoDB等,无需编写SQL即可创建图表和仪表板,是中小企业数据分析的理想选择。更多学习教程www.fgedu.net.cn

1.1 Metabase版本说明

Metabase目前主要版本为0.50.x系列,本教程以Metabase 0.50.10为例进行详细讲解。Metabase基于Java开发,运行在JVM上,部署简单,维护方便。

# 查看Metabase版本
$ java -jar metabase.jar version
Metabase v0.50.10

# 查看Java版本
$ java -version
openjdk version “11.0.22” 2024-01-16 LTS
OpenJDK Runtime Environment (build 11.0.22+7-LTS)
OpenJDK 64-Bit Server VM (build 11.0.22+7-LTS, mixed mode, sharing)

# 查看系统信息
$ cat /etc/os-release
NAME=”Oracle Linux Server”
VERSION=”8.9″
ID=”ol”
PRETTY_NAME=”Oracle Linux Server 8.9″

1.2 环境规划

本次安装环境规划如下:

Metabase服务器:
主机名:metabase01.fgedu.net.cn
IP地址:192.168.1.51
端口:3000(Web服务)

Metabase版本:0.50.10
Java版本:OpenJDK 11
数据库:PostgreSQL 15(元数据存储)
安装目录:/data/metabase
数据目录:/data/metabase/data
日志目录:/data/metabase/logs

数据源连接:
MySQL:192.168.1.51:3306
PostgreSQL:192.168.1.51:5432
MongoDB:192.168.1.51:27017

2. 硬件环境要求

Metabase对硬件资源要求适中,以下是生产环境的硬件配置建议。学习交流加群风哥微信: itpux-com

2.1 最低硬件要求

# 检查内存大小
# free -h
total used free shared buff/cache available
Mem: 16G 2.5G 12G 0.5G 1.2G 13G
Swap: 8G 0B 8G

# 检查磁盘空间
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 50G 12G 39G 24% /
/dev/sdb1 200G 20G 180G 10% /data

# 检查CPU核心数
# nproc
8

# 检查系统架构
# uname -m
x86_64

生产环境建议:最小内存4GB(测试环境),生产环境建议8GB-16GB。CPU建议4核心以上。磁盘空间建议50GB以上,用于存储元数据和日志。网络建议千兆网卡以上。

2.2 网络配置要求

# 检查网络配置
# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP
inet 192.168.1.51/24 brd 192.168.1.255 scope global eth0

# 检查主机名解析
# hostname -f
metabase01.fgedu.net.cn

# 配置/etc/hosts
# cat /etc/hosts
127.0.0.1 localhost
192.168.1.51 metabase01.fgedu.net.cn metabase01

3. 操作系统配置

Metabase运行在Linux操作系统上,需要对系统进行一系列配置。学习交流加群风哥QQ113257174

3.1 关闭防火墙和SELinux

# 检查SELinux状态
# getenforce
Disabled

# 关闭SELinux(如未关闭)
# vi /etc/selinux/config
SELINUX=disabled

# 检查防火墙状态
# systemctl status firewalld

# 关闭防火墙(生产环境建议开放特定端口)
# systemctl stop firewalld
# systemctl disable firewalld

# 或者开放Metabase所需端口
# firewall-cmd –permanent –add-port=3000/tcp
# firewall-cmd –reload

3.2 系统参数优化

# 配置内核参数
# vi /etc/sysctl.conf

# 添加以下参数
fs.file-max = 6815744
vm.swappiness = 10
net.core.somaxconn = 32768
net.ipv4.tcp_max_syn_backlog = 65536

# 使配置生效
# sysctl -p

# 配置文件描述符限制
# vi /etc/security/limits.conf

# 添加以下内容
* soft nofile 65536
* hard nofile 65536
* soft nproc 65536
* hard nproc 65536

# 验证配置
# ulimit -n
65536

4. Java环境配置

Metabase基于Java开发,需要配置合适的Java环境。更多学习教程公众号风哥教程itpux_com

4.1 安装OpenJDK 11

# 安装OpenJDK 11
# yum install -y java-11-openjdk java-11-openjdk-devel

# 验证Java版本
$ java -version
openjdk version “11.0.22” 2024-01-16 LTS
OpenJDK Runtime Environment (build 11.0.22+7-LTS)
OpenJDK 64-Bit Server VM (build 11.0.22+7-LTS, mixed mode, sharing)

# 配置JAVA_HOME环境变量
# vi /etc/profile.d/java.sh

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
export PATH=$JAVA_HOME/bin:$PATH

# 使环境变量生效
# source /etc/profile.d/java.sh

# 验证JAVA_HOME
$ echo $JAVA_HOME
/usr/lib/jvm/java-11-openjdk

4.2 配置JVM参数

# 创建Metabase目录
# mkdir -p /data/metabase/{data,logs,plugins}

# 配置JVM参数
# vi /etc/profile.d/metabase.sh

export MB_DB_TYPE=postgres
export MB_DB_DBNAME=metabase
export MB_DB_PORT=5432
export MB_DB_USER=metabase
export MB_DB_PASS=fgedu_metabase_2024
export MB_DB_HOST=localhost
export MB_JETTY_PORT=3000
export MB_JETTY_HOST=0.0.0.0
export MB_PLUGINS_DIR=/data/metabase/plugins
export JAVA_OPTS=”-Xms2g -Xmx4g -XX:+UseG1GC -XX:MaxGCPauseMillis=200″

# 使环境变量生效
# source /etc/profile.d/metabase.sh

4.3 配置PostgreSQL数据库

# 安装PostgreSQL
# yum install -y postgresql-server postgresql-contrib

# 初始化PostgreSQL数据库
# postgresql-setup –initdb

# 启动PostgreSQL服务
# systemctl start postgresql
# systemctl enable postgresql

# 创建Metabase数据库
# su – postgres
$ psql

postgres=# CREATE DATABASE metabase;
postgres=# CREATE USER metabase WITH PASSWORD ‘fgedu_metabase_2024’;
postgres=# GRANT ALL PRIVILEGES ON DATABASE metabase TO metabase;
postgres=# \q

# 验证数据库连接
$ psql -U metabase -d metabase -h localhost
Password for user metabase:
psql (15.5)
Type “help” for help.

metabase=> \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
———–+———-+———-+————-+————-+———————–
metabase | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =Tc/postgres +
| | | | | postgres=CTc/postgres+
| | | | | metabase=CTc/postgres
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(4 rows)

metabase=> \q

5. Metabase安装部署

完成环境配置后,开始安装Metabase服务。from:www.itpux.com

5.1 下载Metabase

# 下载Metabase
# cd /tmp
# wget https://downloads.metabase.com/v0.50.10/metabase.jar

# 输出示例:
–2024-04-05 10:00:00– https://downloads.metabase.com/v0.50.10/metabase.jar
Resolving downloads.metabase.com… 52.85.132.102
Connecting to downloads.metabase.com|52.85.132.102|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 256789012 (245M) [application/java-archive]
Saving to: ‘metabase.jar’

metabase.jar 100%[=================================================>] 244.86M 25.6MB/s in 9.6s

2024-04-05 10:00:10 (25.6 MB/s) – ‘metabase.jar’ saved [256789012/256789012]

# 移动到安装目录
# mv metabase.jar /data/metabase/

# 验证文件
$ ls -lh /data/metabase/metabase.jar
-rw-r–r– 1 root root 245M Apr 5 10:00 /data/metabase/metabase.jar

# 计算MD5校验
$ md5sum /data/metabase/metabase.jar
1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d /data/metabase/metabase.jar

5.2 首次启动初始化

# 设置环境变量
# source /etc/profile.d/metabase.sh

# 首次启动Metabase(前台运行,用于初始化)
# java -jar /data/metabase/metabase.jar

# 输出示例:
2024-04-05 10:00:00,000 INFO metabase.core :: Metabase v0.50.10 (1a2b3c4d)
2024-04-05 10:00:00,100 INFO metabase.core :: Checking for database migrations…
2024-04-05 10:00:00,200 INFO metabase.db :: Database migrations complete.
2024-04-05 10:00:00,300 INFO metabase.core :: Setting up Metabase…
2024-04-05 10:00:00,400 INFO metabase.core :: Metabase setup complete!
2024-04-05 10:00:00,500 INFO metabase.server :: Launching Jetty server on port 3000…
2024-04-05 10:00:01,000 INFO metabase.server :: Metabase is ready to use!

# 访问Web界面完成初始化配置
# 浏览器访问:http://192.168.1.51:3000

# 按照向导完成初始化:
# 1. 设置管理员账号
# 2. 配置数据源
# 3. 完成初始化

# 停止服务(Ctrl+C)

6. Metabase参数配置

Metabase的参数配置对性能和稳定性至关重要,需要根据实际环境进行调整。

6.1 配置数据库连接

# 配置环境变量
# vi /etc/profile.d/metabase.sh

# 数据库配置
export MB_DB_TYPE=postgres
export MB_DB_DBNAME=metabase
export MB_DB_PORT=5432
export MB_DB_USER=metabase
export MB_DB_PASS=fgedu_metabase_2024
export MB_DB_HOST=localhost

# 数据库连接池配置
export MB_DB_CONNECTION_URI=”postgresql://metabase:fgedu_metabase_2024@localhost:5432/metabase?sslmode=disable”

# Jetty服务器配置
export MB_JETTY_PORT=3000
export MB_JETTY_HOST=0.0.0.0

# 插件目录
export MB_PLUGINS_DIR=/data/metabase/plugins

# JVM参数配置
export JAVA_OPTS=”-Xms2g -Xmx4g \
-XX:+UseG1GC \
-XX:MaxGCPauseMillis=200 \
-XX:InitiatingHeapOccupancyPercent=35 \
-XX:+DisableExplicitGC \
-Djava.awt.headless=true \
-Dfile.encoding=UTF-8″

# 日志配置
export MB_LOG_LEVEL=INFO
export MB_SESSION_TIMEOUT=20160

# 邮件配置(可选)
export MB_SMTP_HOST=smtp.fgedu.net.cn
export MB_SMTP_PORT=587
export MB_SMTP_USERNAME=noreply@fgedu.net.cn
export MB_SMTP_PASSWORD=fgedu_smtp_2024
export MB_SMTP_FROM=noreply@fgedu.net.cn

# 使环境变量生效
# source /etc/profile.d/metabase.sh

6.2 配置系统服务

# 创建Metabase服务文件
# vi /etc/systemd/system/metabase.service

[Unit]
Description=Metabase Business Intelligence Server
After=network.target postgresql.service

[Service]
Type=simple
User=root
WorkingDirectory=/data/metabase
EnvironmentFile=/etc/profile.d/metabase.sh
ExecStart=/usr/bin/java $JAVA_OPTS -jar /data/metabase/metabase.jar
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
Restart=on-failure
RestartSec=10s

[Install]
WantedBy=multi-user.target

# 重载systemd配置
# systemctl daemon-reload

# 启动服务
# systemctl start metabase

# 设置开机自启
# systemctl enable metabase

# 检查服务状态
# systemctl status metabase

# 输出示例:
● metabase.service – Metabase Business Intelligence Server
Loaded: loaded (/etc/systemd/system/metabase.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2024-04-05 10:00:00 CST; 1min ago
Main PID: 12345 (java)
Tasks: 45 (limit: 49143)
Memory: 2.5G
CGroup: /system.slice/metabase.service
└─12345 /usr/bin/java -Xms2g -Xmx4g -XX:+UseG1GC -jar /data/metabase/metabase.jar

风哥提示:生产环境建议使用PostgreSQL作为Metabase的元数据存储数据库,相比默认的H2数据库更稳定可靠。JVM堆内存建议设置为物理内存的50%-70%。

7. Metabase服务启动

配置完成后,启动Metabase服务。

7.1 启动服务

# 启动Metabase服务
# systemctl start metabase

# 检查服务状态
# systemctl status metabase

# 输出示例:
● metabase.service – Metabase Business Intelligence Server
Loaded: loaded (/etc/systemd/system/metabase.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2024-04-05 10:00:00 CST; 1min ago
Main PID: 12345 (java)
Tasks: 45 (limit: 49143)
Memory: 2.5G

# 检查端口监听
$ netstat -tlnp | grep 3000
tcp6 0 0 :::3000 :::* LISTEN 12345/java

# 查看启动日志
$ tail -f /data/metabase/logs/metabase.log

# 输出示例:
2024-04-05 10:00:00,000 INFO metabase.core :: Metabase v0.50.10 (1a2b3c4d)
2024-04-05 10:00:00,100 INFO metabase.db :: Verifying database connection…
2024-04-05 10:00:00,200 INFO metabase.db :: Database connection verified.
2024-04-05 10:00:00,300 INFO metabase.db :: Running database migrations…
2024-04-05 10:00:00,400 INFO metabase.db :: Database migrations complete.
2024-04-05 10:00:00,500 INFO metabase.server :: Launching Jetty server on port 3000…
2024-04-05 10:00:01,000 INFO metabase.server :: Metabase is ready!

7.2 访问Web界面

# 访问Web界面
# 浏览器访问:http://192.168.1.51:3000

# 首次访问会进入初始化向导
# 步骤:
# 1. 欢迎页面 – 点击”Let’s get started”
# 2. 设置管理员账号
# – First name: Admin
# – Last name: User
# – Email: admin@fgedu.net.cn
# – Password: fgedu_admin_2024
# – Confirm password: fgedu_admin_2024
# 3. 添加数据源
# – 选择数据库类型(如PostgreSQL)
# – 填写连接信息
# – 测试连接
# 4. 完成初始化

# 登录后可以看到主界面
# 主界面包含:
# – Home: 首页
# – Browse: 浏览数据
# – Ask a question: 提问
# – New: 创建新的图表或仪表板
# – Settings: 设置

8. Metabase功能测试

完成安装后,需要进行功能测试验证Metabase是否正常工作。

8.1 创建测试数据源

# 通过Web界面创建数据源
# 步骤:
# 1. 点击右上角”Settings” -> “Admin settings”
# 2. 点击”Databases” -> “Add a database”
# 3. 选择数据库类型(如PostgreSQL)
# 4. 填写连接信息:
# – Name: fgedudb_postgres
# – Host: localhost
# – Port: 5432
# – Database name: fgedudb
# – Username: fgedu
# – Password: fgedu_postgres_2024
# 5. 点击”Save”保存

# 测试连接
# 点击”Test connection”按钮

# 输出示例:
Connection successful!

# 同步数据库元数据
# 点击”Sync database schema now”按钮

# 输出示例:
Sync started. This may take a few minutes.
Sync completed successfully.

8.2 创建测试问题

# 通过Web界面创建问题
# 步骤:
# 1. 点击右上角”Ask a question”
# 2. 选择”Simple question”
# 3. 选择数据源和数据表
# 4. 选择可视化类型(如表格、柱状图、折线图等)
# 5. 配置指标和维度
# 6. 点击”Visualize”生成图表
# 7. 点击”Save”保存问题

# 创建示例问题:
# 问题1:员工薪资统计
# – 选择表:fgedu_employees
# – 可视化:柱状图
# – X轴:department
# – Y轴:Sum of salary
# – 分组:department

# 问题2:销售趋势分析
# – 选择表:fgedu_sales
# – 可视化:折线图
# – X轴:sale_date
# – Y轴:Sum of sale_amount
# – 分组:region

# 查看创建的问题
# 点击”Browse” -> “Questions”

8.3 创建测试仪表板

# 通过Web界面创建仪表板
# 步骤:
# 1. 点击右上角”New” -> “Dashboard”
# 2. 输入仪表板名称:Sales Overview
# 3. 点击”Create”创建仪表板
# 4. 点击”Add a question”
# 5. 选择已创建的问题
# 6. 调整布局和大小
# 7. 点击”Save”保存仪表板

# 创建示例仪表板:
# 仪表板名称:fgedudb Sales Dashboard
# 包含问题:
# – 员工薪资统计
# – 销售趋势分析
# – 区域销售分布
# – 产品销售排名

# 查看创建的仪表板
# 点击”Browse” -> “Dashboards”

# 分享仪表板
# 点击仪表板右上角分享图标
# 可以生成公开链接或嵌入代码

9. 数据源配置

Metabase支持多种数据源,需要进行相应的配置。

9.1 配置MySQL数据源

# 通过Web界面添加MySQL数据源
# 步骤:
# 1. 点击”Settings” -> “Admin settings”
# 2. 点击”Databases” -> “Add a database”
# 3. 选择”MySQL”
# 4. 填写连接信息:
# – Name: fgedudb_mysql
# – Host: 192.168.1.51
# – Port: 3306
# – Database name: fgedudb
# – Username: fgedu
# – Password: fgedu_mysql_2024
# 5. 高级选项:
# – Use a secure connection (SSL): 可选
# – Additional JDBC connection string options: 可选
# 6. 点击”Save”保存

# 测试连接
# 点击”Test connection”按钮

# 输出示例:
Connection successful!

# 配置连接池
# 在高级选项中设置:
# – Connection pool size: 10
# – Connection timeout: 30000
# – Query timeout: 300000

9.2 配置MongoDB数据源

# 通过Web界面添加MongoDB数据源
# 步骤:
# 1. 点击”Settings” -> “Admin settings”
# 2. 点击”Databases” -> “Add a database”
# 3. 选择”MongoDB”
# 4. 填写连接信息:
# – Name: fgedudb_mongodb
# – Host: 192.168.1.51
# – Port: 27017
# – Database name: fgedudb
# – Username: fgedu
# – Password: fgedu_mongodb_2024
# – Authentication database: admin
# 5. 点击”Save”保存

# 测试连接
# 点击”Test connection”按钮

# 输出示例:
Connection successful!

# 配置MongoDB连接字符串
# mongodb://fgedu:fgedu_mongodb_2024@192.168.1.51:27017/fgedudb?authSource=admin

9.3 配置BigQuery数据源

# 通过Web界面添加BigQuery数据源
# 步骤:
# 1. 点击”Settings” -> “Admin settings”
# 2. 点击”Databases” -> “Add a database”
# 3. 选择”BigQuery”
# 4. 填写连接信息:
# – Name: fgedudb_bigquery
# – Project ID: fgedu-project
# – Dataset ID: fgedudb
# 5. 上传服务账号JSON密钥文件
# 6. 点击”Save”保存

# 测试连接
# 点击”Test connection”按钮

# 输出示例:
Connection successful!

生产环境建议:为不同数据源配置独立的连接池;启用SSL加密连接保障安全;定期同步数据库元数据;配置合理的查询超时时间;为不同用户配置不同的数据访问权限。

10. Metabase性能优化

Metabase性能优化涉及多个方面,包括JVM配置、数据库优化、缓存配置等。

10.1 JVM优化配置

# 修改JVM参数
# vi /etc/profile.d/metabase.sh

export JAVA_OPTS=”-Xms4g -Xmx8g \
-XX:+UseG1GC \
-XX:MaxGCPauseMillis=200 \
-XX:InitiatingHeapOccupancyPercent=35 \
-XX:+DisableExplicitGC \
-XX:+HeapDumpOnOutOfMemoryError \
-XX:HeapDumpPath=/data/metabase/logs/heap_dump.hprof \
-Djava.awt.headless=true \
-Dfile.encoding=UTF-8 \
-Duser.timezone=Asia/Shanghai \
-Djava.security.egd=file:/dev/./urandom”

# 重启服务使配置生效
# systemctl restart metabase

# 监控JVM内存使用
$ jstat -gc $(pgrep -f metabase.jar) 1000 5

# 输出示例:
S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT CGC CGCT GCT
1024.0 1024.0 0.0 512.0 81920.0 40960.0 819200.0 409600.0 51200.0 25600.0 5120.0 2560.0 10 0.500 0 0.000 5 0.250 0.750
1024.0 1024.0 0.0 512.0 81920.0 45056.0 819200.0 409600.0 51200.0 25600.0 5120.0 2560.0 10 0.500 0 0.000 5 0.250 0.750

10.2 数据库优化配置

# 优化PostgreSQL配置
# vi /var/lib/pgsql/data/postgresql.conf

# 内存配置
shared_buffers = 2GB
effective_cache_size = 6GB
work_mem = 64MB
maintenance_work_mem = 512MB

# 连接配置
max_connections = 200
superuser_reserved_connections = 5

# WAL配置
wal_buffers = 64MB
checkpoint_completion_target = 0.9

# 查询优化
random_page_cost = 1.1
effective_io_concurrency = 200

# 重启PostgreSQL
# systemctl restart postgresql

# 创建索引优化查询
# su – postgres
$ psql -d metabase

metabase=# CREATE INDEX idx_report_card_database_id ON report_card(database_id);
metabase=# CREATE INDEX idx_report_card_creator_id ON report_card(creator_id);
metabase=# CREATE INDEX idx_dashboard_created_at ON dashboard(created_at);

metabase=# \q

# 分析表统计信息
metabase=# ANALYZE report_card;
metabase=# ANALYZE dashboard;
metabase=# ANALYZE report_dashboardcard;

10.3 缓存优化配置

# 配置Metabase缓存
# vi /etc/profile.d/metabase.sh

# 查询缓存配置
export MB_QUERY_CACHE_MAX_BYTES=500000000
export MB_QUERY_CACHE_MAX_ENTRIES=1000
export MB_QUERY_CACHE_TTL=3600

# 会话缓存配置
export MB_SESSION_TIMEOUT=20160

# 重启服务使配置生效
# systemctl restart metabase

# 监控缓存效果
# 查看Metabase日志中的缓存命中情况
$ tail -f /data/metabase/logs/metabase.log | grep -i cache

# 输出示例:
2024-04-05 10:00:00,000 INFO metabase.query-processor :: Cache hit for query 12345
2024-04-05 10:00:05,000 INFO metabase.query-processor :: Cache miss for query 12346

风哥提示:JVM堆内存建议设置为物理内存的50%-70%;使用G1垃圾收集器可以获得更好的性能;启用查询缓存可以显著提升响应速度;定期分析数据库表统计信息优化查询计划。

11. Metabase升级迁移

Metabase升级需要谨慎操作,确保数据安全和业务连续性。

11.1 升级前准备

# 检查当前版本
$ java -jar /data/metabase/metabase.jar version
Metabase v0.49.10

# 备份数据库
# pg_dump -U metabase metabase > /backup/metabase_db_$(date +%Y%m%d).sql

# 输出示例:
Password:
pg_dump: reading extensions
pg_dump: identifying extension members
pg_dump: reading schemas
pg_dump: reading user-defined tables

# 备份配置文件
# cp /etc/profile.d/metabase.sh /backup/metabase_env_$(date +%Y%m%d).sh

# 备份插件目录
# tar -czf /backup/metabase_plugins_$(date +%Y%m%d).tar.gz /data/metabase/plugins

# 停止服务
# systemctl stop metabase

# 备份旧版本
# mv /data/metabase/metabase.jar /data/metabase/metabase_0.49.10.jar

11.2 执行升级操作

# 下载新版本
# cd /tmp
# wget https://downloads.metabase.com/v0.50.10/metabase.jar

# 移动到安装目录
# mv metabase.jar /data/metabase/

# 验证文件
$ ls -lh /data/metabase/metabase.jar
-rw-r–r– 1 root root 245M Apr 5 10:00 /data/metabase/metabase.jar

# 启动服务
# systemctl start metabase

# 查看升级日志
$ tail -f /data/metabase/logs/metabase.log

# 输出示例:
2024-04-05 10:00:00,000 INFO metabase.core :: Metabase v0.50.10 (1a2b3c4d)
2024-04-05 10:00:00,100 INFO metabase.db :: Checking for database migrations…
2024-04-05 10:00:00,200 INFO metabase.db :: Running migration: 20240401000000-add-new-fields.java
2024-04-05 10:00:00,300 INFO metabase.db :: Migration complete.
2024-04-05 10:00:00,400 INFO metabase.core :: Metabase upgrade complete!

11.3 升级后验证

# 验证版本
$ java -jar /data/metabase/metabase.jar version
Metabase v0.50.10

# 检查服务状态
# systemctl status metabase

# 输出示例:
● metabase.service – Metabase Business Intelligence Server
Loaded: loaded (/etc/systemd/system/metabase.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2024-04-05 10:00:00 CST; 1min ago

# 访问Web界面验证
# 浏览器访问:http://192.168.1.51:3000

# 验证数据源连接
# 在Web界面测试各数据源连接

# 验证仪表板
# 检查所有仪表板是否正常显示

# 验证问题
# 检查所有问题是否正常执行

# 检查日志
$ tail -100 /data/metabase/logs/metabase.log | grep -i error

12. Metabase监控运维

Metabase的监控运维包括服务状态监控、日志管理、性能监控等。

12.1 服务状态监控

# 检查Metabase服务状态
# systemctl status metabase

# 输出示例:
● metabase.service – Metabase Business Intelligence Server
Loaded: loaded (/etc/systemd/system/metabase.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2024-04-05 10:00:00 CST; 1h ago
Main PID: 12345 (java)
Tasks: 45 (limit: 49143)
Memory: 3.5G
CGroup: /system.slice/metabase.service
└─12345 /usr/bin/java -Xms4g -Xmx8g -jar /data/metabase/metabase.jar

# 检查端口监听
$ netstat -tlnp | grep 3000
tcp6 0 0 :::3000 :::* LISTEN 12345/java

# 检查进程状态
$ ps -ef | grep metabase.jar | grep -v grep
root 12345 1 5 10:00 ? 00:05:00 /usr/bin/java -Xms4g -Xmx8g -jar /data/metabase/metabase.jar

# 检查PostgreSQL连接
# su – postgres
$ psql -c “SELECT count(*) FROM pg_stat_activity WHERE datname=’metabase’;”

# 输出示例:
count
——-
15
(1 row)

12.2 日志管理

# 查看Metabase日志
$ tail -100 /data/metabase/logs/metabase.log

# 输出示例:
2024-04-05 10:00:00,000 INFO metabase.core :: Metabase v0.50.10
2024-04-05 10:00:05,000 INFO metabase.api.session :: User admin@fgedu.net.cn logged in
2024-04-05 10:00:10,000 INFO metabase.query-processor :: Query executed in 1.5s

# 查看错误日志
$ grep -i error /data/metabase/logs/metabase.log | tail -20

# 配置日志轮转
# vi /etc/logrotate.d/metabase

/data/metabase/logs/*.log {
daily
rotate 30
compress
delaycompress
missingok
notifempty
create 0644 root root
}

# 测试日志轮转配置
# logrotate -d /etc/logrotate.d/metabase

# 配置日志级别
# vi /etc/profile.d/metabase.sh

export MB_LOG_LEVEL=INFO
export MB_LOG_FORMAT=”[%date] %level %logger – %message%n”

12.3 性能监控

# 监控系统资源使用
$ top -p $(pgrep -f metabase.jar)

# 输出示例:
top – 10:00:00 up 1 day, 2:00, 2 users, load average: 0.50, 0.45, 0.40
Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie
%Cpu(s): 5.0 us, 2.0 sy, 0.0 ni, 92.0 id, 1.0 wa, 0.0 hi, 0.0 si
MiB Mem : 16384.0 total, 12000.0 free, 3500.0 used, 884.0 buff/cache
MiB Swap: 8192.0 total, 8192.0 free, 0.0 used. 12000.0 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
12345 root 20 0 8192000 3500000 250000 S 5.0 21.4 0:30.00 java

# 监控JVM内存使用
$ jmap -heap $(pgrep -f metabase.jar)

# 输出示例:
Heap Configuration:
MinHeapFreeRatio = 0
MaxHeapFreeRatio = 100
MaxHeapSize = 8589934592 (8192.0MB)
NewSize = 136314448 (130.0MB)
MaxNewSize = 2734642176 (2608.0MB)
OldSize = 545259520 (520.0MB)
NewRatio = 2
SurvivorRatio = 8
MetaspaceSize = 21807104 (20.796875MB)
CompressedClassSpaceSize = 1073741824 (1024.0MB)
MaxMetaspaceSize = 17592186044415 MB
G1HeapRegionSize = 10485760 (10.0MB)

Heap Usage:
G1 Heap:
regions = 8192
capacity = 8589934592 (8192.0MB)
used = 3500000000 (3337.86MB)
free = 5089934592 (4854.14MB)
40.79% used

# 创建监控脚本
# vi /backup/scripts/metabase_monitor.sh

#!/bin/bash

echo “=== Metabase Monitor ===”
echo “Date: $(date)”
echo “”

echo “=== Service Status ===”
systemctl is-active metabase
echo “”

echo “=== Memory Usage ===”
free -h
echo “”

echo “=== JVM Memory ===”
jmap -heap $(pgrep -f metabase.jar) | grep “used”
echo “”

echo “=== PostgreSQL Connections ===”
su – postgres -c “psql -c ‘SELECT count(*) FROM pg_stat_activity WHERE datname='”‘”‘metabase'”‘”‘;'”
echo “”

echo “=== Recent Errors ===”
grep -i error /data/metabase/logs/metabase.log | tail -5

生产环境建议:定期检查Metabase服务状态和日志;监控系统资源使用情况,及时扩容;配置日志轮转避免磁盘空间不足;建立完善的告警机制;定期备份数据库和配置文件;监控JVM内存使用,避免内存溢出。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息