本文へスキップ

エージェントと SSH ログイン履歴 ​

Zenavo エージェント ​

セットアップは、すべてのサーバーの専用の zenavo-system 名前空間に Zenavo エージェントをインストールします。エージェントは HTTPS でコントロールプレーンに外向きに接続し、コントロールプレーンの Kubernetes リクエストをローカルのクラスターに届けます:デプロイ、ログ、ターミナル、ファイル、状態確認。接続はサーバーから外に出るので、Zenavo のためにポートを開ける必要はなく、Zenavo はクラスターの認証情報を保存しません。エージェントにできること・できないことはファイアウォールとセキュリティを参照してください。

サーバーの Server Info タブには、エージェントが接続しているかどうかが表示され、Connects through には、コントロールプレーンに直接つながっているか、Zenavo のリレー経由かが表示されます。エージェントが応答しなくなって数分たつと、サーバーは Offline と表示されます。サーバー上のプロジェクトは動き続けます(サーバーの管理)。

エージェントを更新する ​

Settings にエージェントのバージョンが表示されます。新しいバージョンがあれば、チームの管理者が Update agent をクリックします。エージェントは、digest で固定された Zenavo のエージェントイメージに自分で更新します。SSH やセットアップは不要です。新しいエージェントが接続するまで今のエージェントが動き続けるので、何も中断されません。更新が終わらなかった場合は、設定にその旨とジョブログへのリンクが表示されます。

更新を始められるのは、サーバーが動いていて、ほかのジョブが実行中でないときです。

エージェント導入前に追加したサーバー ​

エージェントができる前に追加したサーバーは、自動でエージェントに移行します。Settings → Connection に状態が表示され、すぐに移行を始めることもできます(エージェント導入前に追加したサーバー)。SSH ログイン履歴など、エージェントが必要な機能は移行後に使えるようになります。

SSH ログイン履歴 ​

サーバーの SSH タブには、誰がサーバーに SSH でログインしたかが表示されます(チームのメンバー以上)。

  • Source IPs:ログインした各アドレスと、その国と都市、使ったユーザーと方法(パスワードか鍵)、ログイン成功回数と失敗回数、最初と最後に見られた日時。期間内に新しく現れたアドレスには New の印が付きます。
  • Time range:過去 24 時間、7 日、30 日、90 日。
  • Include failed login attempts:デフォルトはオフで、ログインに成功したアドレスだけが表示されます。オンにすると失敗だけのアドレスも表示されます。その多くはインターネット全体へのパスワードスキャンです。

あるアドレスがチームのサーバーに初めてログインに成功すると、Zenavo はチームにメールを送ります。New SSH login source の通知です。新しいネットワークから接続した直後なら想定どおりですが、そうでなければ警告のサインです。Zenavo が初めて見た時点で 1 日以上前のログイン(コントロールプレーンが止まっていた場合など)はアラートを送りません。

収集の仕組み ​

エージェントは root ではなく、サーバーのログを読めないので、セットアップはログを読める小さなコレクターをインストールします。systemd タイマーが 5 分ごとに root で実行します。ジャーナルの新しい sshd エントリーだけを読み、送信元 IP、ユーザー、方法ごとの 1 時間単位の集計を過去 7 日分、エージェントのグループだけが読めるディレクトリに保存します。エージェントが生のログを見ることはなく、コレクターはネットワークにアクセスせず、何も送信しません。

コントロールプレーンは数分ごとにエージェント経由で集計をコピーし、90 日間保持します。アドレスの所在地はオフラインの都市データベースで調べ、他のサービスに送ることはありません。1 つの接続は 1 回として数えます。受け入れられればログイン、そうでなければ失敗 1 回です。普通の名前でないユーザー名は ? と記録します。

タブにまだ報告がないと表示される場合、そのサーバーはログイン履歴ができる前にセットアップされています。Settings → Run setup でコレクターがインストールされます。エージェント経由でないサーバーは、エージェントに移行するまで履歴が表示されません。

API ​

メソッドパス
GET/api/servers/{sid}/ssh-logins?hours=&failed=ログイン履歴(メンバー):hours は 24、168、720、2160(デフォルトは 168)。failed=1 で失敗だけのアドレスも含めます。コレクターの状態(active、waiting、unsupported)、合計、送信元 IP ごとの行を返します
POST/api/servers/{sid}/agent/updateエージェントを現在のイメージに更新(管理者。ジョブを返します)
POST/api/servers/{sid}/agentエージェント導入前に追加したサーバーを今すぐ移行(管理者。サーバーとともに 202 を返し、移行はジョブとして実行されます)

Zeabur とは関係ありません。