kusanagi status で KUSANAGI の実行環境の状態を確認する

片倉洋一

KUSANAGI9の運用に役立つ、コマンドラインで使用可能なkusanagi statusコマンドを紹介しています。このコマンドはKUSANAGIの実行環境の状態を即座に参照可能であり、サーバーの初動対応や問い合わせ情報の提供、ミドルウェアの脆弱性チェックなど、様々なシーンで活用できます。さらに、コマンドにプロファイル名を指定することでそれぞれのプロファイルの状態も確認可能です。このツールを活用し、円滑なKUSANAGI環境の運用を支えてください。

KUSANAGI 9 にはコマンドラインから使用できるコマンドがいくつもあります。
以前紹介した migrate もその1つです。
便利なコマンドが色々あるので、また今回も紹介しようと思います。

今回紹介するのは kusanagi status コマンドです。

kusanagi status は KUSANAGI の実行環境の状態を簡単に参照できるコマンドです。
実際にどのような状況で使用するかですが、例えば

  • サーバーが正しく動いていないときの初動対応
  • KUSANAGIユーザーグループへ問い合わせるときの情報出し
  • ミドルウェアに脆弱性があった場合のバージョン確認

などがあげられます。
それでは、実際に kusanagi status を実行した結果を見ていきましょう。

kusanagi status の実行

KUSANAGI の実行環境の状態によって内容が変わります。
まずは、まだ KUSANAGI の VM を立てただけの状態で実行してみます。

# kusanagi status
KUSANAGI Version 9.2.17-1.el8
azure

*** (inactive) nginx :  ***


*** (inactive) httpd : httpd ***


*** (inactive) php :  ***


*** (inactive) mariadb :  ***


*** (inactive) psql :  ***


*** (inactive) pgpool-II :  ***


*** python ***
Python 3.9.15

*** ruby ***
ruby is not installed.

*** Cache status ***

*** WAF ***
off

*** SELinux ***
off

status completed.
#

出力された内容は、最初に KUSANAGI のバージョンとクラウド名、 inactive とミドルウェアの名前が並んで……。
表示される内容の詳細は最後に記載してありますのでそちらを参照していただくとして、重要なのはまだミドルウェアがほとんどインストールされていないという点です。
VM を立てただけの状態でインストールされているのは Python3.9 だけです。

プロビジョン後に kusanagi status の実行

では、この状態で kusanagi init -> provision で WordPress 環境をプロビジョンして、 kusanagi status を実行してみます。

# kusanagi init --passwd (kusanagiユーザーパスワード) --nophrase --dbrootpass (DB rootパスワード)
Generating SSL SESS ticket key for security
Generating 2048bit DHE key for security
(中略)
init completed.
# kusanagi provision --wplang ja --wp --fqdn example-wp.com --noemail --dbname wp_test --dbuser wp_user --dbpass (DBパスワード) wp_test
Target directory is /home/kusanagi/wp_test.
(中略)
provison completed.
# kusanagi status
KUSANAGI Version 9.2.17-1.el8
azure

*** (active) nginx : nginx123 ***
* nginx.service - The NGINX HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2023-02-03 14:28:42 JST; 10min ago

*** (inactive) httpd : httpd ***
* httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: inactive (dead)

*** (active) php : php80 ***
* php-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2023-02-03 14:29:31 JST; 9min ago

*** (active) mariadb : mariadb10.5 ***
* mariadb.service - MariaDB 10.5.18 database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2023-02-03 14:30:35 JST; 8min ago

*** (inactive) psql :  ***


*** (inactive) pgpool-II :  ***


*** python ***
Python 3.9.16

*** ruby ***
ruby is not installed.

*** Cache status ***

*** WAF ***
off

*** SELinux ***
off

status completed.
[root@kusanagi9-status-test ~]#

表示内容がかなり増えました。
最初の KUSANAGI のバージョンとクラウド名は変わりませんが、その後のミドルウェアの名前が並んでいた部分が active に変わったり、ミドルウェアのバージョンやサービスの名前が表示されるようになりました。
これは、init 時に指定したミドルウェアがインストールされ、そのサービスが起動したということになります。
KUSANAGI Version 9.2.17-1.el8 では init コマンド実行時にミドルウェアのオプションを指定しないと、自動的に以下のミドルウェアがインストールされます。

  • Nginx 1.23
  • PHP 8.0
  • MariaDB 10.5

上の表示内容を再度確認します。

*** (active) nginx : nginx123 ***
* nginx.service - The NGINX HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2023-02-03 14:28:42 JST; 10min ago

これは Nginx1.23 がインストールされ、サービスが起動(active)したということになります。
しかし、provision コマンド実行時に指定した FQDN などの情報はありません。
今度はプロファイルのディレクトリに移動して、同じように kusanagi status を実行してみます。

