はじめに
IBM Cloud 上の Red Hat OpenShift Kubernetes Services (以下、通称ROKS) 上でサンプルアプリを稼働させ、そのコンテナアプリケーションが吐き出すログを、IBM Cloud のログ管理サービスである IBM Log Analysis with LogDNA でログ監視できるようにして、アプリログの出力に対してアラート機能によりメールを飛ばせるようにするまでの手順を、一通り試してみました。
全体ステップ
- OpenShift Kubernetes Servies を発注する
- OpenShift上にサンプルアプリケーションをデプロイする
- Log Analysis with LogDNA を発注する
- OpenShiftのログをLogDNAで閲覧できるようにする
- LogDNAで(監視対象の)アプリケーションログのViewを作る
- 作成したViewに対してアラートを設定してメールを飛ばす
ステップ1: OpenShift Kubernetes Servies の発注
IBM Cloudのカタログのサービスから「Containers」カテゴリーを選んで、「Red Hat OpenShift on IBM Cloud」を選択します。
OpenShiftのバージョン、ロケーション、フレーバー(サーバの種類)、台数などを選択しオーダーします。
30分程度でクラスターが立ち上がってきます。
#「Ingress状況」のステータス(不明)は、少し時間が経過した後「正常」になります
上部の「OpenShift Webコンソール」ボタンを押すとOpenShiftのポータル画面にアクセスできます。
ステップ2: OpenShift上にサンプルアプリケーションをデプロイする
OpenShiftのポータル画面の左のメニューより、管理者パースペクティブをDeveloperに切り替えて、「+追加」より「create a Project」を押して、「my-sample-project」を作成します。
同じく「+追加」から、上部に「プロジェクト:my-sample-project」になっている状態で、サンプルアプリ(nodejs-sample)を作成します。
「トポロジー」で、Deploymentのステータスを示す(アイコンの周りの)円の色が、水色から青色(Running)に変わるのを待って、「URLを開く」でサンプルアプリの稼働確認します。
Deploymentアイコンを押して「View Logs」からPodのログを確認します。(以下では、ブラウザーから3回アクセスしたログが出ています)
ステップ3: Log Analysis with LogDNA を発注する
IBM Cloudのサービスから「ロギングとモニタリング」カテゴリーを選んで、「IBM Log Analysis with LogDNA」を選択します。
料金プランを選択し、作成ボタンを押します。
# ストリーミングでのログ閲覧については、無料の「ライト」プランの選択が可能です。今回は、アラートを設定しメールを飛ばしたかったので、「7日間のログ検索」プランを選択しました。
ステップ4: OpenShiftのログをLogDNAで閲覧できるようにする
IBM Cloudのナビゲーション・メニューから、リソースリストで、Servicesカテゴリーにある「IBM Log Analysis with logDNA」のサービスのリンクを押し、さらに、ロギングメニューにて「ログ・ソースの追加」を押します。
OpenShiftのタブを開きます。
上記記載の5つのocコマンドをターミナルにて実行します。
補足: ローカルPCのCLI(ターミナルやコマンドプロンプトなど)からocコマンドでIBM Cloud上のOpenShiftのクラスター(サーバ)に接続し、ocコマンドを実行する方法について
・ocコマンドがローカルにない場合
OpenShiftのダッシュボードの上部の?マークを押して「コマンドラインツール」を選択し、自身の環境に合わせて、コマンド(バイナリー)をダウンロードしてセットアップします。
・ocコマンドからOpenShiftのクラスター(サーバ)に接続する方法
OpenShiftのコンソール上部の自身のIDを押し、メニューから「ログインコマンドのコピー」を選択。次の画面で「Display Token」を押し「Log in with this token」の下の oc コマンドをコピーし、コンソールにペーストして実行します。
(ステップ4続き)
「IBM Log Analysis with logDNA」のサービスのロギングメニューにて「ダッシュボードを開く」を押します。
#背景色やテーマなどはSettings → USER PREFERENCE で変更できます。
OpenShiftのログがLogDNAに取り込まれて、リアルタイムに表示されていることが確認できます。
ステップ5: LogDNAで(監視対象の)アプリケーションログのViewを作る
デフォルトのViewでは、OpenShiftの全ログが閲覧対象になっているので、「Sources」から、閲覧対象としたいPodを検索(検索窓にステップ2の最後で確認したPod名の一部を入力)し、該当Podを選択してApplyを押して、ログの絞り込みを行います。
#リストに対象リソースが出てこない場合は、リストの再生成を実行させるため、ブラウザーのリロードを行ってください。
今絞り込んだ、監視対象Podログだけを見るViewを保存します。
ステップ6: 作成したViewに対してアラートを設定してメールを飛ばす
Viewのメニューより、「Attach an alart」を選択し、「View-specific aleat」にて「Email」を選び、メールのRecipientsなどを設定して、「Save Alert」を押します。
#上記の設定により、該当のView(nodejs-sample-view)に表示されるログに対して、30秒以内に1行以上ログが現れたら、30秒毎のタイミングで1通のメールが飛ばされるようになります。
設定したアラートの動作確認をするため、先のサンプルアプリのURL(ステップ2の「URLを開く」)にもう一度アクセスし、Podのログにアクセスログが表示されるのを確認します。
#上記、左側がアクセス前のログの状態で、右側がブラウザーから再アクセス後に1行ログが追加されたところ
以上、IBM Cloud上にて、OpenShiftとLoggingのマネージドサービスの新規オーダーを行い、コンテナアプリの起動、OpenShiftログでの確認、ログのアラート設定を行う事によるアラートメールの受信確認まで、一連の手順についてご紹介させていただきました。
まだ、IBM CloudやOpenShiftなどを、あまり触ったことの無い方にとって、何かのご参考になれば幸いです。