5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Exastro OASE でマッチポンプした話(Web+Zabbix構築編)

Last updated at Posted at 2021-05-18

前回のおさらい

前回は、Exastro OASE についての調査と1台のサーバ上にインストールをしました。

Exastro OASE について(再掲)

もっと見る

1. Exastro OASE って何よ?

システム連携

「[Exastro OASE][公式ページ] はシステム運用の自立化・効率化・省力化を支援するためのOSSです。」
とのことで、平たくいえば、システムの運用を楽チンにしてくれるOSSってことみたいです。
OASE の読み方は「オアゼ」です。

2. Exastro OASE って誰得なの?

障害発生時には、以下のような対応フローが多いと思います。

  1. 監視システムによるアラート検知
  2. インシデント・イベント起票
  3. 一次切り分け
  4. 暫定復旧作業
  5. SEによる調査
  6. 恒久対応
  7. クローズ

問題が起こったときに、いかに迅速かつ確実に復旧できるかがポイントとなります。
OASE でできるのは、この「3. 一次切り分け」と「4. 暫定復旧作業」といった初期対応の部分です。
3. 一次切り分け」と「4. 暫定復旧作業」を OASE により自動化することで、サービス復旧までの時間を短縮できます。
また、未知のインシデントが発生した場合は1次切り分けルールと暫定復旧のアクションを増やしていくことで、次第に運用者の対応が減っていくので運用コストを抑える効果も期待できます。

3. Exastro OASE の機能をざっくり見てみよう

もう少し OASE の機能について見てみます。

外部連携機能

システム連携

OASE は単体では機能しません。
監視機能を持ちませんし、障害発生時のアクションを実行する機能も持っていません。
代わりに、OASE は他のシステムと連携することで監視からアクションまでの一連の処理を実施します。

OASE の構成としては、主に

  • 監視システムからのアラートを受け取る__監視アダプタ__
  • 受け取ったアラートをルールに従って推論する__ディシジョンテーブル__
  • 推論の結果を元にアクションをキックするための__ドライバ__

によって構成されています。

Ver. 1.2 までは監視ソフトウェアには ZABBIX、アクション部分の処理には Exastro IT Automation (ITA) と連携できたようですが、Ver. 1.3 からは Prometheus と連携できるようになったようです。今後この辺の連携機能も更に拡充されていくようです。

テスト実行

テスト実行

障害が発生する度にルールを追加すると記載しましたが、本番環境にテストもせずにアクションを導入することは通常ありえません。
必ず検証環境などで事前にテストを行ってから導入すると思います。
OASE では、検証環境を内部に持っており、アラート検知からアクション実行までのテストを本番に影響を与えることなく実施可能です。
これにより、安心して継続的なルールの管理を行うことが可能となります。

はじめに

本検証は、自らサーバに負荷を与える(着火する)ことでアラートを発生させ、OASE を使って暫定対応(消火)させるという、まさにマッチポンプ的検証なのである。笑

何をどう自動化するかを考える

シナリオ

花輪さんは、本業の片手間に会社の メディアサイトのシステム運用 を任されています。
運用範囲は、Web サーバ1台 における OS・ミドルウェアの障害発生時の対応です。
運用と言っても、何もなければ特にすることはなく、何か問題が有ったときだけ対応を求められる仕事です。

普段は何事もないのですが、投稿された記事が SNS サイトなどで話題になると、アクセスが急増し、Web アプリ が高負荷な状態となり、最終的には OS がハングアップ してしまいます。
こうなってしまうと、SSH ログインすらまともにできないような状況になるため、社内の基盤担当に依頼 をして、OS の再起動 をしてもらう必要があります。
しかし、OS を再起動しても、アクセスが落ち着くまでは何度もハングアップが発生し、都度その対応が必要 な状況です。

根本原因は メモリ不足 であることはわかっており、スケールアウトや リソースの増強 も検討していますが、技術的にも予算的にも 基盤側の対応は厳しい状況 です。
また、運用メンバーは花輪さん一人 のため、本業ですぐに対応できない状況もしばしばあります。

方針を考える

まずは、状況を整理してみよう