# cd /home/kusanagi/wp_test/
# kusanagi status
Profile: wp_test
FQDN: example-wp.com
Type: wp
KUSANAGI Version 9.2.17-1.el8
azure

*** (active) nginx : nginx123 ***
* nginx.service - The NGINX HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2023-02-03 14:28:42 JST; 15min ago

*** (inactive) httpd : httpd ***
* httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: inactive (dead)

*** (active) php : php80 ***
* php-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2023-02-03 14:29:31 JST; 15min ago

*** (active) mariadb : mariadb10.5 ***
* mariadb.service - MariaDB 10.5.18 database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2023-02-03 14:30:35 JST; 14min ago

*** (inactive) psql :  ***


*** (inactive) pgpool-II :  ***


*** python ***
Python 3.9.16

*** ruby ***
ruby is not installed.

*** Cache status ***
bcache off
fcache off

*** WAF ***
off

*** SELinux ***
off

status completed.

上部に provision コマンド実行時に指定したプロファイルの情報が表示され、更にミドルウェアの部分の Cache status が表示されました。
このようにプロファイルのディレクトリで kusanagi status を実行すると、そのプロファイルの情報が表示されることが分かります。

別プロファイルで kusanagi status の実行

続いて同じ環境内に Movable Type をプロビジョンし、そのプロファイルのディレクトリで kusanagi status を実行してみます。

# kusanagi provision --mt --fqdn example-mt.com --noemail --dbname mt_test --dbuser mt_user --dbpass (DBパスワード) mt_test
Target directory is /home/kusanagi/mt_test.
(中略)
provison completed.
# cd /home/kusanagi/mt_test/
# kusanagi status
Profile: mt_test
FQDN: example-mt.com
Type: mt
KUSANAGI Version 9.2.17-1.el8
azure

*** (active) nginx : nginx123 ***
* nginx.service - The NGINX HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2023-02-03 14:28:42 JST; 21min ago

*** (inactive) httpd : httpd ***
* httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: inactive (dead)

*** (active) php : php80 ***
* php-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2023-02-03 14:29:31 JST; 20min ago

*** (active) mariadb : mariadb10.5 ***
* mariadb.service - MariaDB 10.5.18 database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2023-02-03 14:30:35 JST; 19min ago

*** (inactive) psql :  ***


*** (inactive) pgpool-II :  ***


*** python ***
Python 3.9.16

*** ruby ***
ruby is not installed.

*** Cache status ***
fcache off

*** WAF ***
off

*** SELinux ***
off

status completed.

先ほどと同様に、上部に provision コマンド実行時に指定したプロファイルの情報が表示されます。
そこで表示された内容の Type を確認します。

Type: mt

このように、Movable Type がプロビジョンされたことが分かります。

kusanagi status [profile] の実行

プロファイルの情報を見たいときは、必ずプロファイルのディレクトリにいる必要があるのでしょうか?
そういうわけではありません。
kusanagi status コマンドには引数としてプロファイル名を指定できます。
プロファイル名とは provision コマンドを実行した際の最後の引数部分です。

kusanagi provision --wplang ja --wp --fqdn example-wp.com --noemail --dbname wp_test --dbuser wp_user --dbpass (DBパスワード) wp_test <- この部分

# pwd
/root
# kusanagi status wp_test
Profile: wp_test
FQDN: example-wp.com
Type: wp
KUSANAGI Version 9.2.17-1.el8
azure

*** (active) nginx : nginx123 ***
* nginx.service - The NGINX HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2023-02-03 14:28:42 JST; 2h 23min ago

*** (inactive) httpd : httpd ***
* httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: inactive (dead)

*** (active) php : php80 ***
* php-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2023-02-03 14:29:31 JST; 2h 22min ago

*** (active) mariadb : mariadb10.5 ***
* mariadb.service - MariaDB 10.5.18 database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2023-02-03 14:30:35 JST; 2h 21min ago

*** (inactive) psql :  ***


*** (inactive) pgpool-II :  ***


*** python ***
Python 3.9.16

*** ruby ***
ruby is not installed.

*** Cache status ***
bcache off
fcache off

*** WAF ***
off

*** SELinux ***
off

status completed.

このように、どのディレクトリであってもプロファイル名を指定することで、対象のプロファイルの状態を確認できます。

最後に kusanagi status で表示される内容を説明します。

kusanagi status で表示される内容

Profile: wp_test

表示対象のプロファイル名です。
コマンドを実行したディレクトリがプロファイルのディレクトリ配下でない、またはプロファイル名を指定しない場合は表示されません。

