1. 程式人生 > 實用技巧 >CentOS 8.2上安裝Cassandra Web部署

CentOS 8.2上安裝Cassandra Web部署

目錄

在本文中,您將學習如何在CentOS 8上安裝Cassandra Web介面。

什麼是Cassandra Web?


Cassandra Web是帶有AngularJS和伺服器傳送的事件的Apache Cassandra

的Web介面。Cassandra Web是免費的開放原始碼,其原始碼可在GitHub上獲得

Cassandra Web是功能有限的非常簡單的應用程式,但是它可以通過單個Web介面實現監視整個Apache Cassandra叢集的目的。

環境規格:


  • CPU:3.4 GHz(2核)

  • 記憶體:2 GB

  • 儲存空間:20 GB

  • 作業系統:CentOS 8.2

  • 主機名: cassandra.liangglab.cn

  • IP地址:192.168.6.65/24

前面我們已經安裝 CentOS 8.2上安裝Apache Cassandra 3.11.9 所以我們現在不需要安裝Cassandra,我們現在直接在這臺機器上安裝Cassandra Web

第一步:CentOS 8上安裝Ruby


我們需要Rubygems軟體包管理器才能在CentOS 8上安裝Cassandra Web,我們正在使用dnf命令 安裝Ruby 安裝相關軟體包。

[root@cassandra ~]# dnf install -y rubygems ruby-devel
Last metadata expiration check: 1:31:25 ago on Mon 21 Dec 2020 06:10:25 PM CST.
Dependencies resolved.
====================================================================================================================
 Package                     Architecture  Version                                           Repository        Size
====================================================================================================================
Installing:
 ruby-devel                  x86_64        2.5.5-105.module_el8.1.0+214+9be47fd7             AppStream        126 k
 rubygems                    noarch        2.7.6.2-105.module_el8.1.0+214+9be47fd7           AppStream        308 k
Installing dependencies:
 ruby                        x86_64        2.5.5-105.module_el8.1.0+214+9be47fd7             AppStream         86 k
 ruby-irb                    noarch        2.5.5-105.module_el8.1.0+214+9be47fd7             AppStream        102 k
 ruby-libs                   x86_64        2.5.5-105.module_el8.1.0+214+9be47fd7             AppStream        2.9 M
 rubygem-json                x86_64        2.1.0-105.module_el8.1.0+214+9be47fd7             AppStream         90 k
 rubygem-openssl             x86_64        2.1.2-105.module_el8.1.0+214+9be47fd7             AppStream        190 k
 rubygem-psych               x86_64        3.0.2-105.module_el8.1.0+214+9be47fd7             AppStream         95 k
Installing weak dependencies:
 rubygem-bigdecimal          x86_64        1.3.4-105.module_el8.1.0+214+9be47fd7             AppStream         97 k
 rubygem-did_you_mean        noarch        1.2.0-105.module_el8.1.0+214+9be47fd7             AppStream         90 k
 rubygem-io-console          x86_64        0.4.6-105.module_el8.1.0+214+9be47fd7             AppStream         66 k
 rubygem-rdoc                noarch        6.0.1-105.module_el8.1.0+214+9be47fd7             AppStream        486 k
Enabling module streams:
 ruby                                      2.5                                                                     

Transaction Summary
====================================================================================================================
Install  12 Packages