上のシナリオをまとめてみます。

項目 内容
サービス内容 一般公開型のメディアサイト
問題点 高アクセスがあると OS がハングアップ
暫定対策 OSの再起動
根本原因 メモリ不足
恒久対策 リソース増強

他にも、花輪さん個人の悩みとしては、本業があるのに、バズり対応のために ちょくちょく手が止まってしまう といった問題があります。
また、基盤担当も何度も OS を再起動する必要がありますね。

そこで Exastro OASE さんの出番ですよ!

OASE を使ってどう解決していくかを考えていきましょう。

OASE は、ルールエンジンを内包していおり、ディシジョンテーブルにより管理されたルールを元に運用を自動化します。
ディシジョンテーブルとは、条件(入力) とそれに対する アクション(出力) からなる ルール を網羅的にまとめたテーブルです。

今回の例における運用ルールは、

  • OS がハングアップした場合(条件)、OS を再起動する(アクション)

のようになると思います。

ディシジョンテーブルを作成すると、下記のようになります。

条件 アクション
Rules OS がハングアップした場合
Rule1 Y 再起動を実行する
Rule1 N 何もしない

あー、これアカンわ...

OS がハングアップした状態では、SSH でログイン出来ないので、OS コマンドを使った「OSの再起動」は不可ですね。
(OS の外からの再起動であればできますが、花輪さんにはそういった OS 外の作業権限がありません)
ということで、ハングアップする前になんとかしちゃおうという方針に切り替えます。

修正後の運用ルールは、

  • アクセス数が多い場合(条件1)、Sorry ページに切り替える(アクション)
  • アクセス数が少ない場合(条件2)、元のページに切り替える(アクション)

といったところでしょうか。
処理の重い動的なページを、Sorry ページ のような軽量な静的ページに切り替えることで、サーバのハングアップを回避しようというねらいです。
そして、修正版のディシジョンテーブルはコレ!

条件1 条件2 アクション
Rules アクセス数が多い場合 アクセス数が低い場合
Rule1 N N 何もしない
Rule2 Y N Sorry ページ に切り替える
Rule3 N Y 元のページに切り替える
Rule4 Y Y Sorry ページ に切り替える

悩ましいのは、Rule4 の条件に対する処理です。
矛盾した条件ですが、Zabbix の監視上タイミングによってはどちらの状態も取り得る可能性があります。
この場合は、フェイルセーフの考えに基づき、「Sorry ページ に切り替える」ようにしました。

環境構築

システム構成

方針も決まったところで、今回のシステム構成を見ていきましょう。

システム構成図.png

登場人物の紹介

サーバ ホスト名 説明
Webサーバ target-web メディアサイトを公開するサーバ
監視サーバ zabbix Web サーバの監視を行う
OASEサーバ exastro-oase 今回の主役。運用を自動化
ITAサーバ exastro-ita OASE からの API コールをトリガーにオペレーションを実行

作業の流れ

  1. 周辺環境構築
    1. 監視対象の Web サーバ構築
    2. Zabbix 環境構築
    3. Exastro IT Automation (ITA) 環境を構築
  2. ディシジョンテーブルの作成
  3. Zabbix 監視アダプタの設定
  4. Exastro IT Automation (ITA) ドライバの設定
  5. ディシジョンテーブルのルール登録
  6. 動作確認

本稿では、1. 周辺環境構築 を取り扱います。
2. Zabbix 監視アダプタの設定 以降については、次回扱います。

本編スタート

前置きが長くなりましたが、ここから本検証の周辺環境を整えていきます。

1. 周辺環境構築

OASE サーバについては前回やったので、省略します。
OASE サーバ以外の Web サーバ、監視サーバ、ITA サーバの構築を行っていきましょう。
Exastro Suite は、IT Automation (ITA) も OASE も RHEL 系の OS がシステム要件なので、今回は、全台 CentOS 8 で構築していきます。

項目 Webサーバ Zabbixサーバ ITAサーバ
ホスト名 target-web zabbix exastro-ita
CPU(Cores) 1 1 1
メモリ 2GB 2GB 2GB
ディスク 20GB 40GB 40GB
OS CentOS 8 CentOS 8 CentOS 8
アプリケーション Apache, php-fpm Zabbix 5.2 Exastro IT Automation 1.7.1