FQDN: example-wp.com

表示対象のプロファイルの FQDN 名です。
コマンドを実行したディレクトリがプロファイルのディレクトリ配下でない、またはプロファイル名を指定しない場合は表示されません。

Type: wp

表示対象のプロファイルの CMS です。
種類は以下の通りになります。

  • wp (WordPress)
  • mt (Movable Type)
  • drupal(Drupal)
  • fcgi (FastCGI)
  • lamp (LAMP=プロビジョン時にCMS機能を指定しない)

コマンドを実行したディレクトリがプロファイルのディレクトリ配下でない、またはプロファイル名を指定しない場合は表示されません。

KUSANAGI Version 9.2.17-1.el8

VM にインストールされている KUSANAGI のバージョンになります。

azure

VM が稼働しているクラウド名です。
azure / aws / gcp-launcher などがあります。

*** (active) nginx : nginx123 ***
* nginx.service - The NGINX HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2023-02-03 14:28:42 JST; 15min ago

VM にインストールされている Nginx サーバーの状態です。
インストールされていない場合、バージョンなどは表示されません。
内容を詳細に説明します。

*** (active) nginx : nginx123 ***

(active) の場合はサービスが起動している、(inactive) の場合はサービスが起動していないことになります。
次は、インストールされているミドルウェアのバージョン(この場合は Nginx1.23 )です。

* nginx.service - The NGINX HTTP and reverse proxy server

ミドルウェアのサービスの情報です。

   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)

ミドルウェアのサービスユニットが読み込まれているか、サービスユニットへの絶対パス、サービスが有効かどうかの情報です。
内容は systemctl status で表示される内容と同じです。

   Active: active (running) since Fri 2023-02-03 14:28:42 JST; 15min ago

ミドルウェアのサービスユニットが実行中かどうか、起動したタイムスタンプの情報です。
内容は systemctl status で表示される内容と同じです。

*** (inactive) httpd : httpd ***
* httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: inactive (dead)

VM にインストールされている Apache Web サーバーの状態です。
インストールされていない場合、バージョンなどは表示されません。
内容の詳細は Nginx サーバーと同様です。

*** (active) php : php80 ***
* php-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2023-02-03 14:29:31 JST; 15min ago

VM にインストールされている PHP(PHP-FPM) の状態です。
インストールされていない場合、バージョンなどは表示されません。
内容の詳細は Nginx サーバーと同様です。

*** (active) mariadb : mariadb10.5 ***
* mariadb.service - MariaDB 10.5.18 database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2023-02-03 14:30:35 JST; 14min ago

VM にインストールされている MariaDB(MySQL) の状態です。
インストールされていない場合、バージョンなどは表示されません。
内容の詳細は Nginx サーバーと同様です。

*** (inactive) psql :  ***

VM にインストールされている PostgreSQL の状態です。
インストールされていない場合、バージョンなどは表示されません。
内容の詳細は Nginx サーバーと同様です。

*** (inactive) pgpool-II :  ***

VM にインストールされている Pgpool-II の状態です。
インストールされていない場合、バージョンなどは表示されません。
内容の詳細は Nginx サーバーと同様です。

*** python ***
Python 3.9.16

VM にインストールされている Python のバージョンです。
KUSANAGI は Python で動くため必ずインストールされています。

*** ruby ***
ruby is not installed.

VM にインストールされている Ruby のバージョンです。
インストールされていない場合、バージョンは表示されません。

*** Cache status ***
bcache off
fcache off

各プロファイルのキャッシュ機能の状態です。
キャッシュ機能が有効であれば on 、無効であれば off となります。
bcache は WordPress 環境以外では表示されません。

*** WAF ***
off

VM の WAF 機能の状態です。
WAF 機能が有効であれば on 、無効であれば off となります。

*** SELinux ***
off

VM の SELinux 機能の状態です。
SELinux 機能が有効であれば on 、無効であれば off となります。

status completed.

完了メッセージです。

以上の内容から、実際に動かしている KUSANAGI の実行環境の状態を確認して KUSANAGI の運用に活用してください。

<< kusanagi migrateコマンドで移行するkusanagi initでKUSANAGIの初期設定を簡単に実行する >>

関連記事

Webサイト運用の課題解決事例100選 プレゼント

Webサイト運用の課題を弊社プロダクトで解決したお客様にインタビュー取材を行い、100の事例を108ページに及ぶ事例集としてまとめました。

・100事例のWebサイト運用の課題と解決手法、解決後の直接、間接的効果がわかる

・情報通信、 IT、金融、メディア、官公庁、学校などの業種ごとに事例を確認できる

・特集では1社の事例を3ページに渡り背景からシステム構成まで詳解