CentOS 8.2上安裝Cassandra Web部署

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

什麼是Cassandra Web?


Cassandra Web是帶有AngularJS和服務器發送的事件的Apache Cassandra的Web界面。Cassandra Web是免費的開放源代碼,其源代碼可在GitHub上得到c++

Cassandra Web是功能有限的很是簡單的應用程序,可是它能夠經過單個Web界面實現監視整個Apache Cassandra集羣的目的。git

環境規格:


  • CPU:3.4 GHz(2核)angularjs

  • 內存:2 GBgithub

  • 儲存空間:20 GBweb

  • 做業系統:CentOS 8.2shell

  • 主機名: cassandra.liangglab.cn數據庫

  • IP地址:192.168.6.65/24apache

前面咱們已經安裝 CentOS 8.2上安裝Apache Cassandra 3.11.9 因此咱們如今不須要安裝Cassandra,咱們如今直接在這臺機器上安裝Cassandra Webjson

第一步: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上安裝完成,而且運行良好。

相關文章
相關標籤/搜索