1.1. 監視対象の Web サーバ構築

システム構成図_Web.png

監視対象となる Web サーバを構築していきます。
コンテンツの内容自体はどーでもいいですが、ページの表示に関して制御をしたいので、Apache + PHP で動的ページを作ります。

構築手順

PHP 関連パッケージインストール

PHP の Web アプリケーションを実行するためにパッケージのインストールを行います。

# PHP 関連のパッケージのインストール
dnf install -y php php-mbstring php-xml php-xmlrpc php-gd php-pdo php-mysqlnd php-json
テストページを配置

表示までに非常に時間が掛かるページ を想定したテストページを配置します。
GET パラメータに time で指定した秒数分だけ表示を遅らせるプログラムとなります。
このプログラムにアクセスした分だけ処理を滞留させようというのがねらいです。

# テストページの配置
cat << '_EOF_' > /var/www/html/wait.php
<html>
 <head>
  <title>PHP Test</title>
 </head>
 <body>
 <?php
   $WAIT_TIME = $_GET["time"];
   sleep($WAIT_TIME);
   echo "<p>Hello World</p>";
 ?> 
 </body>
</html>
_EOF_

# テストページのパーミッションを変更
chown apache: /var/www/html/wait.php
Zabbix モニタリング用の設定

ステータス画面が表示できるように設定を入れます。
これは、Zabbix がリアルタイムに接続数を取得するためのものです。

# Apache の統計情報を表示させるアクセス数監視用の設定を投入
cat << _EOF_ > /etc/httpd/conf.d/status.conf 
ExtendedStatus On
<Location /server-status>
  SetHandler server-status
  # ↓必要に応じてアクセス制御を入れる
  # Require ip 127.0.0.1
</Location>
_EOF_
Zabbix エージェントの導入
# Zabbix リポジトリのインストール
rpm -Uvh https://repo.zabbix.com/zabbix/5.2/rhel/8/x86_64/zabbix-release-5.2-1.el8.noarch.rpm

# リポジトリのキャッシュを初期化
dnf clean all

# Zabbix エージェントのインストール
dnf -y install zabbix-agent

# Zabbix エージェント上のホスト名の変更
sed -i.org -e "s/^Hostname=.*$/Hostname=target-web/" /etc/zabbix/zabbix_agentd.conf

# Zabbix サーバのIPアドレスを設定
ZABBIX_IP=[ZabbixサーバのIPアドレス]
sed -i -e "s/^Server=.*$/Server=${ZABBIX_IP}/" /etc/zabbix/zabbix_agentd.conf
sed -i -e "s/^ServerActive=.*$/ServerActive=${ZABBIX_IP}/" /etc/zabbix/zabbix_agentd.conf
タイムアウト値のチューニング

デフォルトの設定では、1分程度でセッションが切断されるので、タイムアウト値を600秒(10分)まで伸ばします。

# Apache のタイムアウト値の変更
cp -pi /etc/httpd/conf/httpd.conf{,.org}
echo "Timeout 600" >> /etc/httpd/conf/httpd.conf

# PHP のタイムアウト値の変更
sed -i.org -e "s/^max_execution_time.*$/max_execution_time = 600/" /etc/php.ini 
サービスの(再)起動

サービスの自動起動設定と起動を行います。

# 各サービスの自動起動設定
systemctl enable httpd php-fpm zabbix-agent

# 各サービスの(再)起動
systemctl restart httpd php-fpm zabbix-agent

動作確認

以下の確認は全てブラウザで行います。

Apache ステータス画面

Apache のステータス画面を確認してみましょう。

http://[target-webのIPアドレス]/server-status

2021-05-13-18-45-44.png

1 requests currently being processed, 99 idle workers

と表示されています。
これは、このステータス画面にアクセスした分のリクエストが表示されているということです。

テストページ

テストページにパラメータ指定せずにアクセスしてみましょう。

http://[target-webのIPアドレス]/wait.php

