konchangakita

KPSを一番楽しんでいたブログ 会社の看板を背負いません 転載はご自由にどうぞ

【Nutanix ログほいほい】リアルタイムログ ほいほい

ちょっと時間が空いてしまいましたが、ぼちぼち開発は続けています
今回から各種ログページに入っていきます

1つ目は、リアルタイムログビューワーです

コードを書き始める前に考えた当初のイメージ図



リアルタイムログビューワー

CVM 上にあるログをリアルタイムで tail -f 表示する単純なモノで
なにか動作確認しながらログも一緒に確認したい時に用いるものです

なにかトラブル中なんかにいきなりやれっていわれても
・CVMにログインして
・画面をコピペして
みたいな普段触り慣れていないと超メンドウなことお手軽に!というコンセプトです

今回のしくみ

工夫した点

・Prism Leaderを表示して、デフォルトで選択
・キーワードでリアルタイムフィルタ
・表示したログのダウンロード

使い方

ソースコードコチラから入手し、起動します

起動後リアルタイムログに進むとこの画面

SSH 公開鍵の設定

まずは、SSH用の公開鍵を Nutanix Prism Element に設定します


Prism Element での設定はここ

tail -f でリアルタイムログ取得

公開鍵の設定が終わったら、いよいよリアルタイムログ取得開始です
左側から取得したいログを選択し、`TAIL -F START!`します


リアルタイムでログが出力されます
`tail -f` と同様新しくログが出力されると「リアルタイム」で出力されていきます

ログの取得には、バックエンドコンテナとCVM間で Python の Socket IOを使って
リアルタイムでログを出力しています


上部テキストを入力すると、好きな文字列でフィルタすることができます


出力されたログをダウンロードすることもできます
(フィルタ前の全部の文字列です)

ハマったところ

Socket IO でログを取得するところの実装が結構苦労しました
Next.js の SSR と クライアントサイド実行により、フロントエンド → バックエンドと通信するためのホスト指定が
SSR だと、ホストの IPアドレス
・'use client' を使っている場合は、localhost
なんですね


つぎは、シスログびゅーわー!