Total download size: 4.6 M
Installed size: 15 M
Downloading Packages:
(1/12): ruby-devel-2.5.5-105.module_el8.1.0+214+9be47fd7.x86_64.rpm                 6.3 MB/s | 126 kB     00:00    
(2/12): ruby-2.5.5-105.module_el8.1.0+214+9be47fd7.x86_64.rpm                       3.9 MB/s |  86 kB     00:00    
(3/12): ruby-irb-2.5.5-105.module_el8.1.0+214+9be47fd7.noarch.rpm                   4.4 MB/s | 102 kB     00:00    
(4/12): rubygem-bigdecimal-1.3.4-105.module_el8.1.0+214+9be47fd7.x86_64.rpm         5.2 MB/s |  97 kB     00:00    
(5/12): rubygem-did_you_mean-1.2.0-105.module_el8.1.0+214+9be47fd7.noarch.rpm       4.2 MB/s |  90 kB     00:00    
(6/12): rubygem-io-console-0.4.6-105.module_el8.1.0+214+9be47fd7.x86_64.rpm          14 MB/s |  66 kB     00:00    
(7/12): rubygem-json-2.1.0-105.module_el8.1.0+214+9be47fd7.x86_64.rpm                20 MB/s |  90 kB     00:00    
(8/12): rubygem-openssl-2.1.2-105.module_el8.1.0+214+9be47fd7.x86_64.rpm             21 MB/s | 190 kB     00:00    
(9/12): rubygem-psych-3.0.2-105.module_el8.1.0+214+9be47fd7.x86_64.rpm               10 MB/s |  95 kB     00:00    
(10/12): rubygems-2.7.6.2-105.module_el8.1.0+214+9be47fd7.noarch.rpm                 20 MB/s | 308 kB     00:00    
(11/12): rubygem-rdoc-6.0.1-105.module_el8.1.0+214+9be47fd7.noarch.rpm               19 MB/s | 486 kB     00:00    
(12/12): ruby-libs-2.5.5-105.module_el8.1.0+214+9be47fd7.x86_64.rpm                  38 MB/s | 2.9 MB     00:00    
--------------------------------------------------------------------------------------------------------------------
Total                                                                                47 MB/s | 4.6 MB     00:00     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                            1/1 
  Installing       : ruby-libs-2.5.5-105.module_el8.1.0+214+9be47fd7.x86_64                                    1/12 
  Installing       : ruby-irb-2.5.5-105.module_el8.1.0+214+9be47fd7.noarch                                     2/12 
  Installing       : rubygem-bigdecimal-1.3.4-105.module_el8.1.0+214+9be47fd7.x86_64                           3/12 
  Installing       : rubygem-did_you_mean-1.2.0-105.module_el8.1.0+214+9be47fd7.noarch                         4/12 
  Installing       : rubygem-io-console-0.4.6-105.module_el8.1.0+214+9be47fd7.x86_64                           5/12 
  Installing       : rubygem-json-2.1.0-105.module_el8.1.0+214+9be47fd7.x86_64                                 6/12 
  Installing       : rubygem-openssl-2.1.2-105.module_el8.1.0+214+9be47fd7.x86_64                              7/12 
  Installing       : rubygem-psych-3.0.2-105.module_el8.1.0+214+9be47fd7.x86_64                                8/12 
  Installing       : rubygem-rdoc-6.0.1-105.module_el8.1.0+214+9be47fd7.noarch                                 9/12 
  Installing       : rubygems-2.7.6.2-105.module_el8.1.0+214+9be47fd7.noarch                                  10/12 
  Installing       : ruby-2.5.5-105.module_el8.1.0+214+9be47fd7.x86_64                                        11/12 
  Installing       : ruby-devel-2.5.5-105.module_el8.1.0+214+9be47fd7.x86_64                                  12/12 
  Running scriptlet: ruby-devel-2.5.5-105.module_el8.1.0+214+9be47fd7.x86_64                                  12/12 
  Verifying        : ruby-2.5.5-105.module_el8.1.0+214+9be47fd7.x86_64                                         1/12 
  Verifying        : ruby-devel-2.5.5-105.module_el8.1.0+214+9be47fd7.x86_64                                   2/12 
  Verifying        : ruby-irb-2.5.5-105.module_el8.1.0+214+9be47fd7.noarch                                     3/12 
  Verifying        : ruby-libs-2.5.5-105.module_el8.1.0+214+9be47fd7.x86_64                                    4/12 
  Verifying        : rubygem-bigdecimal-1.3.4-105.module_el8.1.0+214+9be47fd7.x86_64                           5/12 
  Verifying        : rubygem-did_you_mean-1.2.0-105.module_el8.1.0+214+9be47fd7.noarch                         6/12 
  Verifying        : rubygem-io-console-0.4.6-105.module_el8.1.0+214+9be47fd7.x86_64                           7/12 
  Verifying        : rubygem-json-2.1.0-105.module_el8.1.0+214+9be47fd7.x86_64                                 8/12 
  Verifying        : rubygem-openssl-2.1.2-105.module_el8.1.0+214+9be47fd7.x86_64                              9/12 
  Verifying        : rubygem-psych-3.0.2-105.module_el8.1.0+214+9be47fd7.x86_64                               10/12 
  Verifying        : rubygem-rdoc-6.0.1-105.module_el8.1.0+214+9be47fd7.noarch                                11/12 
  Verifying        : rubygems-2.7.6.2-105.module_el8.1.0+214+9be47fd7.noarch                                  12/12 
Installed products updated.

