CentOS 8.2 部署 Cassandra Web 可视化工具
Cassandra Web 简介
Cassandra Web 是一款基于 AngularJS 和服务器推送事件(Server-Sent Events)构建的 Apache Cassandra 集群管理界面。作为一款开源工具,其源代码托管于 GitHub 上,虽然功能较为精简,但足以通过单一网页实现对整个 Cassandra 集群的监控。
环境配置
- CPU:3.4 GHz (双核)
- 内存:2 GB
- 磁盘:20 GB
- 操作系统:CentOS 8.2
- 主机名:cassandra.liangglab.cn
- IP 地址:192.168.6.65/24
本教程假设您已事先在相同主机上部署了 Apache Cassandra 3.11.9,因此本文不再涉及 Cassandra 数据库本身的安装。
第1步:安装 Ruby 运行环境
Cassandra Web 依赖 Rubygems 包管理器,因此需要先安装 Ruby 及其开发包。
[root@cassandra ~]# dnf install -y rubygems ruby-devel
...
Complete!
[root@cassandra ~]#
第2步:安装编译工具链
为了后续通过 Rubygems 编译原生扩展,必须安装 make、gcc、gcc-c++ 和 redhat-rpm-config。
[root@cassandra ~]# dnf install -y make gcc gcc-c++ redhat-rpm-config
...
Complete!
[root@cassandra ~]#
第3步:安装 Cassandra Web 及 Bundler
通过 gem 命令直接安装 cassandra-web,并额外安装 Ruby Bundler。
[root@cassandra ~]# gem install cassandra-web
Fetching: lz4-ruby-0.3.3.gem (100%)
...
13 gems installed
[root@cassandra ~]# gem install bundler
Successfully installed bundler-2.2.2
1 gem installed
第4步:开放防火墙端口
Cassandra Web 默认监听 3000/tcp 端口,需要在 firewalld 中放行。
[root@cassandra ~]# firewall-cmd --permanent --add-port=3000/tcp
success
[root@cassandra ~]# firewall-cmd --reload
success
第5步:创建数据库专用账户
Cassandra Web 需要具备超级用户权限才能管理集群。通过 cqlsh 创建一个新的角色。
[root@cassandra ~]# cqlsh -u lianglab -p lianglab@123
cqlsh> CREATE ROLE cassweb WITH PASSWORD = 'Cassweb@123' AND SUPERUSER = true AND LOGIN = true;
cqlsh> exit
第6步:手动启动并验证
执行以下命令手动启动服务。若需连接远程 Cassandra 节点,请将 127.0.0.1 替换为目标地址。
[root@cassandra ~]# cassandra-web --hosts '127.0.0.1' --port '9042' --username 'cassweb' --password 'Cassweb@123'
I, [2020-12-21T19:49:50.969783 #58769] INFO -- : Establishing control connection
...
2020-12-21 19:49:51 +0800 Listening on 0.0.0.0:3000, CTRL+C to stop
在浏览器中访问 http://192.168.6.65:3000,即可看到 Cassandra Web 界面。该工具未内置用户认证,可通过 HTTP 基本认证等外部手段加强访问控制。
第7步:注册为 Systemd 服务
为便于自动启停,创建一个 Systemd 服务单元文件。
[root@cassandra ~]# vi /usr/lib/systemd/system/cassweb.service
写入以下内容:
[Unit]
Description=Cassandra Web
[Service]
Type=simple
ExecStart=cassandra-web --hosts '127.0.0.1' --port '9042' --username 'cassweb' --password 'Cassweb@123'
[Install]
WantedBy=multi-user.target
启用并启动服务:
[root@cassandra ~]# systemctl enable --now cassweb.service
Created symlink /etc/systemd/system/multi-user.target.wants/cassweb.service → /usr/lib/systemd/system/cassweb.service.
[root@cassandra ~]# netstat -antpl | grep 3000
tcp 0 0 0.0.0.0:3000 0.0.0.0:* LISTEN 59130/ruby
至此,Cassandra Web 已成功部署并作为系统服务运行。