在本文中,您將學習如何在CentOS 8上安裝Cassandra Web界面。html
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
咱們須要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 ~]#
要使用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界面。咱們正在執行如下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界面默認端口3000/tcp上運行。所以,咱們須要在Linux防火牆中容許3000端口流入。
[root@cassandra ~]# firewall-cmd --permanent --add-port=3000/tcp success [root@cassandra ~]# firewall-cmd --reload success
要訪問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界面。若是已在另外一個節點上運行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應用程序,咱們能夠建立一個簡單的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上安裝完成,而且運行良好。