Installed:
  ruby-2.5.5-105.module_el8.1.0+214+9be47fd7.x86_64                                                                 
  ruby-devel-2.5.5-105.module_el8.1.0+214+9be47fd7.x86_64                                                           
  ruby-irb-2.5.5-105.module_el8.1.0+214+9be47fd7.noarch                                                             
  ruby-libs-2.5.5-105.module_el8.1.0+214+9be47fd7.x86_64                                                            
  rubygem-bigdecimal-1.3.4-105.module_el8.1.0+214+9be47fd7.x86_64                                                   
  rubygem-did_you_mean-1.2.0-105.module_el8.1.0+214+9be47fd7.noarch                                                 
  rubygem-io-console-0.4.6-105.module_el8.1.0+214+9be47fd7.x86_64                                                   
  rubygem-json-2.1.0-105.module_el8.1.0+214+9be47fd7.x86_64                                                         
  rubygem-openssl-2.1.2-105.module_el8.1.0+214+9be47fd7.x86_64                                                      
  rubygem-psych-3.0.2-105.module_el8.1.0+214+9be47fd7.x86_64                                                        
  rubygem-rdoc-6.0.1-105.module_el8.1.0+214+9be47fd7.noarch                                                         
  rubygems-2.7.6.2-105.module_el8.1.0+214+9be47fd7.noarch                                                           

Complete!
[root@cassandra ~]# 

第二步:安裝Cassandra Web必備軟體包

要使用rubygems安裝Cassandra Web ,我們需要make和build軟體包。我們正在使用單個dnf命令安裝所有必需的軟體包。

[root@cassandra ~]# dnf install -y make gcc gcc-c++ redhat-rpm-config
Last metadata expiration check: 1:32:13 ago on Mon 21 Dec 2020 06:10:25 PM CST.
Package make-1:4.2.1-10.el8.x86_64 is already installed.
Package gcc-8.3.1-5.el8.0.2.x86_64 is already installed.
Package redhat-rpm-config-122-1.el8.noarch is already installed.
Dependencies resolved.
====================================================================================================================
 Package                        Architecture          Version                        Repository                Size
====================================================================================================================
Installing:
 gcc-c++                        x86_64                8.3.1-5.el8.0.2                AppStream                 12 M
Installing dependencies:
 libstdc++-devel                x86_64                8.3.1-5.el8.0.2                AppStream                2.0 M

Transaction Summary
====================================================================================================================
Install  2 Packages

Total download size: 14 M
Installed size: 42 M
Downloading Packages:
(1/2): libstdc++-devel-8.3.1-5.el8.0.2.x86_64.rpm                                    27 MB/s | 2.0 MB     00:00    
(2/2): gcc-c++-8.3.1-5.el8.0.2.x86_64.rpm                                            57 MB/s |  12 MB     00:00    
--------------------------------------------------------------------------------------------------------------------
Total                                                                                66 MB/s |  14 MB     00:00     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                            1/1 
  Installing       : libstdc++-devel-8.3.1-5.el8.0.2.x86_64                                                     1/2 
  Installing       : gcc-c++-8.3.1-5.el8.0.2.x86_64                                                             2/2 
  Running scriptlet: gcc-c++-8.3.1-5.el8.0.2.x86_64                                                             2/2 
  Verifying        : gcc-c++-8.3.1-5.el8.0.2.x86_64                                                             1/2 
  Verifying        : libstdc++-devel-8.3.1-5.el8.0.2.x86_64                                                     2/2 
Installed products updated.

Installed:
  gcc-c++-8.3.1-5.el8.0.2.x86_64                       libstdc++-devel-8.3.1-5.el8.0.2.x86_64                      

Complete!
[root@cassandra ~]# 

第三步:安裝Cassandra Web介面

我們準備安裝Cassandra Web介面。我們正在執行以下gem命令以將其安裝在我們的CentOS 8伺服器上。