すぐに「Hello World」が表示されたはずです。
次に、パラメータに time=30 を設定してもう一度テストページにアクセスします。

http://[target-webのIPアドレス]/wait.php?time=30

今度は、30秒後に「Hello World」が表示されたと思います。

リクエストの滞留確認

パラメータに time=30 でアクセスした後に F5 キーを9回連打します。

http://[target-webのIPアドレス]/wait.php?time=30

このときに急いで Apache のステータス画面を見てみましょう。

http://[target-webのIPアドレス]/server-status

すると、下記のようにリクエスト数が 11件 と表示されたと思います。

2021-05-13-18-47-06.png

11 requests currently being processed, 89 idle workers

これは、wait.php の応答待ちのリクエスト 10 件 + server-status へのアクセス 1 件分です。

これで Web サーバ側の下準備は完了しました。

1.2. Zabbix 環境構築

システム構成図_Zabbix.png

監視サーバとして Zabbix を構築していきます。
公式のマニュアルを参考にインストールします。

構築手順

SELinux の無効化

石川サンゴメンナサイ

# 一時的に Permissive モードに変更
setenforce 0

# 恒久的に無効化
sed -i.org 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
Zabbix リポジトリの登録とパッケージのインストール

Zabbix 公式リポジトリのインストールと Zabbix 関連パッケージをインストールします。

# Zabbix リポジトリのインストール
rpm -Uvh https://repo.zabbix.com/zabbix/5.2/rhel/8/x86_64/zabbix-release-5.2-1.el8.noarch.rpm

# リポジトリのキャッシュを初期化
dnf clean all

# Zabbix 関連パッケージのインストール
dnf -y install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-agent
MySQL(MariaDB) のセットアップ

MySQL(MariaDB) 関連のパッケージのインストールとサービス起動をします。

# MySQL サーバのインストール
dnf -y install mariadb-server

# MySQL の自動起動を有効にしつつ即座に起動
systemctl enable --now mariadb

MySQL の初期設定をします。

mysql_secure_installation

基本はデフォルト値ですが、MySQL の root パスワードのみ password に設定します。

Enter current password for root (enter for none): (入力なしでエンター)
Set root password? [Y/n]: (入力なしでエンター)
New password: password
Re-enter new password: password
Remove anonymous users? [Y/n]: (入力なしでエンター)
Disallow root login remotely? [Y/n]: (入力なしでエンター)
Remove test database and access to it? [Y/n]: (入力なしでエンター)
Reload privilege tables now? [Y/n]: (入力なしでエンター)

Zabbix 用のデータベースとユーザを作成します。

項目
DB名 zabbix
ユーザ名 zabbix
パスワード zabbix
# データベースの作成
mysql -uroot -p'password' -e "create database zabbix character set utf8 collate utf8_bin;"

# Zabbix ユーザのパスワードを設定
mysql -uroot -p'password' -e "grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';"

データベーススキーマのインポートをします。

# データベーススキーマのインポート
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p'zabbix' zabbix
Zabbix サーバの設定

Zabbix サーバの設定ファイルに DB のパスワードを設定します。

# Zabbix サーバの設定ファイルに DB のパスワードを設定
echo 'DBPassword=zabbix' >> /etc/zabbix/zabbix_server.conf
Zabbix サーバとエージェントの起動

Zabbix サーバとエージェントを(再)起動し、自動起動を有効にします。

# 各サービスの再起動
systemctl restart zabbix-server zabbix-agent httpd php-fpm

# 各サービスの自動起動を有効化
systemctl enable zabbix-server zabbix-agent httpd php-fpm

Zabbix の基本セットアップ

まずは、下記の URL から Zabbix にログインします。

http://[ZabbixサーバのIPアドレス]/zabbix
ようこそ

言語設定は、英語 English (en_GB) を選択します。
日本語に設定したい場合は、フォントをインストールする必要があります。
(フォントがない場合は入力内容が豆腐□になってしまいます。)

2021-05-14-13-36-21.png

前提条件のチェック

オール OK であることを確認します。

2021-05-14-13-37-15.png

データベース接続設定

データベース構築時に設定した値で設定します。

項目 設定値
データベースタイプ MySQL
データベースホスト localhost
データベースポート 0
データベース名 zabbix
資格情報保存先 Plane text(プレーンテキスト)
ユーザ zabbix
パスワード zabbix

2021-05-14-13-39-32.png

Zabbix サーバの詳細

デフォルトでいいです。

項目 設定値
ホスト localhost
ポート 10051
Name zabbix server

2021-05-14-13-40-08.png

GUI設定

タイムゾーンはもちろん日本なので、Asia/Tokyo に、デフォルトのテーマは、今の気分に合わせて Blue にしました。笑

2021-05-14-13-42-35.png

インストール事前準備概要

内容を確認して問題なければ次に進みます。

2021-05-14-13-43-18.png

インストール

これでインストール完了です。
Finish ボタンを押して終了します。

2021-05-14-13-43-54.png

ログイン

早速 Zabbix にログインしましょう。
デフォルトの認証情報は下記のとおりです。

ユーザ名 パスワード
Admin zabbix

2021-05-14-13-44-41.png

ホストの追加

監視対象の Web サーバを追加します。
左メニューから Configuration > Hosts をクリックします。
画面右上の Create host ボタンを押下します。

2021-05-14-22-16-32.png

ホスト情報の入力

下記の項目を設定します。それ以外はデフォルトです。

項目 設定値
Host name target-web
Groups Linux servers
Interface - Type Agent
Interface - IP address Web サーバの IP アドレス
Interface - DNS name target-web
Interface - Connect to IP
Interface - Port 10050

2021-05-14-22-21-17.png

テンプレートの設定

上メニューから Templates をクリックします。
下記のテンプレートをリンクします。

ホストグループ テンプレート名
Templates/Applications Apache by HTTP
Templates/Operating systems Linux by Zabbix agent
画面を見る

2021-05-14-22-19-31.png

2021-05-14-22-18-03.png

2021-05-14-22-18-56.png

ホストの追加を実行

画面下の Add ボタンを押下します。

2021-05-14-22-22-46.png

コネクション数更新間隔の変更(1m => 5s)

ページの切り替わりを早くするために、監視の間隔を変更します。

初期値 変更後
1m 5s

左メニューから Configuration > Hosts をクリックします。
ホスト一覧から target-web を選択します。
上メニューの Items を選択します。
最後に Subfilter の一覧から Apache を選択します。

2021-05-14-22-28-51.png

Apahce: Get status をクリックします。

2021-05-14-22-29-23.png

Update interval の値を 5s に設定し、5秒ごとに値を取得するように変更します。
その後、ページ下部の Update ボタンを押下します。

2021-05-14-22-30-20.png

閾値(トリガー)の設定

次に、監視対象の Web サーバに対する監視ルールを入れていきます。

メトリックス 閾値
コネクション数 20を超えた場合
コネクション数 11を下回った場合
コネクション数閾値超え設定

上メニューの Triggers を選択します。
画面右上の Create trigger ボタンを押下します。

2021-05-14-22-25-00.png

下記の項目を設定します。それ以外はデフォルトです。