[root@cassandra ~]# gem install cassandra-web
Fetching: lz4-ruby-0.3.3.gem (100%)
Building native extensions. This could take a while...
Successfully installed lz4-ruby-0.3.3
Fetching: rack-1.6.13.gem (100%)
Successfully installed rack-1.6.13
Fetching: rack-protection-1.5.5.gem (100%)
Successfully installed rack-protection-1.5.5
Fetching: tilt-2.0.10.gem (100%)
Successfully installed tilt-2.0.10
Fetching: sinatra-1.4.8.gem (100%)
Successfully installed sinatra-1.4.8
Fetching: rack-parser-0.7.0.gem (100%)
Successfully installed rack-parser-0.7.0
Fetching: rack-cors-0.4.1.gem (100%)
Successfully installed rack-cors-0.4.1
Fetching: eventmachine-1.2.7.gem (100%)
Building native extensions. This could take a while...
Successfully installed eventmachine-1.2.7
Fetching: daemons-1.3.1.gem (100%)
Successfully installed daemons-1.3.1
Fetching: thin-1.8.0.gem (100%)
Building native extensions. This could take a while...
Successfully installed thin-1.8.0
Fetching: ione-1.2.4.gem (100%)
Successfully installed ione-1.2.4
Fetching: cassandra-driver-3.2.5.gem (100%)
Building native extensions. This could take a while...
Successfully installed cassandra-driver-3.2.5
Fetching: cassandra-web-0.5.0.gem (100%)
Successfully installed cassandra-web-0.5.0
13 gems installed

Cassandra Web介面也需要Ruby Bundler gem。因此,我們現在也正在安裝它。

[root@cassandra ~]# gem install bundler
Fetching: bundler-2.2.2.gem (100%)
Successfully installed bundler-2.2.2
1 gem installed

第四步:Cassandra Web配置CentOS 8防火牆

Cassandra Web介面預設埠3000/tcp上執行。因此,我們需要在Linux防火牆中允許3000埠流入。

[root@cassandra ~]# firewall-cmd --permanent --add-port=3000/tcp
success
[root@cassandra ~]# firewall-cmd --reload
success

第五步:Cassandra Web建立資料庫使用者

要訪問Apache Cassandra節點,Cassandra Web介面需要一個Admin使用者。因此,我們為此建立一個數據庫使用者,如下所示。

[root@cassandra ~]# cqlsh -u lianglab -p lianglab@123
Connected to Test Cluster at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 3.11.9 | CQL spec 3.4.4 | Native protocol v4]
Use HELP for help.
lianglab@cqlsh> 
lianglab@cqlsh> CREATE ROLE cassweb WITH PASSWORD = 'Cassweb@123' AND SUPERUSER = true AND LOGIN = true;
lianglab@cqlsh> exit
[root@cassandra ~]# 

第六步:Cassandra Web介面啟動

通過使用以下命令語法來啟動Cassandra Web介面。如果已在另一個節點上執行Apache Cassandra資料庫,則必須根據您的環境從以下命令更改主機地址。

[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
I, [2020-12-21T19:49:51.089534 #58769]  INFO -- : Refreshing connected host's metadata
I, [2020-12-21T19:49:51.096746 #58769]  INFO -- : Completed refreshing connected host's metadata
I, [2020-12-21T19:49:51.098335 #58769]  INFO -- : Refreshing peers metadata
I, [2020-12-21T19:49:51.099710 #58769]  INFO -- : Completed refreshing peers metadata
I, [2020-12-21T19:49:51.099780 #58769]  INFO -- : Refreshing schema
I, [2020-12-21T19:49:51.122821 #58769]  INFO -- : Schema refreshed
I, [2020-12-21T19:49:51.122871 #58769]  INFO -- : Control connection established
I, [2020-12-21T19:49:51.123174 #58769]  INFO -- : Creating session
I, [2020-12-21T19:49:51.214760 #58769]  INFO -- : Session created
2020-12-21 19:49:51 +0800 Thin web server (v1.8.0 codename Possessed Pickle)
2020-12-21 19:49:51 +0800 Maximum connections set to 1024
2020-12-21 19:49:51 +0800 Listening on 0.0.0.0:3000, CTRL+C to stop

在客戶端的瀏覽器 開啟URL http://192.168.6.65:3000,Cassandra Web介面執行正常。

Cassandra Web不提供任何使用者身份驗證。但是,我們可以配置HTTP基本身份驗證來控制對Cassandra Web介面的訪問。

單擊system_schema

CTRL+C to 會停止3000埠監聽,需要建立一個Cassandra web服務

第七步:Cassandra Web建立系統服務

為了自動啟動Cassandra Web應用程式,我們可以建立一個簡單的Systemd服務。

為Cassandra Web建立一個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

啟動Cassandra Web服務。

[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          
[root@cassandra ~]#

Cassandra Web服務已啟動。

結論:

我們的Cassandra Web介面已經在CentOS 8上安裝完成,並且執行良好。