項目 設定値
Name More than 20 connections
Severity Warning
Expression {target-web:apache.workers_total.busy.last(#1)}>20

2021-05-20-15-58-29.png

コネクション数閾値下回り設定

画面右上の Create trigger ボタンを押下します。
下記の項目を設定します。それ以外はデフォルトです。

項目 設定値
Name Less than 11 connections
Severity Information
Expression {target-web:apache.workers_total.busy.last(#1)}<11

2021-05-20-16-06-29.png

ダッシュボードの設定(オプション)

ダッシュボードの追加手順の詳細は記載しませんが、ダッシュボードにグラフを表示しています。
HTTP Connection count のグラフでは、前述の wait.php ページに対して 20 回を超えるアクセスで More than 20 connections トリガーが引かれ、11回を下回る箇所で Less than 11 connections のトリガーが引かれていることが確認できます。

2021-05-20-16-12-00.png

設定画面を見る
設定前のダッシュボード

2021-05-14-22-33-37.png

データセット

2021-05-14-22-35-45.png

Problems

2021-05-14-22-40-46.png

設定後のダッシュボード

2021-05-20-16-12-00.png

1.3. Exastro IT Automation (ITA) 環境を構築

システム構成図_ITA.png

本項では、高負荷が発生した場合に動的ページを静的な Sorry ページ に切り替えるアクションを構築していきます。

インストール

Exastro IT Automation (ITA) のインストール手順については、この辺を参考にしてください。

ログイン

まずは、ITA の画面にログインします。
初期のログイン情報は下記となります。

ユーザ名 パスワード
administrator password

2021-05-18-11-22-34.png

新パスワードを登録します。

2021-05-18-11-33-43.png

作業対象ホストの登録

メインメニュー を開き、メニューグループ 画面から 基本コンソール を選択します。
左メニューの 機器一覧 をクリックします。
登録 アコーディオンメニューを開き、 登録開始 ボタンを押下します。

2021-05-18-11-38-49.png

下記のように項目を設定します。(設定する項目のみ記載)

項目 設定値
HW機器種別 SV
ホスト名 target-web
IPアドレス (WebサーバのIPアドレス)
ログインユーザID root
ログインパスワード - 管理
ログインパスワード - ログインパスワード (rootユーザのパスワード)
Ansible利用情報 - Legacy/Role利用情報 - 認証方式 パスワード認証

※本検証では、Webサーバに対して、パスワード認証で root ログイン可能な状況を想定しておりますが、鍵認証を使った操作も可能です。

2021-05-18-11-48-14.png

入力が完了したら、登録 ボタンを押下します。

オペレーションの登録

左メニューの オペレーション一覧 をクリックします。
登録 アコーディオンメニューを開き、 登録開始 ボタンを押下します。

2021-05-18-14-40-19.png

下記のように項目を設定します。(設定する項目のみ記載)

# オペレーション名 実施予定日
1 Sorryページ切り替え 適当な日付
2 Sorryページ戻し 適当な日付

2021-05-18-14-43-50.png

入力が完了したら、登録 ボタンを押下します。

コンテンツファイルのアップロード

コンテンツファイルの作成

事前に、下記のファイルを作成しておきます。

▼通常ページ

wait.php.normal
<html>
 <head>
  <title>PHP Test</title>
 </head>
 <body>
 <?php
   $WAIT_TIME = $_GET["time"];
   sleep($WAIT_TIME);
   echo "<p>Hello World</p>";
 ?>
 </body>
</html>

▼Sorryページ

wait.php.sorry
<html>
 <head>
  <title>PHP Test</title>
 </head>
 <body>
 Sorry. Please try again later.
 </body>
</html>
ファイル素材の登録

メインメニュー を開き、メニューグループ 画面から Ansible共通 を選択します。
左メニューの ファイル管理 をクリックします。
登録 アコーディオンメニューを開き、 登録開始 ボタンを押下します。

2021-05-18-14-48-08.png

下記のように項目を設定します。(設定する項目のみ記載)
ファイルは上記で作成したものをアップロードします。

# ファイル埋込変数名 ファイル素材
1 CPF_wait_php_normal wait.php.normal
2 CPF_wait_php_sorry wait.php.sorry

2021-05-18-14-54-39.png

入力が完了したら、登録 ボタンを押下します。

2021-05-18-14-55-55.png

Movement の登録

メインメニュー を開き、メニューグループ 画面から Ansible-Legacy を選択します。
左メニューの Movement一覧 をクリックします。
登録 アコーディオンメニューを開き、 登録開始 ボタンを押下します。

2021-05-18-15-01-02.png

# Movement名 Ansible利用情報 - ホスト指定形式
1 Sorryページ切り替え IP
2 Sorryページ戻し IP

2021-05-18-15-04-18.png

入力が完了したら、登録 ボタンを押下します。

2021-05-18-15-05-06.png

Playbook 素材のアップロード

Playbook の作成

事前に、下記のファイルを作成しておきます。

▼通常ページに差し替え

replace_content_to_normal.yml
- name: Replace NORMAL wait.php
  copy:
    src: "{{ CPF_wait_php_normal }}"
    dest: /var/www/html/wait.php
    owner: apache
    group: apache
    mode: 0644
    backup: yes

▼Sorryページに差し替え

replace_content_to_sorry.yml
- name: Replace SORRY wait.php
  copy:
    src: "{{ CPF_wait_php_sorry }}"
    dest: /var/www/html/wait.php
    owner: apache
    group: apache
    mode: 0644
    backup: yes
Playbook 素材の登録

左メニューの Playbook素材集 をクリックします。
登録 アコーディオンメニューを開き、 登録開始 ボタンを押下します。

2021-05-18-15-08-58.png

下記のように項目を設定します。(設定する項目のみ記載)
ファイルは上記で作成したものをアップロードします。

# Playbook素材名 Playbook素材
1 replace_content_to_normal replace_content_to_normal.yml
2 replace_content_to_sorry replace_content_to_sorry.yml

2021-05-18-15-12-47.png

入力が完了したら、登録 ボタンを押下します。

2021-05-18-15-13-07.png

Movement と Playbook の紐付け

左メニューの Movement-Playbook紐付 をクリックします。
登録 アコーディオンメニューを開き、 登録開始 ボタンを押下します。

2021-05-18-15-17-50.png

下記のように項目を設定します。(設定する項目のみ記載)

# Movement Playbook素材 インクルード順序
1 Sorryページ切り替え replace_content_to_sorry 1
2 Sorryページ戻し replace_content_to_normal 1

2021-05-18-15-20-09.png

入力が完了したら、登録 ボタンを押下します。

2021-05-18-15-21-31.png

作業対象ホストの設定

左メニューの 作業対象ホスト をクリックします。
登録 アコーディオンメニューを開き、 登録開始 ボタンを押下します。

2021-05-18-15-28-18.png

下記のように項目を設定します。(設定する項目のみ記載)

# オペレーション Movement ホスト
1 Sorryページ切り替え Sorryページ切り替え target-web
2 Sorryページ戻し Sorryページ戻し target-web

2021-05-18-15-29-38.png

入力が完了したら、登録 ボタンを押下します。

2021-05-18-15-30-05.png

Conductor の登録

メインメニュー を開き、メニューグループ 画面から Conductor を選択します。
左メニューの Conductorクラス編集 をクリックします。
下記の画像のように、Conductor クラスを作成します。

▼ Webサーバ高負荷対応

2021-05-18-15-39-25.png

▼ Webサーバ高負荷戻し対応

2021-05-18-15-41-02.png

作成が完了したら、登録 ボタンを押下します。

2021-05-18-15-05-06.png

作業実行

事前確認

事前に wait.php にアクセスし、変更前の状態を確認しておきます。
この時、ページには「Hello World」と表示されているはずです。

Sorry ページヘの切り替え実行

Conductor に、「Webサーバ高負荷対応」を選択し、オペレーションに 「Sorryページ切り替え」を選択します。

2021-05-18-15-44-04.png

ITA のページに戻り、ページ下部の 実行 ボタンを押下します。

2021-05-18-15-44-29.png

画像のように、実行が正常に完了すると DONE と表示されているはずです。

2021-05-18-15-47-05.png

ページ切り替えの確認

再度 wait.php にアクセスします。
この時、ページの内容が「Sorry. Please try again later.」に切り替わっていれば成功です。

元のページに切り戻し実行

同様にして、ページの戻し作業を実施してみましょう。
実行が正常に完了し、wait.php の内容が「Hello World」に戻っていれば成功です。

2021-05-18-15-51-33.png

まとめ

Exastro OASE を使うための想定シナリオを考えた。
また、そのシナリオに沿った検証を行うための下準備として、監視対象の Web サーバと Zabbix サーバの構築を行った。
さらに、コンテンツを切り替える仕組みとして Exastro IT Automation (ITA) に Conductor を設定し、コンテンツの切り替えができることを確認した。

周辺環境整えるだけでしたが一苦労でした。。。

次回はついに OASE 開封の儀じゃよ!!
じゃぁの!ヽ(*・ω・)ノ

次回、Exastro OASE でマッチポンプした話(活用編)に続く!

参考

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?